1 ; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s
2 ; RUN: opt < %s -passes=simplifycfg -S | FileCheck %s
4 define i32 @foo(i32 %x) optforfuzzing {
6 %x.addr = alloca i32, align 4
7 store i32 %x, ptr %x.addr, align 4
8 %0 = load i32, ptr %x.addr, align 4
9 %cmp = icmp sgt i32 %0, 16
10 br i1 %cmp, label %land.rhs, label %land.end
13 %1 = load i32, ptr %x.addr, align 4
14 %cmp1 = icmp slt i32 %1, 32
18 %2 = phi i1 [ false, %entry ], [ %cmp1, %land.rhs ]
19 %conv = zext i1 %2 to i32
22 ; CHECK-LABEL: define i32 @foo(i32 %x)
23 ; CHECK: br i1 %cmp, label %land.rhs, label %land.end
24 ; CHECK-LABEL: land.rhs:
25 ; CHECK: br label %land.end
26 ; CHECK-LABEL: land.end:
27 ; CHECK: phi {{.*}} %entry {{.*}} %land.rhs
30 define i32 @bar(i32 %x) {
32 %x.addr = alloca i32, align 4
33 store i32 %x, ptr %x.addr, align 4
34 %0 = load i32, ptr %x.addr, align 4
35 %cmp = icmp sgt i32 %0, 16
36 br i1 %cmp, label %land.rhs, label %land.end
39 %1 = load i32, ptr %x.addr, align 4
40 %cmp1 = icmp slt i32 %1, 32
44 %2 = phi i1 [ false, %entry ], [ %cmp1, %land.rhs ]
45 %conv = zext i1 %2 to i32
48 ; CHECK-LABEL: define i32 @bar(i32 %x)