Skip to content

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

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 1 commit into from
Nov 12, 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
18 changes: 9 additions & 9 deletions llvm/test/Transforms/GVN/2011-04-27-phioperands.ll
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3

@nuls = external global [10 x i8]

define fastcc void @p_ere() nounwind {
define fastcc void @p_ere(i1 %arg) nounwind {
entry:
br label %"<bb 5>"

"<L18>.i":
br i1 undef, label %"<bb 3>.i30.i", label %doemit.exit51.i
br i1 %arg, label %"<bb 3>.i30.i", label %doemit.exit51.i

"<bb 3>.i30.i":
unreachable
Expand All @@ -18,7 +18,7 @@ doemit.exit51.i:
br label %"<bb 53>.i"

"<L19>.i":
br i1 undef, label %"<bb 3>.i55.i", label %doemit.exit76.i
br i1 %arg, label %"<bb 3>.i55.i", label %doemit.exit76.i

"<bb 3>.i55.i":
unreachable
Expand All @@ -34,7 +34,7 @@ doemit.exit76.i:
br label %"<bb 53>.i"

"<L24>.i":
br i1 undef, label %"<bb 53>.i", label %"<bb 35>.i"
br i1 %arg, label %"<bb 53>.i", label %"<bb 35>.i"

"<bb 35>.i":
br label %"<bb 53>.i"
Expand All @@ -51,13 +51,13 @@ doemit.exit76.i:
"<bb 53>.i":
%wascaret_2.i = phi i32 [ 0, %"<L39>.i" ], [ 0, %"<L29>.i" ], [ 0, %"<L28>.i" ], [ 0, %"<bb 35>.i" ], [ 0, %"<L99>.i" ], [ 0, %"<L98>.i" ], [ 0, %doemit.exit76.i ], [ 1, %doemit.exit51.i ], [ 0, %"<L24>.i" ]
%D.5496_84.i = load ptr, ptr undef, align 8
br i1 undef, label %"<bb 54>.i", label %"<bb 5>"
br i1 %arg, label %"<bb 54>.i", label %"<bb 5>"

"<bb 54>.i":
br i1 undef, label %"<bb 5>", label %"<bb 58>.i"
br i1 %arg, label %"<bb 5>", label %"<bb 58>.i"

"<bb 58>.i":
br i1 undef, label %"<bb 64>.i", label %"<bb 59>.i"
br i1 %arg, label %"<bb 64>.i", label %"<bb 59>.i"

"<bb 59>.i":
br label %"<bb 64>.i"
Expand All @@ -71,7 +71,7 @@ doemit.exit76.i:
]

"<L54>.i":
br i1 undef, label %"<bb 3>.i105.i", label %doemit.exit127.i
br i1 %arg, label %"<bb 3>.i105.i", label %doemit.exit127.i

"<bb 3>.i105.i":
unreachable
Expand All @@ -80,7 +80,7 @@ doemit.exit127.i:
unreachable

"<L55>.i":
br i1 undef, label %"<bb 3>.i157.i", label %"<bb 5>"
br i1 %arg, label %"<bb 3>.i157.i", label %"<bb 5>"

"<bb 3>.i157.i":
unreachable
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/Transforms/GVN/2012-05-22-PreCrash.ll
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
; RUN: opt < %s -passes=gvn
; PR12858

define void @fn5(i16 signext %p1, i8 signext %p2) nounwind uwtable {
define void @fn5(i16 signext %p1, i8 signext %p2, i1 %arg) nounwind uwtable {
entry:
br i1 undef, label %if.else, label %if.then
br i1 %arg, label %if.else, label %if.then

if.then: ; preds = %entry
br label %if.end
Expand All @@ -14,7 +14,7 @@ if.else: ; preds = %entry

if.end: ; preds = %if.else, %if.then
%conv1 = sext i16 %p1 to i32
br i1 undef, label %if.then3, label %if.else4
br i1 %arg, label %if.then3, label %if.else4

if.then3: ; preds = %if.end
br label %if.end12
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/Transforms/GVN/PRE/phi-translate-2.ll
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ if.end3: ; preds = %if.then2, %if.else,
; Here the load from arrayidx1 is partially redundant, but its value is
; available in if.then. Check that we correctly phi-translate to the phi that
; the load has been replaced with.
define void @test6(ptr %ptr) {
define void @test6(ptr %ptr, i1 %arg) {
; CHECK-LABEL: @test6(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[ARRAYIDX1_PHI_TRANS_INSERT:%.*]] = getelementptr inbounds i32, ptr [[PTR:%.*]], i64 1
Expand All @@ -272,7 +272,7 @@ define void @test6(ptr %ptr) {
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
; CHECK-NEXT: [[TMP2]] = phi i32 [ [[TMP0]], [[IF_THEN]] ], [ [[TMP1]], [[WHILE]] ]
; CHECK-NEXT: br i1 undef, label [[WHILE_END:%.*]], label [[WHILE]]
; CHECK-NEXT: br i1 %arg, label [[WHILE_END:%.*]], label [[WHILE]]
; CHECK: while.end:
; CHECK-NEXT: ret void
;
Expand All @@ -295,7 +295,7 @@ if.then:
br label %if.end

if.end:
br i1 undef, label %while.end, label %while
br i1 %arg, label %while.end, label %while

while.end:
ret void
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/Transforms/GVN/PRE/pre-loop-load-new-pm.ll
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,7 @@ cold_exit:
}

; TODO: PRE via splittinga backedge in the cold loop. Make sure we don't insert a load into an inner loop.
define i32 @test_inner_loop(ptr %p) {
define i32 @test_inner_loop(ptr %p, i1 %arg) {
; CHECK-LABEL: @test_inner_loop(
; CHECK-NEXT: entry:
; CHECK-NEXT: br label [[LOOP:%.*]]
Expand All @@ -447,7 +447,7 @@ define i32 @test_inner_loop(ptr %p) {
; CHECK-NEXT: br label [[INNER_LOOP:%.*]]
; CHECK: inner_loop:
; CHECK-NEXT: call void @side_effect()
; CHECK-NEXT: br i1 undef, label [[INNER_LOOP]], label [[BACKEDGE]]
; CHECK-NEXT: br i1 %arg, label [[INNER_LOOP]], label [[BACKEDGE]]
; CHECK: backedge:
; CHECK-NEXT: [[IV_NEXT]] = add i32 [[IV]], [[X]]
; CHECK-NEXT: [[LOOP_COND:%.*]] = icmp ult i32 [[IV_NEXT]], 1000
Expand All @@ -472,7 +472,7 @@ cold_path:

inner_loop:
call void @side_effect()
br i1 undef, label %inner_loop, label %backedge
br i1 %arg, label %inner_loop, label %backedge

backedge:
%iv.next = add i32 %iv, %x
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/Transforms/GVN/PRE/pre-loop-load.ll
Original file line number Diff line number Diff line change
Expand Up @@ -636,7 +636,7 @@ cold_exit:
}

; TODO: PRE via splittinga backedge in the cold loop. Make sure we don't insert a load into an inner loop.
define i32 @test_inner_loop(ptr %p) {
define i32 @test_inner_loop(ptr %p, i1 %arg) {
; CHECK-LABEL: @test_inner_loop(
; CHECK-NEXT: entry:
; CHECK-NEXT: br label [[LOOP:%.*]]
Expand All @@ -651,7 +651,7 @@ define i32 @test_inner_loop(ptr %p) {
; CHECK-NEXT: br label [[INNER_LOOP:%.*]]
; CHECK: inner_loop:
; CHECK-NEXT: call void @side_effect() #[[ATTR0]]
; CHECK-NEXT: br i1 undef, label [[INNER_LOOP]], label [[BACKEDGE]]
; CHECK-NEXT: br i1 %arg, label [[INNER_LOOP]], label [[BACKEDGE]]
; CHECK: backedge:
; CHECK-NEXT: [[IV_NEXT]] = add i32 [[IV]], [[X]]
; CHECK-NEXT: [[LOOP_COND:%.*]] = icmp ult i32 [[IV_NEXT]], 1000
Expand All @@ -676,7 +676,7 @@ cold_path:

inner_loop:
call void @side_effect() nofree
br i1 undef, label %inner_loop, label %backedge
br i1 %arg, label %inner_loop, label %backedge

backedge:
%iv.next = add i32 %iv, %x
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/Transforms/GVN/PRE/preserve-tbaa.ll
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ target datalayout = "e-p:64:64:64"
; CHECK-LABEL: @test(
; CHECK: %tmp33.pre = load i16, ptr %P, align 2, !tbaa !0
; CHECK: br label %for.body
define void @test(ptr %P, ptr %Q) nounwind {
define void @test(ptr %P, ptr %Q, i1 %arg) nounwind {
entry:
br i1 undef, label %bb.nph, label %for.end
br i1 %arg, label %bb.nph, label %for.end

bb.nph: ; preds = %entry
br label %for.body
Expand Down
24 changes: 12 additions & 12 deletions llvm/test/Transforms/GVN/crash.ll
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
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-n8:16:32:64"
target triple = "x86_64-apple-darwin10.0"

define ptr @test1(ptr %name, i32 %namelen, ptr %o, i32 %expected_type) nounwind ssp {
define ptr @test1(ptr %name, i32 %namelen, ptr %o, i32 %expected_type, i1 %arg) nounwind ssp {
entry:
br i1 undef, label %if.end13, label %while.body.preheader
br i1 %arg, label %if.end13, label %while.body.preheader


if.end13: ; preds = %if.then6
Expand All @@ -22,25 +22,25 @@ while.body: ; preds = %while.body.backedge

lor.lhs.false: ; preds = %while.body
%tmp22 = load i32, ptr %o.addr.0 ; <i32> [#uses=0]
br i1 undef, label %land.lhs.true24, label %if.end31
br i1 %arg, label %land.lhs.true24, label %if.end31

land.lhs.true24: ; preds = %lor.lhs.false
%call28 = call ptr @parse_object(ptr undef) nounwind ; <ptr> [#uses=0]
br i1 undef, label %return.loopexit, label %if.end31
br i1 %arg, label %return.loopexit, label %if.end31

if.end31: ; preds = %land.lhs.true24, %lor.lhs.false
br i1 undef, label %return.loopexit, label %if.end41
br i1 %arg, label %return.loopexit, label %if.end41

if.end41: ; preds = %if.end31
%tmp45 = load i32, ptr %o.addr.0 ; <i32> [#uses=0]
br i1 undef, label %if.then50, label %if.else
br i1 %arg, label %if.then50, label %if.else

if.then50: ; preds = %if.end41
%tmp53 = load ptr, ptr undef ; <ptr> [#uses=1]
br label %while.body.backedge

if.else: ; preds = %if.end41
br i1 undef, label %if.then62, label %if.else67
br i1 %arg, label %if.then62, label %if.else67

if.then62: ; preds = %if.else
br label %while.body.backedge
Expand Down Expand Up @@ -97,10 +97,10 @@ bb66.i: ; Unreachable

@g = external global i64, align 8

define ptr @test3() {
define ptr @test3(i1 %arg) {
do.end17.i:
%tmp18.i = load ptr, ptr undef
br i1 undef, label %do.body36.i, label %if.then21.i
br i1 %arg, label %do.body36.i, label %if.then21.i

if.then21.i:
ret ptr undef
Expand All @@ -110,7 +110,7 @@ do.body36.i:
%add.ptr39.sum.i = add i64 %ivar38.i, 8
%tmp40.i = getelementptr inbounds i8, ptr %tmp18.i, i64 %add.ptr39.sum.i
%tmp41.i = load i64, ptr %tmp40.i
br i1 undef, label %if.then48.i, label %do.body57.i
br i1 %arg, label %if.then48.i, label %do.body57.i

if.then48.i:
%call54.i = call i32 @foo2()
Expand Down Expand Up @@ -163,15 +163,15 @@ entry:

%struct.type = type { i64, i32, i32 }

define fastcc void @func() nounwind uwtable ssp align 2 {
define fastcc void @func(i1 %arg) nounwind uwtable ssp align 2 {
entry:
br label %reachable.bb

;; Unreachable code.

unreachable.bb:
%gep.val = getelementptr inbounds %struct.type, ptr %gep.val, i64 1
br i1 undef, label %u2.bb, label %u1.bb
br i1 %arg, label %u2.bb, label %u1.bb

u1.bb:
store i64 -1, ptr %gep.val, align 8
Expand Down
18 changes: 9 additions & 9 deletions llvm/test/Transforms/GVN/equality-assume.ll
Original file line number Diff line number Diff line change
Expand Up @@ -109,12 +109,12 @@ define i32 @test2(ptr %p, i32 %v) {
ret i32 %load2
}

define i32 @test3(ptr %p, i32 %v) {
define i32 @test3(ptr %p, i32 %v, i1 %arg) {
; CHECK-LABEL: @test3(
; CHECK-NEXT: [[LOAD:%.*]] = load i32, ptr [[P:%.*]]
; CHECK-NEXT: [[C:%.*]] = icmp eq i32 [[LOAD]], [[V:%.*]]
; CHECK-NEXT: call void @llvm.assume(i1 [[C]])
; CHECK-NEXT: br i1 undef, label [[TAKEN:%.*]], label [[MERGE:%.*]]
; CHECK-NEXT: br i1 %arg, label [[TAKEN:%.*]], label [[MERGE:%.*]]
; CHECK: taken:
; CHECK-NEXT: br label [[MERGE]]
; CHECK: merge:
Expand All @@ -123,42 +123,42 @@ define i32 @test3(ptr %p, i32 %v) {
%load = load i32, ptr %p
%c = icmp eq i32 %load, %v
call void @llvm.assume(i1 %c)
br i1 undef, label %taken, label %merge
br i1 %arg, label %taken, label %merge
taken:
br label %merge
merge:
ret i32 %load
}

define i32 @trivial_constants(ptr %p) {
define i32 @trivial_constants(ptr %p, i1 %arg) {
; CHECK-LABEL: @trivial_constants(
; CHECK-NEXT: br i1 undef, label [[TAKEN:%.*]], label [[MERGE:%.*]]
; CHECK-NEXT: br i1 %arg, label [[TAKEN:%.*]], label [[MERGE:%.*]]
; CHECK: taken:
; CHECK-NEXT: br label [[MERGE]]
; CHECK: merge:
; CHECK-NEXT: ret i32 0
;
%c = icmp eq i32 0, 0
call void @llvm.assume(i1 %c)
br i1 undef, label %taken, label %merge
br i1 %arg, label %taken, label %merge
taken:
br label %merge
merge:
ret i32 0
}

define i32 @conflicting_constants(ptr %p) {
define i32 @conflicting_constants(ptr %p, i1 %arg) {
; CHECK-LABEL: @conflicting_constants(
; CHECK-NEXT: store i8 poison, ptr null
; CHECK-NEXT: br i1 undef, label [[TAKEN:%.*]], label [[MERGE:%.*]]
; CHECK-NEXT: br i1 %arg, label [[TAKEN:%.*]], label [[MERGE:%.*]]
; CHECK: taken:
; CHECK-NEXT: br label [[MERGE]]
; CHECK: merge:
; CHECK-NEXT: ret i32 1
;
%c = icmp eq i32 0, 5
call void @llvm.assume(i1 %c)
br i1 undef, label %taken, label %merge
br i1 %arg, label %taken, label %merge
taken:
br label %merge
merge:
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/Transforms/GVN/pre-new-inst.ll
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
; RUN: opt -passes=gvn -S %s | FileCheck %s

%MyStruct = type { i32, i32 }
define i8 @foo(i64 %in, ptr %arr) {
define i8 @foo(i64 %in, ptr %arr, i1 %arg) {
%addr = alloca %MyStruct
%dead = trunc i64 %in to i32
br i1 undef, label %next, label %tmp
br i1 %arg, label %next, label %tmp

tmp:
call void @bar()
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/Transforms/GVN/stale-loop-info.ll
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
; Function Attrs: argmemonly
declare void @snork.1(ptr) local_unnamed_addr #0

define hidden zeroext i1 @eggs(ptr %arg, i1 %arg2) unnamed_addr align 2 {
define hidden zeroext i1 @eggs(ptr %arg, i1 %arg2, i1 %arg3) unnamed_addr align 2 {
bb:
br i1 %arg2, label %bb14, label %bb3

Expand All @@ -25,7 +25,7 @@ bb6: ; preds = %bb12, %bb3
br label %bb7

bb7: ; preds = %bb6
br i1 undef, label %bb11, label %bb8
br i1 %arg3, label %bb11, label %bb8

bb8: ; preds = %bb7
%tmp9 = load ptr, ptr %tmp, align 8
Expand Down
12 changes: 6 additions & 6 deletions llvm/test/Transforms/GVN/unreachable_block_infinite_loop.ll
Original file line number Diff line number Diff line change
Expand Up @@ -12,32 +12,32 @@ unreachable_block:
ret i32 %a
}

define i32 @pr23096_test0() {
define i32 @pr23096_test0(i1 %arg, ptr %arg2) {
entry:
br label %bb0

bb1:
%ptr1 = ptrtoint ptr %ptr2 to i64
%ptr2 = inttoptr i64 %ptr1 to ptr
br i1 undef, label %bb0, label %bb1
br i1 %arg, label %bb0, label %bb1

bb0:
%phi = phi ptr [ undef, %entry ], [ %ptr2, %bb1 ]
%phi = phi ptr [ %arg2, %entry ], [ %ptr2, %bb1 ]
%load = load i32, ptr %phi
ret i32 %load
}

define i32 @pr23096_test1() {
define i32 @pr23096_test1(i1 %arg, ptr %arg2) {
entry:
br label %bb0

bb1:
%ptr1 = getelementptr i32, ptr %ptr2, i32 0
%ptr2 = getelementptr i32, ptr %ptr1, i32 0
br i1 undef, label %bb0, label %bb1
br i1 %arg, label %bb0, label %bb1

bb0:
%phi = phi ptr [ undef, %entry ], [ %ptr2, %bb1 ]
%phi = phi ptr [ %arg2, %entry ], [ %ptr2, %bb1 ]
%load = load i32, ptr %phi
ret i32 %load
}
Loading
Loading