68 changes: 34 additions & 34 deletions llvm/test/Analysis/ScalarEvolution/pointer-sign-bits.ll
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
%JavaObject = type { ptr, ptr }

define void @JnJVM_antlr_CSharpCodeGenerator_genBitSet__Lantlr_collections_impl_BitSet_2I(ptr, ptr, i32) {
define void @JnJVM_antlr_CSharpCodeGenerator_genBitSet__Lantlr_collections_impl_BitSet_2I(ptr, ptr, i32, i1 %arg) {
start:
br i1 undef, label %"stack overflow", label %"no stack overflow"
br i1 %arg, label %"stack overflow", label %"no stack overflow"

"GOTO or IF*2": ; preds = %"true verifyAndComputePtr89", %verifyNullCont84
unreachable
Expand All @@ -27,151 +27,151 @@ end: ; preds = %"no exception block35"
ret void

"no stack overflow": ; preds = %start
br i1 undef, label %verifyNullCont, label %"no stack overflow.end_crit_edge"
br i1 %arg, label %verifyNullCont, label %"no stack overflow.end_crit_edge"

"no stack overflow.end_crit_edge": ; preds = %"no stack overflow"
ret void

verifyNullCont: ; preds = %"no stack overflow"
br i1 undef, label %verifyNullCont9, label %verifyNullCont.end_crit_edge
br i1 %arg, label %verifyNullCont9, label %verifyNullCont.end_crit_edge

verifyNullCont.end_crit_edge: ; preds = %verifyNullCont
ret void

verifyNullCont9: ; preds = %verifyNullCont
br i1 undef, label %verifyNullCont12, label %verifyNullCont9.end_crit_edge
br i1 %arg, label %verifyNullCont12, label %verifyNullCont9.end_crit_edge

verifyNullCont9.end_crit_edge: ; preds = %verifyNullCont9
ret void

verifyNullCont12: ; preds = %verifyNullCont9
br i1 undef, label %"no exception block13", label %verifyNullCont12.end_crit_edge
br i1 %arg, label %"no exception block13", label %verifyNullCont12.end_crit_edge

verifyNullCont12.end_crit_edge: ; preds = %verifyNullCont12
ret void

"no exception block13": ; preds = %verifyNullCont12
br i1 undef, label %verifyNullExit14, label %verifyNullCont15
br i1 %arg, label %verifyNullExit14, label %verifyNullCont15

verifyNullExit14: ; preds = %"no exception block13"
ret void

verifyNullCont15: ; preds = %"no exception block13"
br i1 undef, label %"no exception block16", label %verifyNullCont15.end_crit_edge
br i1 %arg, label %"no exception block16", label %verifyNullCont15.end_crit_edge

verifyNullCont15.end_crit_edge: ; preds = %verifyNullCont15
ret void

"no exception block16": ; preds = %verifyNullCont15
br i1 undef, label %verifyNullExit17, label %verifyNullCont18
br i1 %arg, label %verifyNullExit17, label %verifyNullCont18

verifyNullExit17: ; preds = %"no exception block16"
ret void

verifyNullCont18: ; preds = %"no exception block16"
br i1 undef, label %"no exception block19", label %verifyNullCont18.end_crit_edge
br i1 %arg, label %"no exception block19", label %verifyNullCont18.end_crit_edge

verifyNullCont18.end_crit_edge: ; preds = %verifyNullCont18
ret void

"no exception block19": ; preds = %verifyNullCont18
br i1 undef, label %verifyNullExit20, label %verifyNullCont21
br i1 %arg, label %verifyNullExit20, label %verifyNullCont21

verifyNullExit20: ; preds = %"no exception block19"
ret void

verifyNullCont21: ; preds = %"no exception block19"
br i1 undef, label %verifyNullCont24, label %verifyNullCont21.end_crit_edge
br i1 %arg, label %verifyNullCont24, label %verifyNullCont21.end_crit_edge

verifyNullCont21.end_crit_edge: ; preds = %verifyNullCont21
ret void

verifyNullCont24: ; preds = %verifyNullCont21
br i1 undef, label %verifyNullCont27, label %verifyNullCont24.end_crit_edge
br i1 %arg, label %verifyNullCont27, label %verifyNullCont24.end_crit_edge

verifyNullCont24.end_crit_edge: ; preds = %verifyNullCont24
ret void

verifyNullCont27: ; preds = %verifyNullCont24
br i1 undef, label %verifyNullCont32, label %verifyNullCont27.end_crit_edge
br i1 %arg, label %verifyNullCont32, label %verifyNullCont27.end_crit_edge

verifyNullCont27.end_crit_edge: ; preds = %verifyNullCont27
ret void

verifyNullCont32: ; preds = %verifyNullCont27
br i1 undef, label %verifyNullExit33, label %verifyNullCont34
br i1 %arg, label %verifyNullExit33, label %verifyNullCont34

verifyNullExit33: ; preds = %verifyNullCont32
ret void

verifyNullCont34: ; preds = %verifyNullCont32
br i1 undef, label %"no exception block35", label %verifyNullCont34.end_crit_edge
br i1 %arg, label %"no exception block35", label %verifyNullCont34.end_crit_edge

verifyNullCont34.end_crit_edge: ; preds = %verifyNullCont34
ret void

"no exception block35": ; preds = %verifyNullCont34
br i1 undef, label %end, label %verifyNullCont60
br i1 %arg, label %end, label %verifyNullCont60

verifyNullCont60: ; preds = %"no exception block35"
br i1 undef, label %verifyNullCont63, label %verifyNullCont60.end_crit_edge
br i1 %arg, label %verifyNullCont63, label %verifyNullCont60.end_crit_edge

verifyNullCont60.end_crit_edge: ; preds = %verifyNullCont60
ret void

verifyNullCont63: ; preds = %verifyNullCont60
br i1 undef, label %"no exception block64", label %verifyNullCont63.end_crit_edge
br i1 %arg, label %"no exception block64", label %verifyNullCont63.end_crit_edge

verifyNullCont63.end_crit_edge: ; preds = %verifyNullCont63
ret void

"no exception block64": ; preds = %verifyNullCont63
br i1 undef, label %verifyNullExit65, label %verifyNullCont66
br i1 %arg, label %verifyNullExit65, label %verifyNullCont66

verifyNullExit65: ; preds = %"no exception block64"
ret void

verifyNullCont66: ; preds = %"no exception block64"
br i1 undef, label %"no exception block67", label %verifyNullCont66.end_crit_edge
br i1 %arg, label %"no exception block67", label %verifyNullCont66.end_crit_edge

verifyNullCont66.end_crit_edge: ; preds = %verifyNullCont66
ret void

"no exception block67": ; preds = %verifyNullCont66
br i1 undef, label %verifyNullExit68, label %verifyNullCont69
br i1 %arg, label %verifyNullExit68, label %verifyNullCont69

verifyNullExit68: ; preds = %"no exception block67"
ret void

verifyNullCont69: ; preds = %"no exception block67"
br i1 undef, label %"no exception block70", label %verifyNullCont69.end_crit_edge
br i1 %arg, label %"no exception block70", label %verifyNullCont69.end_crit_edge

verifyNullCont69.end_crit_edge: ; preds = %verifyNullCont69
ret void

"no exception block70": ; preds = %verifyNullCont69
br i1 undef, label %verifyNullExit71, label %verifyNullCont72
br i1 %arg, label %verifyNullExit71, label %verifyNullCont72

verifyNullExit71: ; preds = %"no exception block70"
ret void

verifyNullCont72: ; preds = %"no exception block70"
br i1 undef, label %verifyNullCont75, label %verifyNullCont72.end_crit_edge
br i1 %arg, label %verifyNullCont75, label %verifyNullCont72.end_crit_edge

verifyNullCont72.end_crit_edge: ; preds = %verifyNullCont72
ret void

verifyNullCont75: ; preds = %verifyNullCont72
br i1 undef, label %verifyNullCont78, label %verifyNullCont75.end_crit_edge
br i1 %arg, label %verifyNullCont78, label %verifyNullCont75.end_crit_edge

verifyNullCont75.end_crit_edge: ; preds = %verifyNullCont75
ret void

verifyNullCont78: ; preds = %verifyNullCont75
br i1 undef, label %"verifyNullCont78.GOTO or IF*4_crit_edge", label %verifyNullCont78.end_crit_edge
br i1 %arg, label %"verifyNullCont78.GOTO or IF*4_crit_edge", label %verifyNullCont78.end_crit_edge

"verifyNullCont78.GOTO or IF*4_crit_edge": ; preds = %verifyNullCont78
br i1 undef, label %verifyNullExit80, label %verifyNullCont81
br i1 %arg, label %verifyNullExit80, label %verifyNullCont81

verifyNullCont78.end_crit_edge: ; preds = %verifyNullCont78
ret void
Expand All @@ -185,28 +185,28 @@ verifyNullCont81: ; preds = %"verifyNullCont78.GOTO or IF*4_crit_e
br i1 %5, label %verifyNullCont84, label %verifyNullCont172

verifyNullCont84: ; preds = %verifyNullCont81
br i1 undef, label %"GOTO or IF*2", label %verifyNullCont86
br i1 %arg, label %"GOTO or IF*2", label %verifyNullCont86

verifyNullCont86: ; preds = %verifyNullCont84
br i1 undef, label %"true verifyAndComputePtr", label %"false verifyAndComputePtr"
br i1 %arg, label %"true verifyAndComputePtr", label %"false verifyAndComputePtr"

"true verifyAndComputePtr": ; preds = %verifyNullCont86
br i1 undef, label %"true verifyAndComputePtr89", label %"false verifyAndComputePtr90"
br i1 %arg, label %"true verifyAndComputePtr89", label %"false verifyAndComputePtr90"

"false verifyAndComputePtr": ; preds = %verifyNullCont86
ret void

"true verifyAndComputePtr89": ; preds = %"true verifyAndComputePtr"
br i1 undef, label %"GOTO or IF*6", label %"GOTO or IF*2"
br i1 %arg, label %"GOTO or IF*6", label %"GOTO or IF*2"

"false verifyAndComputePtr90": ; preds = %"true verifyAndComputePtr"
ret void

verifyNullCont126: ; preds = %"GOTO or IF*6"
br i1 undef, label %"true verifyAndComputePtr127", label %"false verifyAndComputePtr128"
br i1 %arg, label %"true verifyAndComputePtr127", label %"false verifyAndComputePtr128"

"true verifyAndComputePtr127": ; preds = %verifyNullCont126
br i1 undef, label %"true verifyAndComputePtr131.GOTO or IF*6_crit_edge", label %"GOTO or IF*5"
br i1 %arg, label %"true verifyAndComputePtr131.GOTO or IF*6_crit_edge", label %"GOTO or IF*5"

"false verifyAndComputePtr128": ; preds = %verifyNullCont126
ret void
Expand Down
16 changes: 8 additions & 8 deletions llvm/test/Analysis/ScalarEvolution/pr22674.ll
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ target triple = "x86_64-pc-linux-gnux32"
%"class.llvm::AttributeImpl.2.1802.3601.5914.6685.7456.8227.9255.9769.10026.18508" = type <{ ptr, %"class.llvm::FoldingSetImpl::Node.1.1801.3600.5913.6684.7455.8226.9254.9768.10025.18505", i8, [3 x i8] }>

; Function Attrs: nounwind uwtable
define void @_ZNK4llvm11AttrBuilder13hasAttributesENS_12AttributeSetEy() #0 align 2 {
define void @_ZNK4llvm11AttrBuilder13hasAttributesENS_12AttributeSetEy(i1 %arg) #0 align 2 {
entry:
br i1 undef, label %cond.false, label %_ZNK4llvm12AttributeSet11getNumSlotsEv.exit
br i1 %arg, label %cond.false, label %_ZNK4llvm12AttributeSet11getNumSlotsEv.exit

_ZNK4llvm12AttributeSet11getNumSlotsEv.exit: ; preds = %entry
br i1 undef, label %cond.false, label %for.body.lr.ph.for.body.lr.ph.split_crit_edge
br i1 %arg, label %cond.false, label %for.body.lr.ph.for.body.lr.ph.split_crit_edge

for.body.lr.ph.for.body.lr.ph.split_crit_edge: ; preds = %_ZNK4llvm12AttributeSet11getNumSlotsEv.exit
br label %land.lhs.true.i
Expand All @@ -30,15 +30,15 @@ cond.false.i.split: ; preds = %land.lhs.true.i
unreachable

_ZNK4llvm12AttributeSet12getSlotIndexEj.exit: ; preds = %land.lhs.true.i
br i1 undef, label %for.end, label %for.inc
br i1 %arg, label %for.end, label %for.inc

for.inc: ; preds = %_ZNK4llvm12AttributeSet12getSlotIndexEj.exit
%inc = add i32 %I.099, 1
br i1 undef, label %cond.false, label %land.lhs.true.i
br i1 %arg, label %cond.false, label %land.lhs.true.i

for.end: ; preds = %_ZNK4llvm12AttributeSet12getSlotIndexEj.exit
%I.099.lcssa129 = phi i32 [ %I.099, %_ZNK4llvm12AttributeSet12getSlotIndexEj.exit ]
br i1 undef, label %cond.false, label %_ZNK4llvm12AttributeSet3endEj.exit
br i1 %arg, label %cond.false, label %_ZNK4llvm12AttributeSet3endEj.exit

cond.false: ; preds = %for.end, %for.inc, %_ZNK4llvm12AttributeSet11getNumSlotsEv.exit, %entry
unreachable
Expand All @@ -49,7 +49,7 @@ _ZNK4llvm12AttributeSet3endEj.exit: ; preds = %for.end
%NumAttrs.i.i.i = getelementptr inbounds %"class.llvm::AttributeSetNode.230.2029.3828.6141.6912.7683.8454.9482.9996.10253.18506", ptr %0, i32 0, i32 1
%1 = load i32, ptr %NumAttrs.i.i.i, align 4, !tbaa !8
%add.ptr.i.i.i55 = getelementptr inbounds %"class.llvm::Attribute.222.2021.3820.6133.6904.7675.8446.9474.9988.10245.18509", ptr undef, i32 %1
br i1 undef, label %return, label %for.body11
br i1 %arg, label %return, label %for.body11

for.cond9: ; preds = %_ZNK4llvm9Attribute13getKindAsEnumEv.exit
%cmp10 = icmp eq ptr %incdec.ptr, %add.ptr.i.i.i55
Expand All @@ -70,7 +70,7 @@ _ZNK4llvm9Attribute15isEnumAttributeEv.exit: ; preds = %for.body11

_ZNK4llvm9Attribute13getKindAsEnumEv.exit: ; preds = %_ZNK4llvm9Attribute15isEnumAttributeEv.exit, %_ZNK4llvm9Attribute15isEnumAttributeEv.exit
%incdec.ptr = getelementptr inbounds %"class.llvm::Attribute.222.2021.3820.6133.6904.7675.8446.9474.9988.10245.18509", ptr %I5.096, i32 1
br i1 undef, label %for.cond9, label %return
br i1 %arg, label %for.cond9, label %return

cond.false21: ; preds = %_ZNK4llvm9Attribute15isEnumAttributeEv.exit, %for.body11
unreachable
Expand Down
8 changes: 4 additions & 4 deletions llvm/test/Analysis/ScalarEvolution/pr22856.ll
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,17 @@
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64--linux-gnu"

define void @unbounded() {
define void @unbounded(i1 %arg) {

block_A:
%0 = sext i32 undef to i64
br i1 undef, label %block_F, label %block_G
br i1 %arg, label %block_F, label %block_G

block_C: ; preds = %block_F
br i1 undef, label %block_D, label %block_E
br i1 %arg, label %block_D, label %block_E

block_D: ; preds = %block_D, %block_C
br i1 undef, label %block_E, label %block_D
br i1 %arg, label %block_E, label %block_D

block_E: ; preds = %block_D, %block_C
%iv2 = phi i64 [ %4, %block_D ], [ %4, %block_C ]
Expand Down
8 changes: 4 additions & 4 deletions llvm/test/Analysis/ScalarEvolution/pr25369.ll
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

define void @hoge1() {
define void @hoge1(i1 %arg) {
;
; CHECK-LABEL: 'hoge1'
; CHECK-NEXT: Determining loop execution counts for: @hoge1
Expand All @@ -21,7 +21,7 @@ define void @hoge1() {
; CHECK-NEXT: Loop %bb2: Unpredictable symbolic max backedge-taken count.
;
bb:
br i1 undef, label %bb4, label %bb2
br i1 %arg, label %bb4, label %bb2

bb2: ; preds = %bb2, %bb
br i1 false, label %bb4, label %bb2
Expand Down Expand Up @@ -53,7 +53,7 @@ bb18: ; preds = %bb13
ret void
}

define void @hoge2() {
define void @hoge2(i1 %arg) {
;
; CHECK-LABEL: 'hoge2'
; CHECK-NEXT: Determining loop execution counts for: @hoge2
Expand All @@ -69,7 +69,7 @@ define void @hoge2() {
; CHECK-NEXT: Loop %bb2: Unpredictable symbolic max backedge-taken count.
;
bb:
br i1 undef, label %bb4, label %bb2
br i1 %arg, label %bb4, label %bb2

bb2: ; preds = %bb2, %bb
br i1 false, label %bb4, label %bb2
Expand Down
8 changes: 4 additions & 4 deletions llvm/test/Analysis/ScalarEvolution/scev-aa.ll
Original file line number Diff line number Diff line change
Expand Up @@ -223,15 +223,15 @@ for.end: ; preds = %for.body, %entry
; different loops where neither dominates the other. This used to crash
; because we expected the arguments to an AddExpr to have a strict
; dominance order.
define void @test_no_dom(ptr %data) {
define void @test_no_dom(ptr %data, i1 %arg) {
entry:
load double, ptr %data
br label %for.body

for.body:
%indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.latch ]
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
br i1 undef, label %subloop1, label %subloop2
br i1 %arg, label %subloop1, label %subloop2

subloop1:
%iv1 = phi i32 [0, %for.body], [%iv1.next, %subloop1]
Expand Down Expand Up @@ -266,15 +266,15 @@ declare ptr @get_addr(i32 %i)
; In this case, checking %addr1 and %add2 involves two addrecs in two
; different loops where neither dominates the other. This is analogous
; to test_no_dom, but involves SCEVUnknown as opposed to SCEVAddRecExpr.
define void @test_no_dom2(ptr %data) {
define void @test_no_dom2(ptr %data, i1 %arg) {
entry:
load double, ptr %data
br label %for.body

for.body:
%indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.latch ]
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
br i1 undef, label %subloop1, label %subloop2
br i1 %arg, label %subloop1, label %subloop2

subloop1:
%iv1 = phi i32 [0, %for.body], [%iv1.next, %subloop1]
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/Analysis/ScalarEvolution/scev-canonical-mode.ll
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

; Function Attrs: norecurse nounwind uwtable
define void @ehF() #0 {
define void @ehF(i1 %arg) #0 {
entry:
br i1 undef, label %if.then.i, label %hup.exit
br i1 %arg, label %if.then.i, label %hup.exit

if.then.i: ; preds = %entry
br i1 undef, label %for.body.lr.ph.i, label %hup.exit
br i1 %arg, label %for.body.lr.ph.i, label %hup.exit

for.body.lr.ph.i: ; preds = %if.then.i
br label %for.body.i
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/Analysis/ScalarEvolution/scev-invalid.ll
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@
; CHECK-NOT: phi
; CHECK-NOT: icmp
; CHECK: ret void
define void @test() {
define void @test(i1 %arg) {
entry:
%xor1 = xor i32 0, 1
br label %b17

b17:
br i1 undef, label %b22, label %b18
br i1 %arg, label %b22, label %b18

b18:
%phi1 = phi i32 [ %add1, %b18 ], [ %xor1, %b17 ]
Expand Down
44 changes: 22 additions & 22 deletions llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py
; RUN: opt -disable-output "-passes=print<scalar-evolution>" < %s 2>&1 | FileCheck %s

define void @test_lshr() {
define void @test_lshr(i1 %arg) {
; CHECK-LABEL: 'test_lshr'
; CHECK-NEXT: Classifying expressions for: @test_lshr
; CHECK-NEXT: %iv.lshr = phi i64 [ 1023, %entry ], [ %iv.lshr.next, %loop ]
Expand All @@ -18,13 +18,13 @@ entry:
loop:
%iv.lshr = phi i64 [1023, %entry], [%iv.lshr.next, %loop]
%iv.lshr.next = lshr i64 %iv.lshr, 1
br i1 undef, label %exit, label %loop
br i1 %arg, label %exit, label %loop
exit:
ret void
}

; Deliberate overflow doesn't change range
define void @test_lshr2() {
define void @test_lshr2(i1 %arg) {
; CHECK-LABEL: 'test_lshr2'
; CHECK-NEXT: Classifying expressions for: @test_lshr2
; CHECK-NEXT: %iv.lshr = phi i64 [ 1023, %entry ], [ %iv.lshr.next, %loop ]
Expand All @@ -41,13 +41,13 @@ entry:
loop:
%iv.lshr = phi i64 [1023, %entry], [%iv.lshr.next, %loop]
%iv.lshr.next = lshr i64 %iv.lshr, 4
br i1 undef, label %exit, label %loop
br i1 %arg, label %exit, label %loop
exit:
ret void
}


define void @test_ashr_zeros() {
define void @test_ashr_zeros(i1 %arg) {
; CHECK-LABEL: 'test_ashr_zeros'
; CHECK-NEXT: Classifying expressions for: @test_ashr_zeros
; CHECK-NEXT: %iv.ashr = phi i64 [ 1023, %entry ], [ %iv.ashr.next, %loop ]
Expand All @@ -64,12 +64,12 @@ entry:
loop:
%iv.ashr = phi i64 [1023, %entry], [%iv.ashr.next, %loop]
%iv.ashr.next = ashr i64 %iv.ashr, 1
br i1 undef, label %exit, label %loop
br i1 %arg, label %exit, label %loop
exit:
ret void
}

define void @test_ashr_ones() {
define void @test_ashr_ones(i1 %arg) {
; CHECK-LABEL: 'test_ashr_ones'
; CHECK-NEXT: Classifying expressions for: @test_ashr_ones
; CHECK-NEXT: %iv.ashr = phi i64 [ -1023, %entry ], [ %iv.ashr.next, %loop ]
Expand All @@ -86,13 +86,13 @@ entry:
loop:
%iv.ashr = phi i64 [-1023, %entry], [%iv.ashr.next, %loop]
%iv.ashr.next = ashr i64 %iv.ashr, 1
br i1 undef, label %exit, label %loop
br i1 %arg, label %exit, label %loop
exit:
ret void
}

; Same as previous, but swapped operands to phi
define void @test_ashr_ones2() {
define void @test_ashr_ones2(i1 %arg) {
; CHECK-LABEL: 'test_ashr_ones2'
; CHECK-NEXT: Classifying expressions for: @test_ashr_ones2
; CHECK-NEXT: %iv.ashr = phi i64 [ %iv.ashr.next, %loop ], [ -1023, %entry ]
Expand All @@ -109,14 +109,14 @@ entry:
loop:
%iv.ashr = phi i64 [%iv.ashr.next, %loop], [-1023, %entry]
%iv.ashr.next = ashr i64 %iv.ashr, 1
br i1 undef, label %exit, label %loop
br i1 %arg, label %exit, label %loop
exit:
ret void
}


; negative case for when start is unknown
define void @test_ashr_unknown(i64 %start) {
define void @test_ashr_unknown(i64 %start, i1 %arg) {
; CHECK-LABEL: 'test_ashr_unknown'
; CHECK-NEXT: Classifying expressions for: @test_ashr_unknown
; CHECK-NEXT: %iv.ashr = phi i64 [ %start, %entry ], [ %iv.ashr.next, %loop ]
Expand All @@ -133,14 +133,14 @@ entry:
loop:
%iv.ashr = phi i64 [%start, %entry], [%iv.ashr.next, %loop]
%iv.ashr.next = ashr i64 %iv.ashr, 1
br i1 undef, label %exit, label %loop
br i1 %arg, label %exit, label %loop
exit:
ret void
}

; Negative case where we don't have a (shift) recurrence because the operands
; of the ashr are swapped. (This does end up being a divide recurrence.)
define void @test_ashr_wrong_op(i64 %start) {
define void @test_ashr_wrong_op(i64 %start, i1 %arg) {
; CHECK-LABEL: 'test_ashr_wrong_op'
; CHECK-NEXT: Classifying expressions for: @test_ashr_wrong_op
; CHECK-NEXT: %iv.ashr = phi i64 [ %start, %entry ], [ %iv.ashr.next, %loop ]
Expand All @@ -157,13 +157,13 @@ entry:
loop:
%iv.ashr = phi i64 [%start, %entry], [%iv.ashr.next, %loop]
%iv.ashr.next = ashr i64 1, %iv.ashr
br i1 undef, label %exit, label %loop
br i1 %arg, label %exit, label %loop
exit:
ret void
}


define void @test_shl() {
define void @test_shl(i1 %arg) {
; CHECK-LABEL: 'test_shl'
; CHECK-NEXT: Classifying expressions for: @test_shl
; CHECK-NEXT: %iv.shl = phi i64 [ 8, %entry ], [ %iv.shl.next, %loop ]
Expand All @@ -180,13 +180,13 @@ entry:
loop:
%iv.shl = phi i64 [8, %entry], [%iv.shl.next, %loop]
%iv.shl.next = shl i64 %iv.shl, 1
br i1 undef, label %exit, label %loop
br i1 %arg, label %exit, label %loop
exit:
ret void
}

; use trip count to refine
define void @test_shl2() {
define void @test_shl2(i1 %arg) {
; CHECK-LABEL: 'test_shl2'
; CHECK-NEXT: Classifying expressions for: @test_shl2
; CHECK-NEXT: %iv = phi i64 [ 0, %entry ], [ %iv.next, %loop ]
Expand Down Expand Up @@ -251,7 +251,7 @@ exit:
}

; edge case on max value not overflowing
define void @test_shl4() {
define void @test_shl4(i1 %arg) {
; CHECK-LABEL: 'test_shl4'
; CHECK-NEXT: Classifying expressions for: @test_shl4
; CHECK-NEXT: %iv = phi i64 [ 0, %entry ], [ %iv.next, %loop ]
Expand Down Expand Up @@ -282,7 +282,7 @@ exit:
}

; other side of edge case from previous test
define void @test_shl5() {
define void @test_shl5(i1 %arg) {
; CHECK-LABEL: 'test_shl5'
; CHECK-NEXT: Classifying expressions for: @test_shl5
; CHECK-NEXT: %iv = phi i64 [ 0, %entry ], [ %iv.next, %loop ]
Expand Down Expand Up @@ -379,7 +379,7 @@ exit:

; Corner case where phi is not in a loop because it is in unreachable
; code (which loopinfo ignores, but simple recurrence matching does not).
define void @unreachable_phi() {
define void @unreachable_phi(i1 %arg) {
; CHECK-LABEL: 'unreachable_phi'
; CHECK-NEXT: Classifying expressions for: @unreachable_phi
; CHECK-NEXT: %p_58.addr.1 = phi i32 [ undef, %unreachable1 ], [ %sub2629, %unreachable2 ]
Expand All @@ -403,7 +403,7 @@ unreachable_nonloop:

; Corner case where phi is not in loop header because binop is in unreachable
; code (which loopinfo ignores, but simple recurrence matching does not).
define void @unreachable_binop() {
define void @unreachable_binop(i1 %arg) {
; CHECK-LABEL: 'unreachable_binop'
; CHECK-NEXT: Classifying expressions for: @unreachable_binop
; CHECK-NEXT: %p_58.addr.1 = phi i32 [ undef, %header ], [ %sub2629, %unreachable ]
Expand All @@ -423,7 +423,7 @@ header:

for.cond2295:
%p_58.addr.1 = phi i32 [ undef, %header ], [ %sub2629, %unreachable ]
br i1 undef, label %if.then2321, label %header
br i1 %arg, label %if.then2321, label %header

if.then2321:
ret void
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/Analysis/ValueTracking/memory-dereferenceable.ll
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ declare ptr @foo()
; CHECK-LABEL: 'test_sret'
; CHECK: %sret_gep{{.*}}(aligned)
; CHECK-NOT: %sret_gep_outside
define void @test_sret(ptr sret(%struct.A) %result) {
define void @test_sret(ptr sret(%struct.A) %result, i1 %arg) {
%sret_gep = getelementptr inbounds %struct.A, ptr %result, i64 0, i32 1, i64 2
load i8, ptr %sret_gep

Expand Down Expand Up @@ -287,10 +287,10 @@ define void @infer_noalias2(ptr dereferenceable(8) noalias readonly %p) nosync {

; Just check that we don't crash.
; CHECK-LABEL: 'opaque_type_crasher'
define void @opaque_type_crasher(ptr dereferenceable(16) %a) {
define void @opaque_type_crasher(ptr dereferenceable(16) %a, i1 %arg) {
entry:
%ptr8 = getelementptr inbounds i8, ptr %a, i32 8
br i1 undef, label %if.then, label %if.end
br i1 %arg, label %if.then, label %if.end

if.then:
%res = load i32, ptr %ptr8, align 4
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/Assembler/atomicrmw.ll
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

; CHECK: @f
; CHECK: atomicrmw
define void @f() {
define void @f(i1 %arg) {
entry:
br label %def

Expand All @@ -14,5 +14,5 @@ define void @f() {

def:
%y = add i32 undef, undef
br i1 undef, label %use, label %use
br i1 %arg, label %use, label %use
}
14 changes: 7 additions & 7 deletions llvm/test/Assembler/convergence-control.ll
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,14 @@ define void @mixed2() {
}


define void @region_nesting1() convergent {
define void @region_nesting1(i1 %arg) convergent {
A:
%tok1 = call token @llvm.experimental.convergence.entry()
%tok2 = call token @llvm.experimental.convergence.anchor()
br label %B

B:
br i1 undef, label %C, label %D
br i1 %arg, label %C, label %D

C:
call void @f() [ "convergencectrl"(token %tok1) ]
Expand All @@ -44,14 +44,14 @@ D:
}

; Mirror image of @region_nesting1
define void @region_nesting2() {
define void @region_nesting2(i1 %arg) {
A:
%tok1 = call token @llvm.experimental.convergence.anchor()
%tok2 = call token @llvm.experimental.convergence.anchor()
br label %B

B:
br i1 undef, label %C, label %D
br i1 %arg, label %C, label %D

C:
call void @f() [ "convergencectrl"(token %tok2) ]
Expand All @@ -62,14 +62,14 @@ D:
ret void
}

define void @loop_nesting() convergent {
define void @loop_nesting(i1 %arg) convergent {
A:
%a = call token @llvm.experimental.convergence.entry()
br label %B

B:
%b = call token @llvm.experimental.convergence.anchor()
br i1 undef, label %C, label %D
br i1 %arg, label %C, label %D

C:
%c = call token @llvm.experimental.convergence.loop() [ "convergencectrl"(token %b) ]
Expand All @@ -78,7 +78,7 @@ C:

D:
call void @f() [ "convergencectrl"(token %b) ]
br i1 undef, label %B, label %E
br i1 %arg, label %B, label %E

E:
ret void
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/Bitcode/convergence-control.ll
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
; RUN: llvm-dis < %s.bc | FileCheck %s

define void @loop_nesting() convergent {
define void @loop_nesting(i1 %arg) convergent {
A:
; CHECK-LABEL: A:
; CHECK: [[A:%.*]] = call token @llvm.experimental.convergence.entry()
Expand All @@ -13,7 +13,7 @@ B:
; CHECK: [[B:%.*]] = call token @llvm.experimental.convergence.anchor()
;
%b = call token @llvm.experimental.convergence.anchor()
br i1 undef, label %C, label %D
br i1 %arg, label %C, label %D

C:
; CHECK-LABEL: C:
Expand All @@ -29,7 +29,7 @@ D:
; CHECK: call void @f() [ "convergencectrl"(token [[B]]) ]
;
call void @f() [ "convergencectrl"(token %b) ]
br i1 undef, label %B, label %E
br i1 %arg, label %B, label %E

E:
ret void
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/DebugInfo/ARM/illegal-fragment.ll
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ target triple = "thumbv7s-apple-ios5.0.0"
%struct.vm_object = type { i64 }

; Function Attrs: nounwind ssp
define void @f(ptr %object, ptr nocapture readonly %start) local_unnamed_addr #0 !dbg !11 {
define void @f(ptr %object, ptr nocapture readonly %start, i1 %arg) local_unnamed_addr #0 !dbg !11 {
entry:
tail call void @llvm.dbg.value(metadata ptr %object, metadata !21, metadata !DIExpression()), !dbg !27
tail call void @llvm.dbg.value(metadata ptr %start, metadata !22, metadata !DIExpression()), !dbg !28
Expand All @@ -17,7 +17,7 @@ entry:
; This debug value cannot safely be split into two 32-bit pieces.
; CHECK-NOT: DW_AT_name(offset)
tail call void @llvm.dbg.value(metadata i32 undef, metadata !23, metadata !DIExpression()), !dbg !31
br i1 undef, label %for.end, label %for.body.lr.ph, !dbg !31
br i1 %arg, label %for.end, label %for.body.lr.ph, !dbg !31

for.body.lr.ph: ; preds = %entry
%0 = load i64, ptr %start, align 4, !dbg !33
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/DebugInfo/ARM/machine-cp-updates-dbg-reg.mir
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@

declare dso_local i32 @get_mm_counter(ptr, i32) local_unnamed_addr #0

define dso_local i32 @dup_mm() local_unnamed_addr !dbg !16 {
define dso_local i32 @dup_mm(i1 %arg) local_unnamed_addr !dbg !16 {
entry:
%call = tail call i32 @kmem_cache_alloc(i32 0)
br i1 undef, label %cleanup, label %if.end
br i1 %arg, label %cleanup, label %if.end

if.end: ; preds = %entry
%tobool1.not = icmp eq i32 undef, 0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,13 @@
%"class.llvm::Loop" = type opaque
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }

define linkonce_odr void @_ZNSt5dequeIPN4llvm4LoopESaIS2_EE13_M_insert_auxESt15_Deque_iteratorIS2_RS2_PS2_EmRKS2_(ptr %this, ptr %__pos, i64 %__n) local_unnamed_addr align 2 !dbg !3 {
define linkonce_odr void @_ZNSt5dequeIPN4llvm4LoopESaIS2_EE13_M_insert_auxESt15_Deque_iteratorIS2_RS2_PS2_EmRKS2_(ptr %this, ptr %__pos, i64 %__n, i1 %arg) local_unnamed_addr align 2 !dbg !3 {
entry:
%0 = load ptr, ptr undef, align 8, !dbg !7
%_M_cur6.i = getelementptr inbounds %"class.std::deque", ptr %this, i64 0, i32 0, i32 0, i32 2, i32 0, !dbg !7
%1 = load ptr, ptr %_M_cur6.i, align 8, !dbg !7
%2 = load ptr, ptr undef, align 8, !dbg !7
br i1 undef, label %if.then.i851, label %if.end.i856, !dbg !7
br i1 %arg, label %if.then.i851, label %if.end.i856, !dbg !7

if.then.i851: ; preds = %entry
%.pre1038 = load ptr, ptr undef, align 8, !dbg !7
Expand Down Expand Up @@ -71,7 +71,7 @@
%sunkaddr3 = getelementptr inbounds i8, ptr %13, i64 40, !dbg !7
%14 = bitcast ptr %sunkaddr3 to ptr, !dbg !7
%15 = load ptr, ptr %14, align 8, !dbg !7
br i1 undef, label %if.then.i.i775, label %cond.true.i.i777, !dbg !7
br i1 %arg, label %if.then.i.i775, label %cond.true.i.i777, !dbg !7

if.then.i.i775: ; preds = %if.end.i856
%add.ptr.i.i774 = getelementptr inbounds ptr, ptr %11, i64 %__n, !dbg !7
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/DebugInfo/MIR/InstrRef/out-of-scope-blocks.mir
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,14 @@
%class._Tree_unchecked_const_iterator = type { %struct._Iterator_base0, ptr }
%struct._Iterator_base0 = type { i32 }

define i32 @main({ i32, ptr } %call.i) !dbg !6 {
define i32 @main({ i32, ptr } %call.i, i1 %arg) !dbg !6 {
entry:
call void @llvm.dbg.value(metadata i32 2, metadata !10, metadata !DIExpression()), !dbg !12
%call.i1 = call { i32, ptr } undef(ptr null)
%0 = extractvalue { i32, ptr } %call.i, 1
call void @llvm.dbg.value(metadata ptr %0, metadata !13, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !15
%call.i.i.i.i.i = call i8 undef(ptr null), !dbg !15
br i1 undef, label %_Z17do_insert_cv_testI5_TreeEvv.exit, label %if.then.i.i.i.i.i
br i1 %arg, label %_Z17do_insert_cv_testI5_TreeEvv.exit, label %if.then.i.i.i.i.i

if.then.i.i.i.i.i:
%call3.i.i.i.i.i = call ptr undef(ptr null)
Expand Down
8 changes: 4 additions & 4 deletions llvm/test/DebugInfo/MIR/X86/machine-cse.mir
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.value(metadata, metadata, metadata) #0

define fastcc ptr @t(i32 %base) !dbg !3 {
define fastcc ptr @t(i32 %base, i1 %arg) !dbg !3 {
entry:
%0 = zext i32 %base to i64
%1 = getelementptr inbounds %struct.s2, ptr null, i64 %0
br i1 undef, label %bb1, label %bb2
br i1 %arg, label %bb1, label %bb2

bb1: ; preds = %entry
%2 = getelementptr inbounds %struct.s2, ptr null, i64 %0, i32 0
Expand All @@ -43,9 +43,9 @@
}

; This is a stub replicating bb structure of @t
define fastcc ptr @u(i32 %base) !dbg !33 {
define fastcc ptr @u(i32 %base, i1 %arg) !dbg !33 {
entry:
br i1 undef, label %bb1, label %bb2
br i1 %arg, label %bb1, label %bb2

bb1: ; preds = %entry
unreachable
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/DebugInfo/X86/dbg-merge-loc-entry.ll
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,18 @@ target triple = "x86_64-apple-darwin8"

@__clz_tab = external constant [256 x i8]

define hidden i128 @__divti3(i128 %u, i128 %v) nounwind readnone !dbg !9 {
define hidden i128 @__divti3(i128 %u, i128 %v, i1 %arg) nounwind readnone !dbg !9 {
entry:
tail call void @llvm.dbg.value(metadata i128 %u, metadata !14, metadata !DIExpression()), !dbg !15
tail call void @llvm.dbg.value(metadata i64 0, metadata !17, metadata !DIExpression()), !dbg !21
br i1 undef, label %bb2, label %bb4, !dbg !22
br i1 %arg, label %bb2, label %bb4, !dbg !22

bb2: ; preds = %entry
tail call void @llvm.dbg.value(metadata i128 %u, metadata !14, metadata !DIExpression()), !dbg !15
br label %bb4, !dbg !23

bb4: ; preds = %bb2, %entry
br i1 undef, label %__udivmodti4.exit, label %bb82.i, !dbg !24
br i1 %arg, label %__udivmodti4.exit, label %bb82.i, !dbg !24

bb82.i: ; preds = %bb4
unreachable
Expand Down
38 changes: 19 additions & 19 deletions llvm/test/DebugInfo/X86/dbg-value-terminator.ll
Original file line number Diff line number Diff line change
Expand Up @@ -10,52 +10,52 @@

%a = type { i32, i32 }

define hidden fastcc ptr @test() #1 !dbg !1 {
define hidden fastcc ptr @test(i1 %arg) #1 !dbg !1 {
entry:
%0 = icmp eq ptr undef, null, !dbg !12
br i1 %0, label %"14", label %return, !dbg !12

"14": ; preds = %"8"
br i1 undef, label %"25", label %"21", !dbg !12
br i1 %arg, label %"25", label %"21", !dbg !12

"21": ; preds = %"14"
br i1 undef, label %may_unswitch_on.exit, label %"6.i", !dbg !12
br i1 %arg, label %may_unswitch_on.exit, label %"6.i", !dbg !12

"6.i": ; preds = %"21"
br i1 undef, label %"10.i", label %may_unswitch_on.exit, !dbg !12
br i1 %arg, label %"10.i", label %may_unswitch_on.exit, !dbg !12

"10.i": ; preds = %"6.i"
br i1 undef, label %may_unswitch_on.exit, label %"12.i", !dbg !12
br i1 %arg, label %may_unswitch_on.exit, label %"12.i", !dbg !12

"12.i": ; preds = %"10.i"
br i1 undef, label %"4.i.i", label %"3.i.i", !dbg !12
br i1 %arg, label %"4.i.i", label %"3.i.i", !dbg !12

"3.i.i": ; preds = %"12.i"
br i1 undef, label %"4.i.i", label %VEC_edge_base_index.exit.i, !dbg !12
br i1 %arg, label %"4.i.i", label %VEC_edge_base_index.exit.i, !dbg !12

"4.i.i": ; preds = %"3.i.i", %"12.i"
unreachable, !dbg !12

VEC_edge_base_index.exit.i: ; preds = %"3.i.i"
br i1 undef, label %may_unswitch_on.exit, label %"16.i", !dbg !12
br i1 %arg, label %may_unswitch_on.exit, label %"16.i", !dbg !12

"16.i": ; preds = %VEC_edge_base_index.exit.i
br i1 undef, label %"4.i6.i", label %"3.i5.i", !dbg !12
br i1 %arg, label %"4.i6.i", label %"3.i5.i", !dbg !12

"3.i5.i": ; preds = %"16.i"
br i1 undef, label %VEC_edge_base_index.exit7.i, label %"4.i6.i", !dbg !12
br i1 %arg, label %VEC_edge_base_index.exit7.i, label %"4.i6.i", !dbg !12

"4.i6.i": ; preds = %"3.i5.i", %"16.i"
unreachable, !dbg !12

VEC_edge_base_index.exit7.i: ; preds = %"3.i5.i"
br i1 undef, label %may_unswitch_on.exit, label %"21.i", !dbg !12
br i1 %arg, label %may_unswitch_on.exit, label %"21.i", !dbg !12

"21.i": ; preds = %VEC_edge_base_index.exit7.i
br i1 undef, label %may_unswitch_on.exit, label %"23.i", !dbg !12
br i1 %arg, label %may_unswitch_on.exit, label %"23.i", !dbg !12

"23.i": ; preds = %"21.i"
br i1 undef, label %may_unswitch_on.exit, label %"26.i", !dbg !12
br i1 %arg, label %may_unswitch_on.exit, label %"26.i", !dbg !12

"26.i": ; preds = %"34.i", %"23.i"
%1 = icmp eq i32 undef, 9, !dbg !12
Expand All @@ -65,25 +65,25 @@ VEC_edge_base_index.exit7.i: ; preds = %"3.i5.i"
unreachable

"34.i": ; preds = %"26.i"
br i1 undef, label %"26.i", label %"36.i", !dbg !12
br i1 %arg, label %"26.i", label %"36.i", !dbg !12

"36.i": ; preds = %"34.i"
br i1 undef, label %"37.i", label %"38.i", !dbg !12
br i1 %arg, label %"37.i", label %"38.i", !dbg !12

"37.i": ; preds = %"36.i"
br label %"38.i", !dbg !12

"38.i": ; preds = %"37.i", %"36.i"
br i1 undef, label %"39.i", label %"45.i", !dbg !12
br i1 %arg, label %"39.i", label %"45.i", !dbg !12

"39.i": ; preds = %"38.i"
br i1 undef, label %"41.i", label %may_unswitch_on.exit, !dbg !12
br i1 %arg, label %"41.i", label %may_unswitch_on.exit, !dbg !12

"41.i": ; preds = %"39.i"
br i1 undef, label %may_unswitch_on.exit, label %"42.i", !dbg !12
br i1 %arg, label %may_unswitch_on.exit, label %"42.i", !dbg !12

"42.i": ; preds = %"41.i"
br i1 undef, label %may_unswitch_on.exit, label %"44.i", !dbg !12
br i1 %arg, label %may_unswitch_on.exit, label %"44.i", !dbg !12

"44.i": ; preds = %"42.i"
%2 = load ptr, ptr undef, align 8, !dbg !12
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/DebugInfo/X86/deleted-bit-piece.ll
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ target triple = "x86_64-apple-macosx10.8.0"
; CHECK: __Z3foov:
; CHECK: retq

define void @_Z3foov() !dbg !12 {
define void @_Z3foov(i1 %arg) !dbg !12 {
entry:
br i1 undef, label %exit, label %bb
br i1 %arg, label %exit, label %bb

bb: ; preds = %entry
call void @llvm.dbg.value(metadata ptr undef, metadata !15, metadata !16), !dbg !17
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/DebugInfo/X86/earlydup-crash.ll
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ declare void @llvm.dbg.value(metadata, metadata, metadata) nounwind readnone

define internal ptr @framework_construct_pathname(ptr %fname, ptr %dir) nounwind ssp !dbg !2 {
entry:
br i1 undef, label %bb33, label %bb
br i1 poison, label %bb33, label %bb

bb: ; preds = %entry
%tmp = icmp eq i32 undef, 0
%tmp1 = add i32 0, 11
call void @llvm.dbg.value(metadata i32 %tmp1, metadata !0, metadata !DIExpression()), !dbg !DILocation(scope: !1)
br i1 undef, label %bb18, label %bb31.preheader
br i1 poison, label %bb18, label %bb31.preheader

bb31.preheader: ; preds = %bb19, %bb
br label %bb31
Expand All @@ -30,7 +30,7 @@ bb19: ; preds = %bb18
bb22: ; preds = %bb31
%tmp4 = add i32 0, %tmp1
call void @foobar(i32 %tmp4)
br i1 undef, label %bb33, label %bb31
br i1 poison, label %bb33, label %bb31

bb31: ; preds = %bb22, %bb31.preheader
br i1 false, label %bb33, label %bb22
Expand Down
16 changes: 8 additions & 8 deletions llvm/test/DebugInfo/X86/live-debug-values-constprop.mir
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
source_filename = "<stdin>"
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"

define i32 @foo(ptr %bees, ptr %output) !dbg !4 {
define i32 @foo(ptr %bees, ptr %output, i1 %arg) !dbg !4 {
entry:
br i1 undef, label %bb1, label %bb1
br i1 %arg, label %bb1, label %bb1
bb1:
br label %bb3
bb2:
Expand All @@ -19,9 +19,9 @@
ret i32 0
}

define i32 @bar(ptr %bees, ptr %output) !dbg !40 {
define i32 @bar(ptr %bees, ptr %output, i1 %arg) !dbg !40 {
entry:
br i1 undef, label %bb1, label %bb1
br i1 %arg, label %bb1, label %bb1
bb1:
br label %bb3
bb2:
Expand All @@ -30,9 +30,9 @@
ret i32 0
}

define i32 @baz(ptr %bees, ptr %output) !dbg !80 {
define i32 @baz(ptr %bees, ptr %output, i1 %arg) !dbg !80 {
entry:
br i1 undef, label %bb1, label %bb1
br i1 %arg, label %bb1, label %bb1
bb1:
br label %bb3
bb2:
Expand All @@ -41,9 +41,9 @@
ret i32 0
}

define i32 @qux(ptr %bees, ptr %output) !dbg !120 {
define i32 @qux(ptr %bees, ptr %output, i1 %arg) !dbg !120 {
entry:
br i1 undef, label %bb1, label %bb1
br i1 %arg, label %bb1, label %bb1
bb1:
br label %bb3
bb2:
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/DebugInfo/X86/mem2reg_fp80.ll
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

define dso_local x86_fp80 @powixf2() !dbg !1 {
define dso_local x86_fp80 @powixf2(i1 %arg) !dbg !1 {
entry:
%r = alloca x86_fp80, align 16
call void @llvm.dbg.declare(metadata ptr %r, metadata !14, metadata !DIExpression()), !dbg !15
br i1 undef, label %if.then, label %if.end, !dbg !16
br i1 %arg, label %if.then, label %if.end, !dbg !16

if.then: ; preds = %entry
; CHECK-LABEL: if.then:
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/DebugInfo/X86/sdag-dbgvalue-phi-use-4.ll
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ target datalayout = "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32"
target triple = "i686-w64-windows-gnu"

; Function Attrs: nounwind readnone
define dso_local i64 @nextafterl(i80 %a) local_unnamed_addr #0 !dbg !6 {
define dso_local i64 @nextafterl(i80 %a, i1 %arg) local_unnamed_addr #0 !dbg !6 {
entry:
br i1 undef, label %if.else, label %if.then13, !dbg !28
br i1 %arg, label %if.else, label %if.then13, !dbg !28

if.then13: ; preds = %entry
%u.sroa.0.8.insert.insert = or i80 %a, 2222, !dbg !29
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ bb.2:
ret i32 3
}

define i32 @simp1() {
define i32 @simp1(i1 %arg) {
; CHECK-LABEL: @simp1(
; CHECK-NEXT: entry:
; CHECK-NEXT: ret i32 1
Expand All @@ -32,7 +32,7 @@ bb.1:
ret i32 2

bb.2:
br i1 undef, label %bb.1, label %bb.3
br i1 %arg, label %bb.1, label %bb.3

bb.3:
ret i32 3
Expand Down
16 changes: 8 additions & 8 deletions llvm/test/Other/loop-pass-ordering.ll
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,23 @@
; CHECK: Running pass: NoOpLoopPass on loop %loop.1.0 in function f
; CHECK: Running pass: NoOpLoopPass on loop %loop.1 in function f

define void @f() {
define void @f(i1 %arg) {
entry:
br label %loop.0
loop.0:
br i1 undef, label %loop.0.0, label %loop.1
br i1 %arg, label %loop.0.0, label %loop.1
loop.0.0:
br i1 undef, label %loop.0.0, label %loop.0.1
br i1 %arg, label %loop.0.0, label %loop.0.1
loop.0.1:
br i1 undef, label %loop.0.1, label %loop.0
br i1 %arg, label %loop.0.1, label %loop.0
loop.1:
br i1 undef, label %loop.1, label %loop.1.bb1
br i1 %arg, label %loop.1, label %loop.1.bb1
loop.1.bb1:
br i1 undef, label %loop.1, label %loop.1.bb2
br i1 %arg, label %loop.1, label %loop.1.bb2
loop.1.bb2:
br i1 undef, label %end, label %loop.1.0
br i1 %arg, label %end, label %loop.1.0
loop.1.0:
br i1 undef, label %loop.1.0, label %loop.1
br i1 %arg, label %loop.1.0, label %loop.1
end:
ret void
}
16 changes: 8 additions & 8 deletions llvm/test/Other/loopnest-pass-ordering.ll
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,23 @@
; CHECK: Running pass: NoOpLoopNestPass on loop %loop.1 in function f
; CHECK-NOT: Running pass: NoOpLoopNestPass on {{loop\..*\..*}}

define void @f() {
define void @f(i1 %arg) {
entry:
br label %loop.0
loop.0:
br i1 undef, label %loop.0.0, label %loop.1
br i1 %arg, label %loop.0.0, label %loop.1
loop.0.0:
br i1 undef, label %loop.0.0, label %loop.0.1
br i1 %arg, label %loop.0.0, label %loop.0.1
loop.0.1:
br i1 undef, label %loop.0.1, label %loop.0
br i1 %arg, label %loop.0.1, label %loop.0
loop.1:
br i1 undef, label %loop.1, label %loop.1.bb1
br i1 %arg, label %loop.1, label %loop.1.bb1
loop.1.bb1:
br i1 undef, label %loop.1, label %loop.1.bb2
br i1 %arg, label %loop.1, label %loop.1.bb2
loop.1.bb2:
br i1 undef, label %end, label %loop.1.0
br i1 %arg, label %end, label %loop.1.0
loop.1.0:
br i1 undef, label %loop.1.0, label %loop.1
br i1 %arg, label %loop.1.0, label %loop.1
end:
ret void
}
20 changes: 10 additions & 10 deletions llvm/test/Other/opt-bisect-new-pass-manager.ll
Original file line number Diff line number Diff line change
Expand Up @@ -101,23 +101,23 @@

declare i32 @g()

define void @f1() {
define void @f1(i1 %arg) {
entry:
br label %loop.0
loop.0:
br i1 undef, label %loop.0.0, label %loop.1
br i1 %arg, label %loop.0.0, label %loop.1
loop.0.0:
br i1 undef, label %loop.0.0, label %loop.0.1
br i1 %arg, label %loop.0.0, label %loop.0.1
loop.0.1:
br i1 undef, label %loop.0.1, label %loop.0
br i1 %arg, label %loop.0.1, label %loop.0
loop.1:
br i1 undef, label %loop.1, label %loop.1.bb1
br i1 %arg, label %loop.1, label %loop.1.bb1
loop.1.bb1:
br i1 undef, label %loop.1, label %loop.1.bb2
br i1 %arg, label %loop.1, label %loop.1.bb2
loop.1.bb2:
br i1 undef, label %end, label %loop.1.0
br i1 %arg, label %end, label %loop.1.0
loop.1.0:
br i1 undef, label %loop.1.0, label %loop.1
br i1 %arg, label %loop.1.0, label %loop.1
end:
ret void
}
Expand All @@ -141,14 +141,14 @@ bb.false:

; This function is here to verify that opt-bisect can skip all passes for
; functions that contain lifetime intrinsics.
define void @f4() {
define void @f4(i1 %arg) {
entry:
%i = alloca i32, align 4
call void @llvm.lifetime.start(i64 4, ptr %i)
br label %for.cond

for.cond:
br i1 undef, label %for.body, label %for.end
br i1 %arg, label %for.body, label %for.end

for.body:
br label %for.cond
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@

; In %merge %val.unrelocated, %ptr and %arg should be unrelocated.
; FIXME: if this test fails it is a false-positive alarm. IR is correct.
define void @test.unrelocated-phi.ok(ptr addrspace(1) %arg) gc "statepoint-example" {
define void @test.unrelocated-phi.ok(ptr addrspace(1) %arg, i1 %new_arg) gc "statepoint-example" {
; CHECK-LABEL: Verifying gc pointers in function: test.unrelocated-phi.ok
bci_0:
%ptr = getelementptr i8, ptr addrspace(1) %arg, i64 4
br i1 undef, label %left, label %right
br i1 %new_arg, label %left, label %right

left:
%safepoint_token = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0)
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/SafepointIRVerifier/unrecorded-live-at-sp.ll
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ declare ptr addrspace(1) @generate_obj2() #1
declare ptr addrspace(1) @generate_obj3() #1

; Function Attrs: nounwind
define void @test(ptr addrspace(1), ptr addrspace(1), i32) #3 gc "statepoint-example" {
define void @test(ptr addrspace(1), ptr addrspace(1), i32, i1 %new_arg) #3 gc "statepoint-example" {
bci_0:
%result608 = call ptr addrspace(1) @generate_obj3()
br label %bci_37-aload
Expand All @@ -24,7 +24,7 @@ bci_37-aload: ; preds = %not_zero179, %bci_0
%base_phi2 = phi ptr addrspace(1) [ %base_phi3, %not_zero179 ], [ %result608, %bci_0 ], !is_base_value !0
%relocated8 = phi ptr addrspace(1) [ %relocated7.relocated, %not_zero179 ], [ %result608, %bci_0 ]
%tmp3 = getelementptr inbounds %jObject, ptr addrspace(1) %relocated8, i64 0, i32 0, i64 32
br i1 undef, label %not_zero179, label %not_zero146
br i1 %new_arg, label %not_zero179, label %not_zero146

not_zero146: ; preds = %bci_37-aload
%addr98.relocated = call ptr addrspace(1) @generate_obj2() #1
Expand Down
32 changes: 16 additions & 16 deletions llvm/test/SafepointIRVerifier/uses-in-phi-nodes.ll
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
; RUN: opt -safepoint-ir-verifier-print-only -verify-safepoint-ir -S %s 2>&1 | FileCheck %s

define ptr addrspace(1) @test.not.ok.0(ptr addrspace(1) %arg) gc "statepoint-example" {
define ptr addrspace(1) @test.not.ok.0(ptr addrspace(1) %arg, i1 %new_arg) gc "statepoint-example" {
; CHECK-LABEL: Verifying gc pointers in function: test.not.ok.0
bci_0:
br i1 undef, label %left, label %right
br i1 %new_arg, label %left, label %right

left:
%safepoint_token = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr elementtype(void ()) undef, i32 0, i32 0, i32 0, i32 0)
Expand All @@ -20,10 +20,10 @@ define ptr addrspace(1) @test.not.ok.0(ptr addrspace(1) %arg) gc "statepoint-exa
ret ptr addrspace(1) %val
}

define ptr addrspace(1) @test.not.ok.1(ptr addrspace(1) %arg) gc "statepoint-example" {
define ptr addrspace(1) @test.not.ok.1(ptr addrspace(1) %arg, i1 %new_arg) gc "statepoint-example" {
; CHECK-LABEL: Verifying gc pointers in function: test.not.ok.1
bci_0:
br i1 undef, label %left, label %right
br i1 %new_arg, label %left, label %right

left:
%safepoint_token = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr elementtype(void ()) undef, i32 0, i32 0, i32 0, i32 0)
Expand All @@ -40,10 +40,10 @@ define ptr addrspace(1) @test.not.ok.1(ptr addrspace(1) %arg) gc "statepoint-exa
ret ptr addrspace(1) %val
}

define ptr addrspace(1) @test.ok.0(ptr addrspace(1) %arg) gc "statepoint-example" {
define ptr addrspace(1) @test.ok.0(ptr addrspace(1) %arg, i1 %new_arg) gc "statepoint-example" {
; CHECK: No illegal uses found by SafepointIRVerifier in: test.ok.0
bci_0:
br i1 undef, label %left, label %right
br i1 %new_arg, label %left, label %right

left:
%safepoint_token = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr elementtype(void ()) undef, i32 0, i32 0, i32 0, i32 0)
Expand All @@ -57,10 +57,10 @@ define ptr addrspace(1) @test.ok.0(ptr addrspace(1) %arg) gc "statepoint-example
ret ptr addrspace(1) %val
}

define ptr addrspace(1) @test.ok.1(ptr addrspace(1) %arg) gc "statepoint-example" {
define ptr addrspace(1) @test.ok.1(ptr addrspace(1) %arg, i1 %new_arg) gc "statepoint-example" {
; CHECK: No illegal uses found by SafepointIRVerifier in: test.ok.1
bci_0:
br i1 undef, label %left, label %right
br i1 %new_arg, label %left, label %right

left:
call void @not_statepoint()
Expand All @@ -75,10 +75,10 @@ define ptr addrspace(1) @test.ok.1(ptr addrspace(1) %arg) gc "statepoint-example
}

; It should be allowed to compare poisoned ptr with null.
define void @test.poisoned.cmp.ok(ptr addrspace(1) %arg) gc "statepoint-example" {
define void @test.poisoned.cmp.ok(ptr addrspace(1) %arg, i1 %new_arg) gc "statepoint-example" {
; CHECK-LABEL: Verifying gc pointers in function: test.poisoned.cmp.ok
bci_0:
br i1 undef, label %left, label %right
br i1 %new_arg, label %left, label %right

left:
%safepoint_token = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr elementtype(void ()) undef, i32 0, i32 0, i32 0, i32 0) ["gc-live"(ptr addrspace(1) %arg)]
Expand All @@ -97,10 +97,10 @@ define void @test.poisoned.cmp.ok(ptr addrspace(1) %arg) gc "statepoint-example"
}

; It is illegal to compare poisoned ptr and relocated.
define void @test.poisoned.cmp.fail.0(ptr addrspace(1) %arg) gc "statepoint-example" {
define void @test.poisoned.cmp.fail.0(ptr addrspace(1) %arg, i1 %new_arg) gc "statepoint-example" {
; CHECK-LABEL: Verifying gc pointers in function: test.poisoned.cmp.fail.0
bci_0:
br i1 undef, label %left, label %right
br i1 %new_arg, label %left, label %right

left:
%safepoint_token = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr elementtype(void ()) undef, i32 0, i32 0, i32 0, i32 0) ["gc-live"(ptr addrspace(1) %arg)]
Expand All @@ -123,10 +123,10 @@ define void @test.poisoned.cmp.fail.0(ptr addrspace(1) %arg) gc "statepoint-exam
}

; It is illegal to compare poisoned ptr and unrelocated.
define void @test.poisoned.cmp.fail.1(ptr addrspace(1) %arg) gc "statepoint-example" {
define void @test.poisoned.cmp.fail.1(ptr addrspace(1) %arg, i1 %new_arg) gc "statepoint-example" {
; CHECK-LABEL: Verifying gc pointers in function: test.poisoned.cmp.fail.1
bci_0:
br i1 undef, label %left, label %right
br i1 %new_arg, label %left, label %right

left:
%safepoint_token = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr elementtype(void ()) undef, i32 0, i32 0, i32 0, i32 0) ["gc-live"(ptr addrspace(1) %arg)]
Expand All @@ -148,10 +148,10 @@ define void @test.poisoned.cmp.fail.1(ptr addrspace(1) %arg) gc "statepoint-exam
}

; It should be allowed to compare unrelocated phi with unrelocated value.
define void @test.unrelocated-phi.cmp.ok(ptr addrspace(1) %arg) gc "statepoint-example" {
define void @test.unrelocated-phi.cmp.ok(ptr addrspace(1) %arg, i1 %new_arg) gc "statepoint-example" {
; CHECK-LABEL: Verifying gc pointers in function: test.unrelocated-phi.cmp.ok
bci_0:
br i1 undef, label %left, label %right
br i1 %new_arg, label %left, label %right

left:
%safepoint_token = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr elementtype(void ()) undef, i32 0, i32 0, i32 0, i32 0)
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/Verifier/tbaa-cyclic.ll
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
; RUN: not llvm-as -disable-output < %s 2>&1 | FileCheck %s
; CHECK: Access type node must be a valid scalar type

define void @test6(ptr %gi) #0 {
define void @test6(ptr %gi, i1 %arg) #0 {
entry:
store i32 42, ptr %gi, align 4, !tbaa !0
br label %for.cond

for.cond: ; preds = %for.body, %entry
br i1 undef, label %for.body, label %for.end
br i1 %arg, label %for.body, label %for.end

for.body: ; preds = %for.cond
store i32 undef, ptr %gi, align 4, !tbaa !2
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/tools/llvm-reduce/operands-skip.ll
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@

@Global = global i32 42

define void @func(ptr %arg1, ptr %arg2) {
define void @func(ptr %arg1, ptr %arg2, i1 %arg) {
entry:
%val = getelementptr i32, ptr getelementptr (i32, ptr @Global, i32 1), i32 2
br i1 undef, label %branch, label %loop
br i1 %arg, label %branch, label %loop

branch:
%nondominating1 = getelementptr i32, ptr %val, i32 3
Expand All @@ -50,7 +50,7 @@ loop:
store i32 49, ptr %imm, align 4 ; Reduce to null

%nondominating2 = getelementptr i32, ptr %indirect, i32 6
br i1 undef, label %loop, label %exit
br i1 %arg, label %loop, label %exit

exit:
store i32 50, ptr %arg2, align 4 ; Reduce to %arg1 (compactify function arguments)
Expand Down