Skip to content

[llvm] Remove br i1 undef from regression tests #115691

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Nov 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
target triple = "x86_64-unknown-linux-gnu"

define fastcc i32 @ascii2flt(ptr %str) nounwind {
define fastcc i32 @ascii2flt(ptr %str, i1 %arg) nounwind {
entry:
br label %bb2.i

Expand Down Expand Up @@ -45,7 +45,7 @@ bb10.i196.bb7.i197_crit_edge: ; No predecessors!

bb7.i197: ; preds = %bb10.i196.bb7.i197_crit_edge, %base2flt.exit.bb7.i197_crit_edge, %bb11.i.bb7.i197_crit_edge
%.reg2mem.0 = phi i32 [ 0, %base2flt.exit.bb7.i197_crit_edge ], [ %.reg2mem.0, %bb10.i196.bb7.i197_crit_edge ], [ 0, %bb11.i.bb7.i197_crit_edge ] ; <i32> [#uses=1]
br i1 undef, label %bb10.i196.base2flt.exit204_crit_edge, label %bb10.i196
br i1 %arg, label %bb10.i196.base2flt.exit204_crit_edge, label %bb10.i196

base2flt.exit204: ; preds = %bb10.i196.base2flt.exit204_crit_edge, %base2flt.exit.base2flt.exit204_crit_edge, %bb11.i.base2flt.exit204_crit_edge
br i1 false, label %base2flt.exit204.bb8_crit_edge, label %bb
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/Transforms/CodeGenPrepare/X86/extend-sink-hoist.ll
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,11 @@ block2:

; Make sure the cast sink logic and OptimizeExtUses don't end up in an infinite
; loop.
define i128 @use_ext_source() {
define i128 @use_ext_source(i1 %arg) {
block1:
%v1 = or i64 undef, undef
%v2 = zext i64 %v1 to i128
br i1 undef, label %block2, label %block3
br i1 %arg, label %block2, label %block3

block2:
%v3 = add i64 %v1, 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@

@c.a = external global i32, align 1

define void @c() {
define void @c(i1 %arg) {
; CHECK-LABEL: @c(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp ne i16 0, 0
; CHECK-NEXT: br i1 undef, label [[LBL1_US:%.*]], label [[ENTRY_ENTRY_SPLIT_CRIT_EDGE:%.*]]
; CHECK-NEXT: br i1 %arg, label [[LBL1_US:%.*]], label [[ENTRY_ENTRY_SPLIT_CRIT_EDGE:%.*]]
; CHECK: entry.entry.split_crit_edge:
; CHECK-NEXT: [[CONST:%.*]] = bitcast i32 1232131 to i32
; CHECK-NEXT: br label [[LBL1:%.*]]
Expand All @@ -21,9 +21,9 @@ define void @c() {
; CHECK-NEXT: br label [[FOR_COND4:%.*]]
; CHECK: lbl1:
; CHECK-NEXT: store i32 [[CONST]], ptr @c.a, align 1
; CHECK-NEXT: br i1 undef, label [[IF_THEN:%.*]], label [[FOR_END12:%.*]]
; CHECK-NEXT: br i1 %arg, label [[IF_THEN:%.*]], label [[FOR_END12:%.*]]
; CHECK: if.then:
; CHECK-NEXT: br i1 undef, label [[LBL1]], label [[FOR_COND4]]
; CHECK-NEXT: br i1 %arg, label [[LBL1]], label [[FOR_COND4]]
; CHECK: for.cond4:
; CHECK-NEXT: br label [[FOR_COND4]]
; CHECK: for.body9:
Expand All @@ -35,7 +35,7 @@ define void @c() {
;
entry:
%tobool = icmp ne i16 0, 0
br i1 undef, label %lbl1.us, label %entry.entry.split_crit_edge
br i1 %arg, label %lbl1.us, label %entry.entry.split_crit_edge

entry.entry.split_crit_edge: ; preds = %entry
br label %lbl1
Expand All @@ -46,10 +46,10 @@ lbl1.us: ; preds = %entry

lbl1: ; preds = %if.then, %entry.entry.split_crit_edge
store i32 1232131, ptr @c.a, align 1
br i1 undef, label %if.then, label %for.end12
br i1 %arg, label %if.then, label %for.end12

if.then: ; preds = %lbl1
br i1 undef, label %lbl1, label %for.cond4
br i1 %arg, label %lbl1, label %for.cond4

for.cond4: ; preds = %for.cond4, %if.then, %lbl1.us
br label %for.cond4
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ target triple = "thumbv6m-none--musleabi"
@global = external dso_local global %0, align 4

; Function Attrs: nounwind optsize ssp
define dso_local void @zot() {
define dso_local void @zot(i1 %arg) {
bb:
br i1 undef, label %bb2, label %bb1
br i1 %arg, label %bb2, label %bb1

bb1: ; preds = %bb
%tmp = load ptr, ptr getelementptr inbounds (%0, ptr @global, i32 0, i32 2, i32 0), align 4
Expand Down
12 changes: 6 additions & 6 deletions llvm/test/Transforms/ConstantHoisting/PowerPC/masks.ll
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@ target datalayout = "E-m:e-i64:64-n32:64"
target triple = "powerpc64-unknown-linux-gnu"

; Here the masks are all contiguous, and should not be hoisted.
define i32 @test1() nounwind {
define i32 @test1(i1 %arg) nounwind {
entry:
; CHECK-LABEL: @test1
; CHECK-NOT: bitcast i32 65535 to i32
; CHECK: and i32 undef, 65535
%conv121 = and i32 undef, 65535
br i1 undef, label %if.then152, label %if.end167
br i1 %arg, label %if.then152, label %if.end167

if.then152:
; CHECK: and i32 undef, 65535
%conv153 = and i32 undef, 65535
br i1 undef, label %if.end167, label %end2
br i1 %arg, label %if.end167, label %end2

if.end167:
; CHECK: and i32 {{.*}}, 32768
Expand All @@ -35,16 +35,16 @@ end2:
}

; Here the masks are not contiguous, and should be hoisted.
define i32 @test2() nounwind {
define i32 @test2(i1 %arg) nounwind {
entry:
; CHECK-LABEL: @test2
; CHECK: bitcast i32 65531 to i32
%conv121 = and i32 undef, 65531
br i1 undef, label %if.then152, label %if.end167
br i1 %arg, label %if.then152, label %if.end167

if.then152:
%conv153 = and i32 undef, 65531
br i1 undef, label %if.end167, label %end2
br i1 %arg, label %if.end167, label %end2

if.end167:
; CHECK: add i32 {{.*}}, -32758
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ target triple = "x86_64-unknown-linux-gnu"

@a = external global [2 x i16], align 1

define void @c() {
define void @c(i1 %arg) {
; CHECK-LABEL: @c(
; CHECK-NEXT: for.cond:
; CHECK-NEXT: br i1 undef, label [[FOR_BODY2:%.*]], label [[FOR_END4:%.*]]
; CHECK-NEXT: br i1 %arg, label [[FOR_BODY2:%.*]], label [[FOR_END4:%.*]]
; CHECK: for.body2:
; CHECK-NEXT: br i1 undef, label [[LAND_RHS:%.*]], label [[LAND_END:%.*]]
; CHECK-NEXT: br i1 %arg, label [[LAND_RHS:%.*]], label [[LAND_END:%.*]]
; CHECK: land.rhs:
; CHECK-NEXT: unreachable
; CHECK: land.end:
Expand All @@ -27,10 +27,10 @@ define void @c() {
; CHECK-NEXT: ret void
;
for.cond:
br i1 undef, label %for.body2, label %for.end4
br i1 %arg, label %for.body2, label %for.end4

for.body2: ; preds = %for.cond
br i1 undef, label %land.rhs, label %land.end
br i1 %arg, label %land.rhs, label %land.end

land.rhs: ; preds = %for.body2
unreachable
Expand Down
18 changes: 9 additions & 9 deletions llvm/test/Transforms/Coroutines/coro-async-remat.ll
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ entry:
ret ptr undef
}

define swifttailcc void @repo(ptr %0, ptr %1, ptr %arg, ptr %2) #1 {
define swifttailcc void @repo(ptr %0, ptr %1, ptr %arg, ptr %2, i1 %arg2) #1 {
entry:
%swifterror = alloca swifterror ptr, align 8
%3 = call token @llvm.coro.id.async(i32 20, i32 16, i32 1, ptr @repoTU)
Expand All @@ -33,21 +33,21 @@ entry:
br label %6

6: ; preds = %21, %15, %entry
br i1 undef, label %7, label %23
br i1 %arg2, label %7, label %23

7: ; preds = %6
br i1 undef, label %8, label %16
br i1 %arg2, label %8, label %16

8: ; preds = %7
%initializeWithTake35 = bitcast ptr undef to ptr
%9 = call ptr %initializeWithTake35(ptr noalias %5, ptr noalias undef, ptr undef) #0
%10 = call ptr @llvm.coro.async.resume()
%11 = bitcast ptr %10 to ptr
%12 = call { ptr, ptr } (i32, ptr, ptr, ...) @llvm.coro.suspend.async.sl_p0i8p0s_swift.error.4.220.413.429.445.461.672.683ss(i32 256, ptr %10, ptr @__swift_async_resume_project_context, ptr @__swift_suspend_dispatch_5.23, ptr undef, ptr undef, ptr undef, ptr %5, ptr undef, ptr undef)
br i1 undef, label %25, label %13
br i1 %arg2, label %25, label %13

13: ; preds = %8
br i1 undef, label %14, label %15
br i1 %arg2, label %14, label %15

14: ; preds = %13
br label %24
Expand All @@ -56,16 +56,16 @@ entry:
br label %6

16: ; preds = %7
br i1 undef, label %26, label %17
br i1 %arg2, label %26, label %17

17: ; preds = %16
br i1 undef, label %18, label %22
br i1 %arg2, label %18, label %22

18: ; preds = %17
br i1 undef, label %27, label %19
br i1 %arg2, label %27, label %19

19: ; preds = %18
br i1 undef, label %20, label %21
br i1 %arg2, label %20, label %21

20: ; preds = %19
br label %24
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
@g_128 = external global %struct.S2, align 1
@g_106 = external global i16, align 2

define void @int328(i16 signext %p_82) noreturn nounwind ssp {
define void @int328(i16 signext %p_82, i1 %arg) noreturn nounwind ssp {
entry:
%tobool3 = icmp eq i16 %p_82, 0
br label %for.cond.outer
Expand All @@ -32,7 +32,7 @@ for.cond.split.us: ; preds = %for.cond
br label %lbl_133.us

lbl_133.us: ; preds = %lbl_134.us, %for.cond.split.us
br i1 undef, label %if.else14.us-lcssa.us, label %if.then.us
br i1 %arg, label %if.else14.us-lcssa.us, label %if.then.us

lbl_134.us: ; preds = %if.then.us
%cmp = icmp eq i16 ptrtoint (ptr @g_128 to i16), 0
Expand Down Expand Up @@ -66,7 +66,7 @@ for.cond9.preheader.us-lcssa: ; preds = %lbl_134
br label %for.cond9.preheader

for.cond9.preheader: ; preds = %for.cond9.preheader.us-lcssa, %for.cond9.preheader.us-lcssa.us
br i1 undef, label %bb.nph, label %for.cond.loopexit
br i1 %arg, label %bb.nph, label %for.cond.loopexit

bb.nph: ; preds = %for.cond9.preheader
br label %for.cond.loopexit
Expand Down
48 changes: 24 additions & 24 deletions llvm/test/Transforms/CorrelatedValuePropagation/basic.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1458,12 +1458,12 @@ entry:
ret i1 %cmp
}

define i1 @srem_unknown(i32 %a) {
define i1 @srem_unknown(i32 %a, i1 %arg) {
; CHECK-LABEL: define i1 @srem_unknown
; CHECK-SAME: (i32 [[A:%.*]]) {
; CHECK-SAME: (i32 [[A:%.*]], i1 [[ARG:%.*]]) {
; CHECK-NEXT: entry:
; CHECK-NEXT: [[SREM:%.*]] = srem i32 [[A]], 30
; CHECK-NEXT: br i1 undef, label [[EXIT1:%.*]], label [[EXIT2:%.*]]
; CHECK-NEXT: br i1 [[ARG]], label [[EXIT1:%.*]], label [[EXIT2:%.*]]
; CHECK: exit1:
; CHECK-NEXT: ret i1 true
; CHECK: exit2:
Expand All @@ -1473,19 +1473,19 @@ entry:
%srem = srem i32 %a, 30
%cmp1 = icmp slt i32 %srem, 30
%cmp2 = icmp sgt i32 %srem, -30
br i1 undef, label %exit1, label %exit2
br i1 %arg, label %exit1, label %exit2
exit1:
ret i1 %cmp1
exit2:
ret i1 %cmp2
}

define i1 @sdiv_unknown(i32 %a) {
define i1 @sdiv_unknown(i32 %a, i1 %arg) {
; CHECK-LABEL: define i1 @sdiv_unknown
; CHECK-SAME: (i32 [[A:%.*]]) {
; CHECK-SAME: (i32 [[A:%.*]], i1 [[ARG:%.*]]) {
; CHECK-NEXT: entry:
; CHECK-NEXT: [[SREM:%.*]] = sdiv i32 [[A]], 123
; CHECK-NEXT: br i1 undef, label [[EXIT1:%.*]], label [[EXIT2:%.*]]
; CHECK-NEXT: br i1 [[ARG]], label [[EXIT1:%.*]], label [[EXIT2:%.*]]
; CHECK: exit1:
; CHECK-NEXT: ret i1 true
; CHECK: exit2:
Expand All @@ -1495,20 +1495,20 @@ entry:
%srem = sdiv i32 %a, 123
%cmp1 = icmp slt i32 %srem, 17459217
%cmp2 = icmp sgt i32 %srem, -17459217
br i1 undef, label %exit1, label %exit2
br i1 %arg, label %exit1, label %exit2
exit1:
ret i1 %cmp1
exit2:
ret i1 %cmp2
}

define i1 @uadd_sat_unknown(i32 %a) {
define i1 @uadd_sat_unknown(i32 %a, i1 %arg) {
; CHECK-LABEL: define i1 @uadd_sat_unknown
; CHECK-SAME: (i32 [[A:%.*]]) {
; CHECK-SAME: (i32 [[A:%.*]], i1 [[ARG:%.*]]) {
; CHECK-NEXT: entry:
; CHECK-NEXT: [[VAL:%.*]] = call i32 @llvm.uadd.sat.i32(i32 [[A]], i32 100)
; CHECK-NEXT: [[CMP2:%.*]] = icmp ugt i32 [[VAL]], 100
; CHECK-NEXT: br i1 undef, label [[EXIT1:%.*]], label [[EXIT2:%.*]]
; CHECK-NEXT: br i1 [[ARG]], label [[EXIT1:%.*]], label [[EXIT2:%.*]]
; CHECK: exit1:
; CHECK-NEXT: ret i1 true
; CHECK: exit2:
Expand All @@ -1518,20 +1518,20 @@ entry:
%val = call i32 @llvm.uadd.sat.i32(i32 %a, i32 100)
%cmp1 = icmp uge i32 %val, 100
%cmp2 = icmp ugt i32 %val, 100
br i1 undef, label %exit1, label %exit2
br i1 %arg, label %exit1, label %exit2
exit1:
ret i1 %cmp1
exit2:
ret i1 %cmp2
}

define i1 @usub_sat_unknown(i32 %a) {
define i1 @usub_sat_unknown(i32 %a, i1 %arg) {
; CHECK-LABEL: define i1 @usub_sat_unknown
; CHECK-SAME: (i32 [[A:%.*]]) {
; CHECK-SAME: (i32 [[A:%.*]], i1 [[ARG:%.*]]) {
; CHECK-NEXT: entry:
; CHECK-NEXT: [[VAL:%.*]] = call i32 @llvm.usub.sat.i32(i32 [[A]], i32 100)
; CHECK-NEXT: [[CMP2:%.*]] = icmp ult i32 [[VAL]], -101
; CHECK-NEXT: br i1 undef, label [[EXIT1:%.*]], label [[EXIT2:%.*]]
; CHECK-NEXT: br i1 [[ARG]], label [[EXIT1:%.*]], label [[EXIT2:%.*]]
; CHECK: exit1:
; CHECK-NEXT: ret i1 true
; CHECK: exit2:
Expand All @@ -1541,20 +1541,20 @@ entry:
%val = call i32 @llvm.usub.sat.i32(i32 %a, i32 100)
%cmp1 = icmp ule i32 %val, 4294967195
%cmp2 = icmp ult i32 %val, 4294967195
br i1 undef, label %exit1, label %exit2
br i1 %arg, label %exit1, label %exit2
exit1:
ret i1 %cmp1
exit2:
ret i1 %cmp2
}

define i1 @sadd_sat_unknown(i32 %a) {
define i1 @sadd_sat_unknown(i32 %a, i1 %arg) {
; CHECK-LABEL: define i1 @sadd_sat_unknown
; CHECK-SAME: (i32 [[A:%.*]]) {
; CHECK-SAME: (i32 [[A:%.*]], i1 [[ARG:%.*]]) {
; CHECK-NEXT: entry:
; CHECK-NEXT: [[VAL:%.*]] = call i32 @llvm.sadd.sat.i32(i32 [[A]], i32 100)
; CHECK-NEXT: [[CMP2:%.*]] = icmp sgt i32 [[VAL]], -2147483548
; CHECK-NEXT: br i1 undef, label [[EXIT1:%.*]], label [[EXIT2:%.*]]
; CHECK-NEXT: br i1 [[ARG]], label [[EXIT1:%.*]], label [[EXIT2:%.*]]
; CHECK: exit1:
; CHECK-NEXT: ret i1 true
; CHECK: exit2:
Expand All @@ -1564,20 +1564,20 @@ entry:
%val = call i32 @llvm.sadd.sat.i32(i32 %a, i32 100)
%cmp1 = icmp sge i32 %val, -2147483548
%cmp2 = icmp sgt i32 %val, -2147483548
br i1 undef, label %exit1, label %exit2
br i1 %arg, label %exit1, label %exit2
exit1:
ret i1 %cmp1
exit2:
ret i1 %cmp2
}

define i1 @ssub_sat_unknown(i32 %a) {
define i1 @ssub_sat_unknown(i32 %a, i1 %arg) {
; CHECK-LABEL: define i1 @ssub_sat_unknown
; CHECK-SAME: (i32 [[A:%.*]]) {
; CHECK-SAME: (i32 [[A:%.*]], i1 [[ARG:%.*]]) {
; CHECK-NEXT: entry:
; CHECK-NEXT: [[VAL:%.*]] = call i32 @llvm.ssub.sat.i32(i32 [[A]], i32 100)
; CHECK-NEXT: [[CMP2:%.*]] = icmp slt i32 [[VAL]], 2147483547
; CHECK-NEXT: br i1 undef, label [[EXIT1:%.*]], label [[EXIT2:%.*]]
; CHECK-NEXT: br i1 [[ARG]], label [[EXIT1:%.*]], label [[EXIT2:%.*]]
; CHECK: exit1:
; CHECK-NEXT: ret i1 true
; CHECK: exit2:
Expand All @@ -1587,7 +1587,7 @@ entry:
%val = call i32 @llvm.ssub.sat.i32(i32 %a, i32 100)
%cmp1 = icmp sle i32 %val, 2147483547
%cmp2 = icmp slt i32 %val, 2147483547
br i1 undef, label %exit1, label %exit2
br i1 %arg, label %exit1, label %exit2
exit1:
ret i1 %cmp1
exit2:
Expand Down
Loading
Loading