Revert "[InstCombine] Support gep nuw in icmp folds" (#118698)
[llvm-project.git] / llvm / test / Transforms / InstCombine / pr27996.ll
blobd66c762d7b1b026a951320913c4ced13b6d6de50
1 ; RUN: opt < %s -passes=instcombine -S | FileCheck %s
4 @i = constant i32 1, align 4
5 @f = constant float 0x3FF19999A0000000, align 4
6 @cmp = common global i32 0, align 4
7 @resf = common global ptr null, align 8
8 @resi = common global ptr null, align 8
10 define i32 @foo() {
11 entry:
12   br label %while.cond
14 while.cond:
15   %res.0 = phi ptr [ null, %entry ], [ @i, %if.then ], [ @f, %if.else ]
16   %0 = load i32, ptr @cmp, align 4
17   %shr = ashr i32 %0, 1
18   store i32 %shr, ptr @cmp, align 4
19   %tobool = icmp ne i32 %shr, 0
20   br i1 %tobool, label %while.body, label %while.end
22 while.body:
23   %and = and i32 %shr, 1
24   %tobool1 = icmp ne i32 %and, 0
25   br i1 %tobool1, label %if.then, label %if.else
27 if.then:
28   br label %while.cond
30 if.else:
31   br label %while.cond
33 while.end:
34   store ptr %res.0, ptr @resf, align 8
35   store ptr %res.0, ptr @resi, align 8
36   ret i32 0
38 ; CHECK-NOT: bitcast i32