Skip to content

Commit 95f9b6a

Browse files
SC llvm teamSC llvm team
authored andcommitted
Merged main:597ac471cc7da97ccf957362a7e9f7a52d6910ee into amd-gfx:e36a339769fe
Local branch amd-gfx e36a339 Merged main:4c98f5b439ddd204d8ff1e423104215ebd0e1720 into amd-gfx:bfb7a657b78d Remote branch main 597ac47 update_test_checks: match IR basic block labels (llvm#88979)
2 parents e36a339 + 597ac47 commit 95f9b6a

File tree

12 files changed

+543
-521
lines changed

12 files changed

+543
-521
lines changed

llvm/include/llvm/Config/llvm-config.h.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
/* Indicate that this is LLVM compiled from the amd-gfx branch. */
1818
#define LLVM_HAVE_BRANCH_AMD_GFX
19-
#define LLVM_MAIN_REVISION 499110
19+
#define LLVM_MAIN_REVISION 499112
2020

2121
/* Define if LLVM_ENABLE_DUMP is enabled */
2222
#cmakedefine LLVM_ENABLE_DUMP

llvm/lib/Transforms/Vectorize/VectorCombine.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1794,6 +1794,9 @@ bool VectorCombine::foldShuffleToIdentity(Instruction &I) {
17941794
}
17951795
}
17961796

1797+
if (NumVisited <= 1)
1798+
return false;
1799+
17971800
// If we got this far, we know the shuffles are superfluous and can be
17981801
// removed. Scan through again and generate the new tree of instructions.
17991802
std::function<Value *(ArrayRef<InstLane>)> Generate =

