Home | History | Annotate | Download | only in X86
      1 ; RUN: llc < %s | FileCheck %s
      2 ; RUN: llc -relocation-model=pic < %s | FileCheck %s
      3 
      4 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
      5 target triple = "x86_64-unknown-linux-gnu"
      6 
      7 @align = external hidden global i8, !absolute_symbol !0
      8 
      9 declare void @f()
     10 
     11 define void @foo(i64 %val) {
     12   %shr = lshr i64 %val, zext (i8 ptrtoint (i8* @align to i8) to i64)
     13   %shl = shl i64 %val, zext (i8 sub (i8 64, i8 ptrtoint (i8* @align to i8)) to i64)
     14   ; CHECK: rorq $align@ABS8, %rdi
     15   %ror = or i64 %shr, %shl
     16   %cmp = icmp ult i64 %ror, 109
     17   br i1 %cmp, label %t, label %f
     18 
     19 t:
     20   call void @f()
     21   ret void
     22 
     23 f:
     24   ret void
     25 }
     26 
     27 !0 = !{i64 0, i64 128}
     28