[llvm] 602e1cb - [SCCP] Regenerate check lines for some tests.
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 23 06:29:49 PST 2023
Author: Florian Hahn
Date: 2023-01-23T14:29:33Z
New Revision: 602e1cbc0f753ec92089e3530eb29ebfd5215f6e
URL: https://github.com/llvm/llvm-project/commit/602e1cbc0f753ec92089e3530eb29ebfd5215f6e
DIFF: https://github.com/llvm/llvm-project/commit/602e1cbc0f753ec92089e3530eb29ebfd5215f6e.diff
LOG: [SCCP] Regenerate check lines for some tests.
Added:
Modified:
llvm/test/Transforms/SCCP/ip-add-range-to-call.ll
llvm/test/Transforms/SCCP/ip-constant-ranges.ll
llvm/test/Transforms/SCCP/ip-ranges-binaryops.ll
llvm/test/Transforms/SCCP/ip-ranges-phis.ll
llvm/test/Transforms/SCCP/return-constants.ll
llvm/test/Transforms/SCCP/widening.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/SCCP/ip-add-range-to-call.ll b/llvm/test/Transforms/SCCP/ip-add-range-to-call.ll
index 9c5b73c8164c0..c114b7a956395 100644
--- a/llvm/test/Transforms/SCCP/ip-add-range-to-call.ll
+++ b/llvm/test/Transforms/SCCP/ip-add-range-to-call.ll
@@ -1,3 +1,4 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -passes=ipsccp -S %s | FileCheck %s
; Test 1.
@@ -12,8 +13,8 @@ define internal noundef i32 @callee(i32 %x) {
define i32 @caller1() {
; CHECK-LABEL: @caller1(
-; CHECK-NEXT: [[C1:%.*]] = call i32 @callee(i32 10), !range [[RANGE_10_21:![0-9]+]]
-; CHECK-NEXT: [[C2:%.*]] = call i32 @callee(i32 20), !range [[RANGE_10_21]]
+; CHECK-NEXT: [[C1:%.*]] = call i32 @callee(i32 10), !range [[RNG0:![0-9]+]]
+; CHECK-NEXT: [[C2:%.*]] = call i32 @callee(i32 20), !range [[RNG0]]
; CHECK-NEXT: [[A:%.*]] = add i32 [[C1]], [[C2]]
; CHECK-NEXT: ret i32 [[A]]
;
@@ -26,7 +27,7 @@ define i32 @caller1() {
define i32 @caller2(i32 %x) {
; CHECK-LABEL: @caller2(
; CHECK-NEXT: [[X_15:%.*]] = and i32 [[X:%.*]], 15
-; CHECK-NEXT: [[C:%.*]] = call i32 @callee(i32 [[X_15]]), !range [[RANGE_10_21]]
+; CHECK-NEXT: [[C:%.*]] = call i32 @callee(i32 [[X_15]]), !range [[RNG0]]
; CHECK-NEXT: ret i32 [[C]]
;
%x.15 = and i32 %x, 15
@@ -51,9 +52,7 @@ define internal noundef i32 @callee2(i32 %x) {
define void @caller_cb1() {
; CHECK-LABEL: @caller_cb1(
; CHECK-NEXT: [[C1:%.*]] = call i32 @callee2(i32 9)
-; CHECK-NOT: !range
; CHECK-NEXT: [[C2:%.*]] = call i32 @callee2(i32 10)
-; CHECK-NOT: !range
; CHECK-NEXT: call void @use_cb1(ptr @callee2)
; CHECK-NEXT: ret void
;
@@ -83,8 +82,8 @@ define internal noundef i32 @callee3(i32 %x) {
define void @caller_cb2() {
; CHECK-LABEL: @caller_cb2(
-; CHECK-NEXT: [[C1:%.*]] = call i32 @callee3(i32 9), !range [[RANGE_500_601:![0-9]+]]
-; CHECK-NEXT: [[C2:%.*]] = call i32 @callee3(i32 10), !range [[RANGE_500_601]]
+; CHECK-NEXT: [[C1:%.*]] = call i32 @callee3(i32 9), !range [[RNG1:![0-9]+]]
+; CHECK-NEXT: [[C2:%.*]] = call i32 @callee3(i32 10), !range [[RNG1]]
; CHECK-NEXT: call void @use_cb2(ptr @callee3)
; CHECK-NEXT: ret void
;
@@ -170,5 +169,5 @@ define i32 @caller5() {
ret i32 %a
}
-; CHECK: [[RANGE_10_21]] = !{i32 0, i32 21}
-; CHECK: [[RANGE_500_601]] = !{i32 500, i32 601}
+; CHECK: [[RNG0]] = !{i32 0, i32 21}
+; CHECK: [[RNG1]] = !{i32 500, i32 601}
diff --git a/llvm/test/Transforms/SCCP/ip-constant-ranges.ll b/llvm/test/Transforms/SCCP/ip-constant-ranges.ll
index 572f07137b9ab..72f308bcd7ce4 100644
--- a/llvm/test/Transforms/SCCP/ip-constant-ranges.ll
+++ b/llvm/test/Transforms/SCCP/ip-constant-ranges.ll
@@ -1,9 +1,13 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature
; RUN: opt < %s -passes=ipsccp -S | FileCheck %s
; Constant range for %a is [1, 48) and for %b is [301, 1000)
-; CHECK-LABEL: f1
-; CHECK: ret i32 undef
define internal i32 @f1(i32 %a, i32 %b) {
+; CHECK-LABEL: define {{[^@]+}}@f1
+; CHECK-SAME: (i32 [[A:%.*]], i32 [[B:%.*]]) {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: ret i32 undef
+;
entry:
%cmp.a = icmp sgt i32 %a, 300
%cmp.b = icmp sgt i32 %b, 300
@@ -21,15 +25,19 @@ entry:
}
; Constant range for %x is [47, 302)
-; CHECK-LABEL: f2
-; CHECK: %cmp = icmp sgt i32 %x, 300
-; CHECK: %res1 = select i1 %cmp, i32 1, i32 2
-; CHECK-NEXT: %res4 = select i1 %cmp4, i32 3, i32 4
-; CHECK-NEXT: %res6 = add i32 %res1, 3
-; CHECK-NEXT: %res7 = add i32 5, %res4
-; CHECK-NEXT: %res = add i32 %res6, 5
-; CHECK-NEXT: ret i32 %res
define internal i32 @f2(i32 %x) {
+; CHECK-LABEL: define {{[^@]+}}@f2
+; CHECK-SAME: (i32 [[X:%.*]]) {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[X]], 300
+; CHECK-NEXT: [[CMP4:%.*]] = icmp ugt i32 [[X]], 300
+; CHECK-NEXT: [[RES1:%.*]] = select i1 [[CMP]], i32 1, i32 2
+; CHECK-NEXT: [[RES4:%.*]] = select i1 [[CMP4]], i32 3, i32 4
+; CHECK-NEXT: [[RES6:%.*]] = add i32 [[RES1]], 3
+; CHECK-NEXT: [[RES7:%.*]] = add i32 5, [[RES4]]
+; CHECK-NEXT: [[RES:%.*]] = add i32 [[RES6]], 5
+; CHECK-NEXT: ret i32 [[RES]]
+;
entry:
%cmp = icmp sgt i32 %x, 300
%cmp2 = icmp ne i32 %x, 10
@@ -49,6 +57,16 @@ entry:
}
define i32 @caller1() {
+; CHECK-LABEL: define {{[^@]+}}@caller1() {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: [[CALL1:%.*]] = tail call i32 @f1(i32 1, i32 301)
+; CHECK-NEXT: [[CALL2:%.*]] = tail call i32 @f1(i32 47, i32 999)
+; CHECK-NEXT: [[CALL3:%.*]] = tail call i32 @f2(i32 47)
+; CHECK-NEXT: [[CALL4:%.*]] = tail call i32 @f2(i32 301)
+; CHECK-NEXT: [[RES_1:%.*]] = add nsw i32 12, [[CALL3]]
+; CHECK-NEXT: [[RES_2:%.*]] = add nsw i32 [[RES_1]], [[CALL4]]
+; CHECK-NEXT: ret i32 [[RES_2]]
+;
entry:
%call1 = tail call i32 @f1(i32 1, i32 301)
%call2 = tail call i32 @f1(i32 47, i32 999)
@@ -59,10 +77,12 @@ entry:
ret i32 %res.2
}
-; CHECK-LABEL: f3
-; CHECK-LABEL: entry:
-; CHECK: ret i32 undef
define internal i32 @f3(i32 %x) {
+; CHECK-LABEL: define {{[^@]+}}@f3
+; CHECK-SAME: (i32 [[X:%.*]]) {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: ret i32 undef
+;
entry:
%cmp = icmp sgt i32 %x, 300
%res = select i1 %cmp, i32 1, i32 2
@@ -71,6 +91,17 @@ entry:
; The phi node could be converted in a ConstantRange.
define i32 @caller2(i1 %cmp) {
+; CHECK-LABEL: define {{[^@]+}}@caller2
+; CHECK-SAME: (i1 [[CMP:%.*]]) {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: br i1 [[CMP]], label [[IF_TRUE:%.*]], label [[END:%.*]]
+; CHECK: if.true:
+; CHECK-NEXT: br label [[END]]
+; CHECK: end:
+; CHECK-NEXT: [[RES:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ 1, [[IF_TRUE]] ]
+; CHECK-NEXT: [[CALL1:%.*]] = tail call i32 @f3(i32 [[RES]])
+; CHECK-NEXT: ret i32 2
+;
entry:
br i1 %cmp, label %if.true, label %end
@@ -83,9 +114,12 @@ end:
ret i32 2
}
-; CHECK-LABEL: f4
-; CHECK: ret i32 undef
define internal i32 @f4(i32 %x) {
+; CHECK-LABEL: define {{[^@]+}}@f4
+; CHECK-SAME: (i32 [[X:%.*]]) {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: ret i32 undef
+;
entry:
%cmp = icmp sgt i32 %x, 300
%res = select i1 %cmp, i32 1, i32 2
@@ -94,10 +128,17 @@ entry:
; ICmp introduces bounds on ConstantRanges.
define i32 @caller3(i32 %x) {
-; CHECK-LABEL: define i32 @caller3(i32 %x)
-; CHECK-LABEL: end:
-; CHECK-NEXT: %res = phi i32 [ 0, %entry ], [ 1, %if.true ]
-; CHECK-NEXT: ret i32 %res
+; CHECK-LABEL: define {{[^@]+}}@caller3
+; CHECK-SAME: (i32 [[X:%.*]]) {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[X]], 300
+; CHECK-NEXT: br i1 [[CMP]], label [[IF_TRUE:%.*]], label [[END:%.*]]
+; CHECK: if.true:
+; CHECK-NEXT: [[X_1:%.*]] = tail call i32 @f4(i32 [[X]])
+; CHECK-NEXT: br label [[END]]
+; CHECK: end:
+; CHECK-NEXT: [[RES:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ 1, [[IF_TRUE]] ]
+; CHECK-NEXT: ret i32 [[RES]]
;
entry:
%cmp = icmp sgt i32 %x, 300
@@ -115,6 +156,12 @@ end:
; Check to make sure we do not attempt to access lattice values in unreachable
; blocks.
define i32 @test_unreachable() {
+; CHECK-LABEL: define {{[^@]+}}@test_unreachable() {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: [[TMP0:%.*]] = call i1 @test_unreachable_callee(i32 1)
+; CHECK-NEXT: [[TMP1:%.*]] = call i1 @test_unreachable_callee(i32 2)
+; CHECK-NEXT: ret i32 1
+;
entry:
call i1 @test_unreachable_callee(i32 1)
call i1 @test_unreachable_callee(i32 2)
@@ -122,6 +169,11 @@ entry:
}
define internal i1 @test_unreachable_callee(i32 %a) {
+; CHECK-LABEL: define {{[^@]+}}@test_unreachable_callee
+; CHECK-SAME: (i32 [[A:%.*]]) {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: ret i1 undef
+;
entry:
ret i1 true
@@ -133,21 +185,29 @@ unreachablebb:
; Check that we do not attempt to get range info for non-integer types and
; crash.
define double @test_struct({ double, double } %test) {
- %v = extractvalue { double, double } %test, 0
- %r = fmul double %v, %v
- ret double %r
+; CHECK-LABEL: define {{[^@]+}}@test_struct
+; CHECK-SAME: ({ double, double } [[TEST:%.*]]) {
+; CHECK-NEXT: [[V:%.*]] = extractvalue { double, double } [[TEST]], 0
+; CHECK-NEXT: [[R:%.*]] = fmul double [[V]], [[V]]
+; CHECK-NEXT: ret double [[R]]
+;
+ %v = extractvalue { double, double } %test, 0
+ %r = fmul double %v, %v
+ ret double %r
}
; Constant range for %x is [47, 302)
-; CHECK-LABEL: @f5
-; CHECK-NEXT: entry:
-; CHECK-NEXT: %cmp = icmp sgt i32 %x, undef
-; CHECK-NEXT: %cmp2 = icmp ne i32 undef, %x
-; CHECK-NEXT: %res1 = select i1 %cmp, i32 1, i32 2
-; CHECK-NEXT: %res2 = select i1 %cmp2, i32 3, i32 4
-; CHECK-NEXT: %res = add i32 %res1, %res2
-; CHECK-NEXT: ret i32 %res
define internal i32 @f5(i32 %x) {
+; CHECK-LABEL: define {{[^@]+}}@f5
+; CHECK-SAME: (i32 [[X:%.*]]) {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[X]], undef
+; CHECK-NEXT: [[CMP2:%.*]] = icmp ne i32 undef, [[X]]
+; CHECK-NEXT: [[RES1:%.*]] = select i1 [[CMP]], i32 1, i32 2
+; CHECK-NEXT: [[RES2:%.*]] = select i1 [[CMP2]], i32 3, i32 4
+; CHECK-NEXT: [[RES:%.*]] = add i32 [[RES1]], [[RES2]]
+; CHECK-NEXT: ret i32 [[RES]]
+;
entry:
%cmp = icmp sgt i32 %x, undef
%cmp2 = icmp ne i32 undef, %x
@@ -159,6 +219,13 @@ entry:
}
define i32 @caller4() {
+; CHECK-LABEL: define {{[^@]+}}@caller4() {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: [[CALL1:%.*]] = tail call i32 @f5(i32 47)
+; CHECK-NEXT: [[CALL2:%.*]] = tail call i32 @f5(i32 301)
+; CHECK-NEXT: [[RES:%.*]] = add nsw i32 [[CALL1]], [[CALL2]]
+; CHECK-NEXT: ret i32 [[RES]]
+;
entry:
%call1 = tail call i32 @f5(i32 47)
%call2 = tail call i32 @f5(i32 301)
@@ -167,11 +234,23 @@ entry:
}
; Make sure we do re-evaluate the function after ParamState changes.
-; CHECK-LABEL: @recursive_f
-; CHECK-LABEL: entry:
-; CHECK: %cmp = icmp eq i32 %i, 0
-; CHECK-NEXT: br i1 %cmp, label %if.then, label %if.else
define internal i32 @recursive_f(i32 %i) {
+; CHECK-LABEL: define {{[^@]+}}@recursive_f
+; CHECK-SAME: (i32 [[I:%.*]]) {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[I]], 0
+; CHECK-NEXT: br i1 [[CMP]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
+; CHECK: if.then:
+; CHECK-NEXT: br label [[RETURN:%.*]]
+; CHECK: if.else:
+; CHECK-NEXT: [[SUB:%.*]] = sub nsw i32 [[I]], 1
+; CHECK-NEXT: [[CALL:%.*]] = call i32 @recursive_f(i32 [[SUB]])
+; CHECK-NEXT: [[ADD:%.*]] = add i32 [[I]], [[CALL]]
+; CHECK-NEXT: br label [[RETURN]]
+; CHECK: return:
+; CHECK-NEXT: [[RETVAL_0:%.*]] = phi i32 [ 0, [[IF_THEN]] ], [ [[ADD]], [[IF_ELSE]] ]
+; CHECK-NEXT: ret i32 [[RETVAL_0]]
+;
entry:
%cmp = icmp eq i32 %i, 0
br i1 %cmp, label %if.then, label %if.else
@@ -190,18 +269,21 @@ return: ; preds = %if.else, %if.then
ret i32 %retval.0
}
-; CHECK-LABEL: @caller5
-; CHECK: %call = call i32 @recursive_f(i32 42)
-; CHECK-NEXT: ret i32 %call
define i32 @caller5() {
+; CHECK-LABEL: define {{[^@]+}}@caller5() {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: [[CALL:%.*]] = call i32 @recursive_f(i32 42)
+; CHECK-NEXT: ret i32 [[CALL]]
+;
entry:
%call = call i32 @recursive_f(i32 42)
ret i32 %call
}
define internal i32 @callee6.1(i32 %i) {
-; CHECK-LABEL: define internal i32 @callee6.1(
-; CHECK-NEXT: %res = call i32 @callee6.2(i32 %i)
+; CHECK-LABEL: define {{[^@]+}}@callee6.1
+; CHECK-SAME: (i32 [[I:%.*]]) {
+; CHECK-NEXT: [[RES:%.*]] = call i32 @callee6.2(i32 [[I]])
; CHECK-NEXT: ret i32 undef
;
%res = call i32 @callee6.2(i32 %i)
@@ -209,12 +291,13 @@ define internal i32 @callee6.1(i32 %i) {
}
define internal i32 @callee6.2(i32 %i) {
-; CHECK-LABEL: define internal i32 @callee6.2(i32 %i) {
-; CHECK-NEXT: br label %if.then
-
-; CHECK-LABEL: if.then:
+; CHECK-LABEL: define {{[^@]+}}@callee6.2
+; CHECK-SAME: (i32 [[I:%.*]]) {
+; CHECK-NEXT: br label [[IF_THEN:%.*]]
+; CHECK: if.then:
; CHECK-NEXT: ret i32 undef
;
+
%cmp = icmp ne i32 %i, 0
br i1 %cmp, label %if.then, label %if.else
@@ -226,9 +309,9 @@ if.else: ; preds = %entry
}
define i32 @caller6() {
-; CHECK-LABEL: define i32 @caller6() {
-; CHECK-NEXT: %call.1 = call i32 @callee6.1(i32 30)
-; CHECK-NEXT: %call.2 = call i32 @callee6.1(i32 43)
+; CHECK-LABEL: define {{[^@]+}}@caller6() {
+; CHECK-NEXT: [[CALL_1:%.*]] = call i32 @callee6.1(i32 30)
+; CHECK-NEXT: [[CALL_2:%.*]] = call i32 @callee6.1(i32 43)
; CHECK-NEXT: ret i32 2
;
%call.1 = call i32 @callee6.1(i32 30)
diff --git a/llvm/test/Transforms/SCCP/ip-ranges-binaryops.ll b/llvm/test/Transforms/SCCP/ip-ranges-binaryops.ll
index 7fa4807802fdd..ab57d7aef4b9a 100644
--- a/llvm/test/Transforms/SCCP/ip-ranges-binaryops.ll
+++ b/llvm/test/Transforms/SCCP/ip-ranges-binaryops.ll
@@ -1,20 +1,21 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -passes=ipsccp -S | FileCheck %s
; x = [10, 21), y = [100, 201)
; x + y = [110, 221)
define internal i1 @f.add(i32 %x, i32 %y) {
-; CHECK-LABEL: define internal i1 @f.add(i32 %x, i32 %y) {
-; CHECK-NEXT: %a.1 = add i32 %x, %y
-; CHECK-NEXT: %c.2 = icmp sgt i32 %a.1, 219
-; CHECK-NEXT: %c.4 = icmp slt i32 %a.1, 111
-; CHECK-NEXT: %c.5 = icmp eq i32 %a.1, 150
-; CHECK-NEXT: %c.6 = icmp slt i32 %a.1, 150
-; CHECK-NEXT: %res.1 = add i1 false, %c.2
-; CHECK-NEXT: %res.2 = add i1 %res.1, false
-; CHECK-NEXT: %res.3 = add i1 %res.2, %c.4
-; CHECK-NEXT: %res.4 = add i1 %res.3, %c.5
-; CHECK-NEXT: %res.5 = add i1 %res.4, %c.6
-; CHECK-NEXT: ret i1 %res.5
+; CHECK-LABEL: @f.add(
+; CHECK-NEXT: [[A_1:%.*]] = add i32 [[X:%.*]], [[Y:%.*]]
+; CHECK-NEXT: [[C_2:%.*]] = icmp sgt i32 [[A_1]], 219
+; CHECK-NEXT: [[C_4:%.*]] = icmp slt i32 [[A_1]], 111
+; CHECK-NEXT: [[C_5:%.*]] = icmp eq i32 [[A_1]], 150
+; CHECK-NEXT: [[C_6:%.*]] = icmp slt i32 [[A_1]], 150
+; CHECK-NEXT: [[RES_1:%.*]] = add i1 false, [[C_2]]
+; CHECK-NEXT: [[RES_2:%.*]] = add i1 [[RES_1]], false
+; CHECK-NEXT: [[RES_3:%.*]] = add i1 [[RES_2]], [[C_4]]
+; CHECK-NEXT: [[RES_4:%.*]] = add i1 [[RES_3]], [[C_5]]
+; CHECK-NEXT: [[RES_5:%.*]] = add i1 [[RES_4]], [[C_6]]
+; CHECK-NEXT: ret i1 [[RES_5]]
;
%a.1 = add i32 %x, %y
%c.1 = icmp sgt i32 %a.1, 220
@@ -32,11 +33,11 @@ define internal i1 @f.add(i32 %x, i32 %y) {
}
define i1 @caller.add() {
-; CHECK-LABEL: define i1 @caller.add() {
-; CHECK-NEXT: %call.1 = tail call i1 @f.add(i32 10, i32 100)
-; CHECK-NEXT: %call.2 = tail call i1 @f.add(i32 20, i32 200)
-; CHECK-NEXT: %res = and i1 %call.1, %call.2
-; CHECK-NEXT: ret i1 %res
+; CHECK-LABEL: @caller.add(
+; CHECK-NEXT: [[CALL_1:%.*]] = tail call i1 @f.add(i32 10, i32 100)
+; CHECK-NEXT: [[CALL_2:%.*]] = tail call i1 @f.add(i32 20, i32 200)
+; CHECK-NEXT: [[RES:%.*]] = and i1 [[CALL_1]], [[CALL_2]]
+; CHECK-NEXT: ret i1 [[RES]]
;
%call.1 = tail call i1 @f.add(i32 10, i32 100)
%call.2 = tail call i1 @f.add(i32 20, i32 200)
@@ -48,18 +49,18 @@ define i1 @caller.add() {
; x = [10, 21), y = [100, 201)
; x - y = [-190, -79)
define internal i1 @f.sub(i32 %x, i32 %y) {
-; CHECK-LABEL: define internal i1 @f.sub(i32 %x, i32 %y) {
-; CHECK-NEXT: %a.1 = sub i32 %x, %y
-; CHECK-NEXT: %c.2 = icmp sgt i32 %a.1, -81
-; CHECK-NEXT: %c.4 = icmp slt i32 %a.1, -189
-; CHECK-NEXT: %c.5 = icmp eq i32 %a.1, -150
-; CHECK-NEXT: %c.6 = icmp slt i32 %a.1, -150
-; CHECK-NEXT: %res.1 = add i1 false, %c.2
-; CHECK-NEXT: %res.2 = add i1 %res.1, false
-; CHECK-NEXT: %res.3 = add i1 %res.2, %c.4
-; CHECK-NEXT: %res.4 = add i1 %res.3, %c.5
-; CHECK-NEXT: %res.5 = add i1 %res.4, %c.6
-; CHECK-NEXT: ret i1 %res.5
+; CHECK-LABEL: @f.sub(
+; CHECK-NEXT: [[A_1:%.*]] = sub i32 [[X:%.*]], [[Y:%.*]]
+; CHECK-NEXT: [[C_2:%.*]] = icmp sgt i32 [[A_1]], -81
+; CHECK-NEXT: [[C_4:%.*]] = icmp slt i32 [[A_1]], -189
+; CHECK-NEXT: [[C_5:%.*]] = icmp eq i32 [[A_1]], -150
+; CHECK-NEXT: [[C_6:%.*]] = icmp slt i32 [[A_1]], -150
+; CHECK-NEXT: [[RES_1:%.*]] = add i1 false, [[C_2]]
+; CHECK-NEXT: [[RES_2:%.*]] = add i1 [[RES_1]], false
+; CHECK-NEXT: [[RES_3:%.*]] = add i1 [[RES_2]], [[C_4]]
+; CHECK-NEXT: [[RES_4:%.*]] = add i1 [[RES_3]], [[C_5]]
+; CHECK-NEXT: [[RES_5:%.*]] = add i1 [[RES_4]], [[C_6]]
+; CHECK-NEXT: ret i1 [[RES_5]]
;
%a.1 = sub i32 %x, %y
%c.1 = icmp sgt i32 %a.1, -80
@@ -77,11 +78,11 @@ define internal i1 @f.sub(i32 %x, i32 %y) {
}
define i1 @caller.sub() {
-; CHECK-LABEL: define i1 @caller.sub() {
-; CHECK-NEXT: %call.1 = tail call i1 @f.sub(i32 10, i32 100)
-; CHECK-NEXT: %call.2 = tail call i1 @f.sub(i32 20, i32 200)
-; CHECK-NEXT: %res = and i1 %call.1, %call.2
-; CHECK-NEXT: ret i1 %res
+; CHECK-LABEL: @caller.sub(
+; CHECK-NEXT: [[CALL_1:%.*]] = tail call i1 @f.sub(i32 10, i32 100)
+; CHECK-NEXT: [[CALL_2:%.*]] = tail call i1 @f.sub(i32 20, i32 200)
+; CHECK-NEXT: [[RES:%.*]] = and i1 [[CALL_1]], [[CALL_2]]
+; CHECK-NEXT: ret i1 [[RES]]
;
%call.1 = tail call i1 @f.sub(i32 10, i32 100)
%call.2 = tail call i1 @f.sub(i32 20, i32 200)
@@ -92,18 +93,18 @@ define i1 @caller.sub() {
; x = [10, 21), y = [100, 201)
; x * y = [1000, 4001)
define internal i1 @f.mul(i32 %x, i32 %y) {
-; CHECK-LABEL: define internal i1 @f.mul(i32 %x, i32 %y) {
-; CHECK-NEXT: %a.1 = mul i32 %x, %y
-; CHECK-NEXT: %c.2 = icmp sgt i32 %a.1, 3999
-; CHECK-NEXT: %c.4 = icmp slt i32 %a.1, 1001
-; CHECK-NEXT: %c.5 = icmp eq i32 %a.1, 1500
-; CHECK-NEXT: %c.6 = icmp slt i32 %a.1, 1500
-; CHECK-NEXT: %res.1 = add i1 false, %c.2
-; CHECK-NEXT: %res.2 = add i1 %res.1, false
-; CHECK-NEXT: %res.3 = add i1 %res.2, %c.4
-; CHECK-NEXT: %res.4 = add i1 %res.3, %c.5
-; CHECK-NEXT: %res.5 = add i1 %res.4, %c.6
-; CHECK-NEXT: ret i1 %res.5
+; CHECK-LABEL: @f.mul(
+; CHECK-NEXT: [[A_1:%.*]] = mul i32 [[X:%.*]], [[Y:%.*]]
+; CHECK-NEXT: [[C_2:%.*]] = icmp sgt i32 [[A_1]], 3999
+; CHECK-NEXT: [[C_4:%.*]] = icmp slt i32 [[A_1]], 1001
+; CHECK-NEXT: [[C_5:%.*]] = icmp eq i32 [[A_1]], 1500
+; CHECK-NEXT: [[C_6:%.*]] = icmp slt i32 [[A_1]], 1500
+; CHECK-NEXT: [[RES_1:%.*]] = add i1 false, [[C_2]]
+; CHECK-NEXT: [[RES_2:%.*]] = add i1 [[RES_1]], false
+; CHECK-NEXT: [[RES_3:%.*]] = add i1 [[RES_2]], [[C_4]]
+; CHECK-NEXT: [[RES_4:%.*]] = add i1 [[RES_3]], [[C_5]]
+; CHECK-NEXT: [[RES_5:%.*]] = add i1 [[RES_4]], [[C_6]]
+; CHECK-NEXT: ret i1 [[RES_5]]
;
%a.1 = mul i32 %x, %y
%c.1 = icmp sgt i32 %a.1, 4000
@@ -121,11 +122,11 @@ define internal i1 @f.mul(i32 %x, i32 %y) {
}
define i1 @caller.mul() {
-; CHECK-LABEL: define i1 @caller.mul() {
-; CHECK-NEXT: %call.1 = tail call i1 @f.mul(i32 10, i32 100)
-; CHECK-NEXT: %call.2 = tail call i1 @f.mul(i32 20, i32 200)
-; CHECK-NEXT: %res = and i1 %call.1, %call.2
-; CHECK-NEXT: ret i1 %res
+; CHECK-LABEL: @caller.mul(
+; CHECK-NEXT: [[CALL_1:%.*]] = tail call i1 @f.mul(i32 10, i32 100)
+; CHECK-NEXT: [[CALL_2:%.*]] = tail call i1 @f.mul(i32 20, i32 200)
+; CHECK-NEXT: [[RES:%.*]] = and i1 [[CALL_1]], [[CALL_2]]
+; CHECK-NEXT: ret i1 [[RES]]
;
%call.1 = tail call i1 @f.mul(i32 10, i32 100)
%call.2 = tail call i1 @f.mul(i32 20, i32 200)
diff --git a/llvm/test/Transforms/SCCP/ip-ranges-phis.ll b/llvm/test/Transforms/SCCP/ip-ranges-phis.ll
index 6372d3c58af56..42a4bd9cf227f 100644
--- a/llvm/test/Transforms/SCCP/ip-ranges-phis.ll
+++ b/llvm/test/Transforms/SCCP/ip-ranges-phis.ll
@@ -1,7 +1,9 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature
; RUN: opt < %s -passes=ipsccp -S | FileCheck %s
define internal i32 @f1(i32 %x) {
-; CHECK-LABEL: define internal i32 @f1(
+; CHECK-LABEL: define {{[^@]+}}@f1
+; CHECK-SAME: (i32 [[X:%.*]]) {
; CHECK-NEXT: ret i32 undef
;
%cmp = icmp sgt i32 %x, 300
@@ -11,18 +13,19 @@ define internal i32 @f1(i32 %x) {
; %res is a constant range [0, 2) from a PHI node.
define i32 @caller1(i1 %cmp) {
-; CHECK-LABEL: define i32 @caller1(
-; CHECK-LABEL: entry:
-; CHECK-NEXT: br i1 %cmp, label %if.true, label %end
-
-; CHECK-LABEL: if.true:
-; CHECK-NEXT: br label %end
-
-; CHECK-LABEL: end:
-; CHECK-NEXT: %res = phi i32 [ 0, %entry ], [ 1, %if.true ]
-; CHECK-NEXT: %call1 = tail call i32 @f1(i32 %res)
+; CHECK-LABEL: define {{[^@]+}}@caller1
+; CHECK-SAME: (i1 [[CMP:%.*]]) {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: br i1 [[CMP]], label [[IF_TRUE:%.*]], label [[END:%.*]]
+; CHECK: if.true:
+; CHECK-NEXT: br label [[END]]
+; CHECK: end:
+; CHECK-NEXT: [[RES:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ 1, [[IF_TRUE]] ]
+; CHECK-NEXT: [[CALL1:%.*]] = tail call i32 @f1(i32 [[RES]])
; CHECK-NEXT: ret i32 2
;
+
+
entry:
br i1 %cmp, label %if.true, label %end
@@ -36,32 +39,33 @@ end:
}
define internal i32 @f2(i32 %x, i32 %y, i32 %z, i1 %cmp.1, i1 %cmp.2) {
-; CHECK-LABEL: define internal i32 @f2(
-; CHECK-LABEL: entry:
-; CHECK-NEXT: br i1 %cmp.1, label %if.true.1, label %end
-
-; CHECK-LABEL: if.true.1:
-; CHECK-NEXT: br i1 %cmp.2, label %if.true.2, label %end
-
-; CHECK-LABEL: if.true.2:
-; CHECK-NEXT: br label %end
-
-; CHECK-LABEL: end:
-; CHECK-NEXT: %p = phi i32 [ %x, %entry ], [ %y, %if.true.1 ], [ %z, %if.true.2 ]
-; CHECK-NEXT: %c.1 = icmp sgt i32 %p, 5
-; CHECK-NEXT: %c.2 = icmp eq i32 %p, 0
-; CHECK-NEXT: %c.3 = icmp slt i32 %p, 0
-; CHECK-NEXT: %v.1 = select i1 %c.1, i32 10, i32 100
-; CHECK-NEXT: %v.2 = select i1 %c.2, i32 20, i32 200
-; CHECK-NEXT: %v.3 = select i1 %c.3, i32 30, i32 300
-; CHECK-NEXT: %r.1 = add i32 %v.1, %v.2
-; CHECK-NEXT: %r.2 = add i32 %r.1, %v.3
-; CHECK-NEXT: %r.3 = add i32 %r.2, 400
-; CHECK-NEXT: %r.4 = add i32 %r.3, 50
-; CHECK-NEXT: %r.5 = add i32 %r.4, 60
-; CHECK-NEXT: %r.6 = add i32 %r.4, 700
-; CHECK-NEXT: ret i32 %r.6
+; CHECK-LABEL: define {{[^@]+}}@f2
+; CHECK-SAME: (i32 [[X:%.*]], i32 [[Y:%.*]], i32 [[Z:%.*]], i1 [[CMP_1:%.*]], i1 [[CMP_2:%.*]]) {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: br i1 [[CMP_1]], label [[IF_TRUE_1:%.*]], label [[END:%.*]]
+; CHECK: if.true.1:
+; CHECK-NEXT: br i1 [[CMP_2]], label [[IF_TRUE_2:%.*]], label [[END]]
+; CHECK: if.true.2:
+; CHECK-NEXT: br label [[END]]
+; CHECK: end:
+; CHECK-NEXT: [[P:%.*]] = phi i32 [ [[X]], [[ENTRY:%.*]] ], [ [[Y]], [[IF_TRUE_1]] ], [ [[Z]], [[IF_TRUE_2]] ]
+; CHECK-NEXT: [[C_1:%.*]] = icmp sgt i32 [[P]], 5
+; CHECK-NEXT: [[C_2:%.*]] = icmp eq i32 [[P]], 0
+; CHECK-NEXT: [[C_3:%.*]] = icmp slt i32 [[P]], 0
+; CHECK-NEXT: [[V_1:%.*]] = select i1 [[C_1]], i32 10, i32 100
+; CHECK-NEXT: [[V_2:%.*]] = select i1 [[C_2]], i32 20, i32 200
+; CHECK-NEXT: [[V_3:%.*]] = select i1 [[C_3]], i32 30, i32 300
+; CHECK-NEXT: [[R_1:%.*]] = add i32 [[V_1]], [[V_2]]
+; CHECK-NEXT: [[R_2:%.*]] = add i32 [[R_1]], [[V_3]]
+; CHECK-NEXT: [[R_3:%.*]] = add i32 [[R_2]], 400
+; CHECK-NEXT: [[R_4:%.*]] = add i32 [[R_3]], 50
+; CHECK-NEXT: [[R_5:%.*]] = add i32 [[R_4]], 60
+; CHECK-NEXT: [[R_6:%.*]] = add i32 [[R_4]], 700
+; CHECK-NEXT: ret i32 [[R_6]]
;
+
+
+
entry:
br i1 %cmp.1, label %if.true.1, label %end
@@ -97,21 +101,22 @@ end:
}
define i32 @caller2(i1 %cmp.1, i1 %cmp.2) {
-; CHECK-LABEL: define i32 @caller2(i1 %cmp.1, i1 %cmp.2) {
-; CHECK-LABEL: entry:
-; CHECK-NEXT: br i1 %cmp.1, label %if.true, label %end
-
-; CHECK-LABEL: if.true: ; preds = %entry
-; CHECK-NEXT: br label %end
-
-; CHECK-LABEL: end: ; preds = %if.true, %entry
-; CHECK-NEXT: %p1 = phi i32 [ 0, %entry ], [ 1, %if.true ]
-; CHECK-NEXT: %p2 = phi i32 [ 1, %entry ], [ -10, %if.true ]
-; CHECK-NEXT: %p3 = phi i32 [ 1, %entry ], [ 10, %if.true ]
-; CHECK-NEXT: %call1 = tail call i32 @f2(i32 %p1, i32 %p2, i32 %p3, i1 %cmp.1, i1 %cmp.2)
-; CHECK-NEXT: ret i32 %call1
+; CHECK-LABEL: define {{[^@]+}}@caller2
+; CHECK-SAME: (i1 [[CMP_1:%.*]], i1 [[CMP_2:%.*]]) {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: br i1 [[CMP_1]], label [[IF_TRUE:%.*]], label [[END:%.*]]
+; CHECK: if.true:
+; CHECK-NEXT: br label [[END]]
+; CHECK: end:
+; CHECK-NEXT: [[P1:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ 1, [[IF_TRUE]] ]
+; CHECK-NEXT: [[P2:%.*]] = phi i32 [ 1, [[ENTRY]] ], [ -10, [[IF_TRUE]] ]
+; CHECK-NEXT: [[P3:%.*]] = phi i32 [ 1, [[ENTRY]] ], [ 10, [[IF_TRUE]] ]
+; CHECK-NEXT: [[CALL1:%.*]] = tail call i32 @f2(i32 [[P1]], i32 [[P2]], i32 [[P3]], i1 [[CMP_1]], i1 [[CMP_2]])
+; CHECK-NEXT: ret i32 [[CALL1]]
;
+
+
entry:
br i1 %cmp.1, label %if.true, label %end
@@ -127,37 +132,38 @@ end:
}
define internal i32 @f3(i32 %x, i32 %y, i1 %cmp.1) {
-; CHECK-LABEL: define internal i32 @f3(i32 %x, i32 %y, i1 %cmp.1) {
-; CHECK-LABEL: entry:
-; CHECK-NEXT: br i1 %cmp.1, label %if.true.1, label %end
-
-; CHECK-LABEL: if.true.1: ; preds = %entry
-; CHECK-NEXT: br label %end
-
-; CHECK-LABEL: end: ; preds = %if.true.1, %entry
-; CHECK-NEXT: %p = phi i32 [ %x, %entry ], [ %y, %if.true.1 ]
-; CHECK-NEXT: %c.1 = icmp sgt i32 %p, 5
-; CHECK-NEXT: %c.2 = icmp eq i32 %p, 0
-; CHECK-NEXT: %c.3 = icmp slt i32 %p, 0
-; CHECK-NEXT: %c.4 = icmp sgt i32 %p, 10
-; CHECK-NEXT: %c.5 = icmp sle i32 %p, 10
-; CHECK-NEXT: %c.6 = icmp sgt i32 %p, -11
-; CHECK-NEXT: %c.7 = icmp slt i32 %p, -11
-; CHECK-NEXT: %v.1 = select i1 %c.1, i32 10, i32 100
-; CHECK-NEXT: %v.2 = select i1 %c.2, i32 20, i32 200
-; CHECK-NEXT: %v.3 = select i1 %c.3, i32 30, i32 300
-; CHECK-NEXT: %v.4 = select i1 %c.4, i32 40, i32 400
-; CHECK-NEXT: %v.5 = select i1 %c.5, i32 50, i32 500
-; CHECK-NEXT: %v.6 = select i1 %c.6, i32 60, i32 600
-; CHECK-NEXT: %v.7 = select i1 %c.7, i32 70, i32 700
-; CHECK-NEXT: %r.1 = add i32 %v.1, %v.2
-; CHECK-NEXT: %r.2 = add i32 %r.1, %v.3
-; CHECK-NEXT: %r.3 = add i32 %r.2, %v.4
-; CHECK-NEXT: %r.4 = add i32 %r.3, %v.5
-; CHECK-NEXT: %r.5 = add i32 %r.4, %v.6
-; CHECK-NEXT: %r.6 = add i32 %r.4, %v.7
-; CHECK-NEXT: ret i32 %r.6
+; CHECK-LABEL: define {{[^@]+}}@f3
+; CHECK-SAME: (i32 [[X:%.*]], i32 [[Y:%.*]], i1 [[CMP_1:%.*]]) {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: br i1 [[CMP_1]], label [[IF_TRUE_1:%.*]], label [[END:%.*]]
+; CHECK: if.true.1:
+; CHECK-NEXT: br label [[END]]
+; CHECK: end:
+; CHECK-NEXT: [[P:%.*]] = phi i32 [ [[X]], [[ENTRY:%.*]] ], [ [[Y]], [[IF_TRUE_1]] ]
+; CHECK-NEXT: [[C_1:%.*]] = icmp sgt i32 [[P]], 5
+; CHECK-NEXT: [[C_2:%.*]] = icmp eq i32 [[P]], 0
+; CHECK-NEXT: [[C_3:%.*]] = icmp slt i32 [[P]], 0
+; CHECK-NEXT: [[C_4:%.*]] = icmp sgt i32 [[P]], 10
+; CHECK-NEXT: [[C_5:%.*]] = icmp sle i32 [[P]], 10
+; CHECK-NEXT: [[C_6:%.*]] = icmp sgt i32 [[P]], -11
+; CHECK-NEXT: [[C_7:%.*]] = icmp slt i32 [[P]], -11
+; CHECK-NEXT: [[V_1:%.*]] = select i1 [[C_1]], i32 10, i32 100
+; CHECK-NEXT: [[V_2:%.*]] = select i1 [[C_2]], i32 20, i32 200
+; CHECK-NEXT: [[V_3:%.*]] = select i1 [[C_3]], i32 30, i32 300
+; CHECK-NEXT: [[V_4:%.*]] = select i1 [[C_4]], i32 40, i32 400
+; CHECK-NEXT: [[V_5:%.*]] = select i1 [[C_5]], i32 50, i32 500
+; CHECK-NEXT: [[V_6:%.*]] = select i1 [[C_6]], i32 60, i32 600
+; CHECK-NEXT: [[V_7:%.*]] = select i1 [[C_7]], i32 70, i32 700
+; CHECK-NEXT: [[R_1:%.*]] = add i32 [[V_1]], [[V_2]]
+; CHECK-NEXT: [[R_2:%.*]] = add i32 [[R_1]], [[V_3]]
+; CHECK-NEXT: [[R_3:%.*]] = add i32 [[R_2]], [[V_4]]
+; CHECK-NEXT: [[R_4:%.*]] = add i32 [[R_3]], [[V_5]]
+; CHECK-NEXT: [[R_5:%.*]] = add i32 [[R_4]], [[V_6]]
+; CHECK-NEXT: [[R_6:%.*]] = add i32 [[R_4]], [[V_7]]
+; CHECK-NEXT: ret i32 [[R_6]]
;
+
+
entry:
br i1 %cmp.1, label %if.true.1, label %end
@@ -190,18 +196,19 @@ end:
}
define i32 @caller3(i32 %y, i1 %cmp.1) {
-; CHECK-LABEL: define i32 @caller3(i32 %y, i1 %cmp.1) {
-; CHECK-LABEL: entry:
-; CHECK-NEXT: br i1 %cmp.1, label %if.true, label %end
+; CHECK-LABEL: define {{[^@]+}}@caller3
+; CHECK-SAME: (i32 [[Y:%.*]], i1 [[CMP_1:%.*]]) {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: br i1 [[CMP_1]], label [[IF_TRUE:%.*]], label [[END:%.*]]
+; CHECK: if.true:
+; CHECK-NEXT: br label [[END]]
+; CHECK: end:
+; CHECK-NEXT: [[P1:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ 5, [[IF_TRUE]] ]
+; CHECK-NEXT: [[CALL1:%.*]] = tail call i32 @f3(i32 [[P1]], i32 [[Y]], i1 [[CMP_1]])
+; CHECK-NEXT: ret i32 [[CALL1]]
+;
-; CHECK-LABEL: if.true:
-; CHECK-NEXT: br label %end
-; CHECK-LABEL: end:
-; CHECK-NEXT: %p1 = phi i32 [ 0, %entry ], [ 5, %if.true ]
-; CHECK-NEXT: %call1 = tail call i32 @f3(i32 %p1, i32 %y, i1 %cmp.1)
-; CHECK-NEXT: ret i32 %call1
-;
entry:
br i1 %cmp.1, label %if.true, label %end
diff --git a/llvm/test/Transforms/SCCP/return-constants.ll b/llvm/test/Transforms/SCCP/return-constants.ll
index 70a41860ba6ce..9f48844c02255 100644
--- a/llvm/test/Transforms/SCCP/return-constants.ll
+++ b/llvm/test/Transforms/SCCP/return-constants.ll
@@ -47,11 +47,11 @@ F: ; preds = %0
define %0 @caller(i1 %Q) {
; CHECK-LABEL: @caller(
; CHECK-NEXT: [[X:%.*]] = call [[TMP0:%.*]] @foo(i1 [[Q:%.*]])
-; CHECK-NEXT: [[B:%.*]] = extractvalue [[TMP0]] %X, 1
+; CHECK-NEXT: [[B:%.*]] = extractvalue [[TMP0]] [[X]], 1
; CHECK-NEXT: [[Y:%.*]] = call [[TMP0]] @bar(i1 [[Q]])
-; CHECK-NEXT: [[D:%.*]] = extractvalue [[TMP0]] %Y, 1
+; CHECK-NEXT: [[D:%.*]] = extractvalue [[TMP0]] [[Y]], 1
; CHECK-NEXT: [[N:%.*]] = add i32 [[B]], [[D]]
-; CHECK-NEXT: ret [[TMP0]] %X
+; CHECK-NEXT: ret [[TMP0]] [[X]]
;
%X = call %0 @foo(i1 %Q)
%A = extractvalue %0 %X, 0
diff --git a/llvm/test/Transforms/SCCP/widening.ll b/llvm/test/Transforms/SCCP/widening.ll
index c5bf3417d687a..68158654185f6 100644
--- a/llvm/test/Transforms/SCCP/widening.ll
+++ b/llvm/test/Transforms/SCCP/widening.ll
@@ -601,7 +601,7 @@ define ptr @wobble(ptr %arg, i32 %arg1) align 2 {
; SCCP-NEXT: br label [[BB8:%.*]]
; SCCP: bb8:
; SCCP-NEXT: [[TMP9:%.*]] = phi ptr [ undef, [[BB:%.*]] ], [ [[TMP17:%.*]], [[BB29:%.*]] ]
-; SCCP-NEXT: [[TMP10:%.*]] = phi ptr [ undef, [[BB]] ], [ [[TMP18:%.*]], [[BB29]] ]
+; SCCP-NEXT: [[TMP10:%.*]] = phi ptr [ undef, [[BB]] ], [ [[TMP17]], [[BB29]] ]
; SCCP-NEXT: [[TMP11:%.*]] = phi i32 [ 0, [[BB]] ], [ [[TMP30:%.*]], [[BB29]] ]
; SCCP-NEXT: [[C_1:%.*]] = icmp slt i32 [[TMP11]], 8
; SCCP-NEXT: br i1 [[C_1]], label [[BB13:%.*]], label [[BB31:%.*]]
@@ -683,7 +683,7 @@ define ptr @wobble(ptr %arg, i32 %arg1) align 2 {
; IPSCCP-NEXT: br label [[BB8:%.*]]
; IPSCCP: bb8:
; IPSCCP-NEXT: [[TMP9:%.*]] = phi ptr [ undef, [[BB:%.*]] ], [ [[TMP17:%.*]], [[BB29:%.*]] ]
-; IPSCCP-NEXT: [[TMP10:%.*]] = phi ptr [ undef, [[BB]] ], [ [[TMP18:%.*]], [[BB29]] ]
+; IPSCCP-NEXT: [[TMP10:%.*]] = phi ptr [ undef, [[BB]] ], [ [[TMP17]], [[BB29]] ]
; IPSCCP-NEXT: [[TMP11:%.*]] = phi i32 [ 0, [[BB]] ], [ [[TMP30:%.*]], [[BB29]] ]
; IPSCCP-NEXT: [[C_1:%.*]] = icmp slt i32 [[TMP11]], 8
; IPSCCP-NEXT: br i1 [[C_1]], label [[BB13:%.*]], label [[BB31:%.*]]
More information about the llvm-commits
mailing list