[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / Transforms / InstSimplify / returned.ll
blob0e89e91085dcd17617b9deeb537c6221d50e6034
1 ; RUN: opt -instsimplify -S < %s | FileCheck %s
3 define i1 @bitcast() {
4 ; CHECK-LABEL: @bitcast(
5   %a = alloca i32
6   %b = alloca i64
7   %x = bitcast i32* %a to i8*
8   %z = bitcast i64* %b to i8*
9   %y = call i8* @func1(i8* %z)
10   %cmp = icmp eq i8* %x, %y
11   ret i1 %cmp
12 ; CHECK-NEXT: ret i1 false
15 %gept = type { i32, i32 }
17 define i1 @gep3() {
18 ; CHECK-LABEL: @gep3(
19   %x = alloca %gept, align 8
20   %a = getelementptr %gept, %gept* %x, i64 0, i32 0
21   %y = call %gept* @func2(%gept* %x)
22   %b = getelementptr %gept, %gept* %y, i64 0, i32 1
23   %equal = icmp eq i32* %a, %b
24   ret i1 %equal
25 ; CHECK-NEXT: ret i1 false
28 declare i8* @func1(i8* returned) nounwind readnone
29 declare %gept* @func2(%gept* returned) nounwind readnone