[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / X86 / absolute-cmp.ll
blob01e8a90177ccc487058bdedfb99a8a226846f94f
1 ; RUN: llc < %s | FileCheck %s
2 ; RUN: llc -relocation-model=pic < %s | FileCheck %s
4 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
5 target triple = "x86_64-unknown-linux-gnu"
7 @cmp8 = external hidden global i8, !absolute_symbol !0
8 @cmp32 = external hidden global i8, !absolute_symbol !1
10 declare void @f()
12 define void @foo8(i64 %val) {
13   ; CHECK: cmpq $cmp8@ABS8, %rdi
14   %cmp = icmp ule i64 %val, ptrtoint (i8* @cmp8 to i64)
15   br i1 %cmp, label %t, label %f
18   call void @f()
19   ret void
22   ret void
25 define void @foo32(i64 %val) {
26   ; CHECK: cmpq $cmp32, %rdi
27   %cmp = icmp ule i64 %val, ptrtoint (i8* @cmp32 to i64)
28   br i1 %cmp, label %t, label %f
31   call void @f()
32   ret void
35   ret void
38 !0 = !{i64 0, i64 128}
39 !1 = !{i64 0, i64 2147483648}