llvm/test/Transforms/VectorCombine/X86/select-shuffle.ll

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@ define <4 x double> @PR60649() {
1212
; CHECK: unreachable:
1313
; CHECK-NEXT: br label [[END]]
1414
; CHECK: end:
15-
; CHECK-NEXT: [[TMP0:%.*]] = phi <4 x double> [ zeroinitializer, [[ENTRY:%.*]] ], [ zeroinitializer, [[UNREACHABLE:%.*]] ]
15+
; CHECK-NEXT: [[T0:%.*]] = phi <4 x double> [ zeroinitializer, [[ENTRY:%.*]] ], [ zeroinitializer, [[UNREACHABLE:%.*]] ]
1616
; CHECK-NEXT: [[T1:%.*]] = phi <4 x double> [ zeroinitializer, [[ENTRY]] ], [ zeroinitializer, [[UNREACHABLE]] ]
17-
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x double> [[TMP0]], <4 x double> [[TMP0]], <4 x i32> <i32 2, i32 3, i32 poison, i32 poison>
18-
; CHECK-NEXT: [[TMP2:%.*]] = fdiv <4 x double> [[TMP0]], <double 0.000000e+00, double 0.000000e+00, double undef, double undef>
19-
; CHECK-NEXT: [[TMP3:%.*]] = fmul <4 x double> [[TMP1]], <double 0.000000e+00, double 0.000000e+00, double undef, double undef>
17+
; CHECK-NEXT: [[TMP0:%.*]] = shufflevector <4 x double> [[T0]], <4 x double> [[T0]], <4 x i32> <i32 2, i32 3, i32 poison, i32 poison>
18+
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x double> [[T0]], <4 x double> [[T0]], <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
19+
; CHECK-NEXT: [[TMP2:%.*]] = fdiv <4 x double> [[TMP1]], <double 0.000000e+00, double 0.000000e+00, double undef, double undef>
20+
; CHECK-NEXT: [[TMP3:%.*]] = fmul <4 x double> [[TMP0]], <double 0.000000e+00, double 0.000000e+00, double undef, double undef>
2021
; CHECK-NEXT: [[T5:%.*]] = shufflevector <4 x double> [[TMP2]], <4 x double> [[TMP3]], <4 x i32> <i32 0, i32 1, i32 4, i32 5>
2122
; CHECK-NEXT: ret <4 x double> [[T5]]
2223
;

llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/phi-labels.ll.expected

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
22
; RUN: opt < %s -S | FileCheck %s
33

44
define i32 @phi_after_label(i1 %cc) {
55
; CHECK-LABEL: define i32 @phi_after_label(
66
; CHECK-SAME: i1 [[CC:%.*]]) {
7-
; CHECK-NEXT: entry:
8-
; CHECK-NEXT: br i1 [[CC]], label [[THEN:%.*]], label [[END:%.*]]
9-
; CHECK: then:
10-
; CHECK-NEXT: br label [[END]]
11-
; CHECK: end:
12-
; CHECK-NEXT: [[R:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ 1, [[THEN]] ]
7+
; CHECK-NEXT: [[ENTRY:.*]]:
8+
; CHECK-NEXT: br i1 [[CC]], label %[[THEN:.*]], label %[[END:.*]]
9+
; CHECK: [[THEN]]:
10+
; CHECK-NEXT: br label %[[END]]
11+
; CHECK: [[END]]:
12+
; CHECK-NEXT: [[R:%.*]] = phi i32 [ 0, %[[ENTRY]] ], [ 1, %[[THEN]] ]
1313
; CHECK-NEXT: ret i32 [[R]]
1414
;
1515
entry:
@@ -26,14 +26,14 @@ end:
2626
define void @phi_before_label(i32 %bound) {
2727
; CHECK-LABEL: define void @phi_before_label(
2828
; CHECK-SAME: i32 [[BOUND:%.*]]) {
29-
; CHECK-NEXT: entry:
30-
; CHECK-NEXT: br label [[LOOP:%.*]]
31-
; CHECK: loop:
32-
; CHECK-NEXT: [[CTR:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[CTR_NEXT:%.*]], [[LOOP]] ]
29+
; CHECK-NEXT: [[ENTRY:.*]]:
30+
; CHECK-NEXT: br label %[[LOOP:.*]]
31+
; CHECK: [[LOOP]]:
32+
; CHECK-NEXT: [[CTR:%.*]] = phi i32 [ 0, %[[ENTRY]] ], [ [[CTR_NEXT:%.*]], %[[LOOP]] ]
3333
; CHECK-NEXT: [[CTR_NEXT]] = add i32 [[CTR]], 1
3434
; CHECK-NEXT: [[CC:%.*]] = icmp ult i32 [[CTR_NEXT]], [[BOUND]]
35-
; CHECK-NEXT: br i1 [[CC]], label [[LOOP]], label [[END:%.*]]
36-
; CHECK: end:
35+
; CHECK-NEXT: br i1 [[CC]], label %[[LOOP]], label %[[END:.*]]
36+
; CHECK: [[END]]:
3737
; CHECK-NEXT: ret void
3838
;
3939
entry:
@@ -52,11 +52,11 @@ end:
5252
define i32 @phi_after_label_unnamed(i1 %cc) {
5353
; CHECK-LABEL: define i32 @phi_after_label_unnamed(
5454
; CHECK-SAME: i1 [[CC:%.*]]) {
55-
; CHECK-NEXT: br i1 [[CC]], label [[TMP1:%.*]], label [[TMP2:%.*]]
56-
; CHECK: 1:
57-
; CHECK-NEXT: br label [[TMP2]]
58-
; CHECK: 2:
59-
; CHECK-NEXT: [[R:%.*]] = phi i32 [ 0, [[TMP0:%.*]] ], [ 1, [[TMP1]] ]
55+
; CHECK-NEXT: br i1 [[CC]], label %[[BB1:.*]], label %[[BB2:.*]]
56+
; CHECK: [[BB1]]:
57+
; CHECK-NEXT: br label %[[BB2]]
58+
; CHECK: [[BB2]]:
59+
; CHECK-NEXT: [[R:%.*]] = phi i32 [ 0, [[TMP0:%.*]] ], [ 1, %[[BB1]] ]
6060
; CHECK-NEXT: ret i32 [[R]]
6161
;
6262
0:

llvm/test/tools/UpdateTestChecks/update_test_checks/phi-labels.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# RUN: cp -f %S/Inputs/phi-labels.ll %t.ll && %update_test_checks --version 4 %t.ll
1+
# RUN: cp -f %S/Inputs/phi-labels.ll %t.ll && %update_test_checks --version 5 %t.ll
22
# RUN: diff -u %t.ll %S/Inputs/phi-labels.ll.expected
33
## Check that running the script again does not change the result:
44
# RUN: %update_test_checks %t.ll

llvm/utils/UpdateTestChecks/asm.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -605,6 +605,7 @@ def add_checks(
605605
prefix_list,
606606
func_dict,
607607
func_name,
608+
ginfo: common.GeneralizerInfo,
608609
global_vars_seen_dict,
609610
is_filtered,
610611
):
@@ -617,9 +618,7 @@ def add_checks(
617618
func_dict,
618619
func_name,
619620
check_label_format,
620-
True,
621-
False,
622-
1,
621+
ginfo,
623622
global_vars_seen_dict,
624623
is_filtered=is_filtered,
625624
)

0 commit comments

Comments
 (0)