Skip to content

Commit a59cc49

Browse files
SC llvm teamSC llvm team
authored andcommitted
Merged main:fdb87640ee2be63af9b0e0cd943cb13d79686a03 into amd-gfx:1a07563b1c04
Local branch amd-gfx 1a07563 Merged main:1c1eaf75f5f2efd72ba813b29b3d7b556d61b70b into amd-gfx:069436aa3cf0 Remote branch main fdb8764 [LSR][TTI][RISCV] Disable terminator folding for RISC-V.
2 parents 1a07563 + fdb8764 commit a59cc49

File tree

10 files changed

+726
-714
lines changed

10 files changed

+726
-714
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 484820
19+
#define LLVM_MAIN_REVISION 484821
2020

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

llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,8 @@ class RISCVTTIImpl : public BasicTTIImplBase<RISCVTTIImpl> {
359359
const TargetTransformInfo::LSRCost &C2);
360360

361361
bool shouldFoldTerminatingConditionAfterLSR() const {
362-
return true;
362+
// FIXME: Enabling this causes miscompiles.
363+
return false;
363364
}
364365
};
365366

llvm/test/CodeGen/RISCV/branch-on-zero.ll

Lines changed: 16 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -120,45 +120,36 @@ define i32 @test_lshr2(ptr nocapture %x, ptr nocapture readonly %y, i32 %n) {
120120
; RV32-LABEL: test_lshr2:
121121
; RV32: # %bb.0: # %entry
122122
; RV32-NEXT: srli a2, a2, 2
123-
; RV32-NEXT: beqz a2, .LBB3_3
124-
; RV32-NEXT: # %bb.1: # %while.body.preheader
125-
; RV32-NEXT: slli a2, a2, 2
126-
; RV32-NEXT: add a2, a1, a2
127-
; RV32-NEXT: .LBB3_2: # %while.body
123+
; RV32-NEXT: beqz a2, .LBB3_2
124+
; RV32-NEXT: .LBB3_1: # %while.body
128125
; RV32-NEXT: # =>This Inner Loop Header: Depth=1
129126
; RV32-NEXT: lw a3, 0(a1)
130-
; RV32-NEXT: addi a4, a1, 4
127+
; RV32-NEXT: addi a1, a1, 4
131128
; RV32-NEXT: slli a3, a3, 1
132-
; RV32-NEXT: addi a1, a0, 4
129+
; RV32-NEXT: addi a4, a0, 4
130+
; RV32-NEXT: addi a2, a2, -1
133131
; RV32-NEXT: sw a3, 0(a0)
134-
; RV32-NEXT: mv a0, a1
135-
; RV32-NEXT: mv a1, a4
136-
; RV32-NEXT: bne a4, a2, .LBB3_2
137-
; RV32-NEXT: .LBB3_3: # %while.end
132+
; RV32-NEXT: mv a0, a4
133+
; RV32-NEXT: bnez a2, .LBB3_1
134+
; RV32-NEXT: .LBB3_2: # %while.end
138135
; RV32-NEXT: li a0, 0
139136
; RV32-NEXT: ret
140137
;
141138
; RV64-LABEL: test_lshr2:
142139
; RV64: # %bb.0: # %entry
143140
; RV64-NEXT: srliw a2, a2, 2
144-
; RV64-NEXT: beqz a2, .LBB3_3
145-
; RV64-NEXT: # %bb.1: # %while.body.preheader
146-
; RV64-NEXT: addi a2, a2, -1
147-
; RV64-NEXT: slli a2, a2, 32
148-
; RV64-NEXT: srli a2, a2, 30
149-
; RV64-NEXT: add a2, a2, a1
150-
; RV64-NEXT: addi a2, a2, 4
151-
; RV64-NEXT: .LBB3_2: # %while.body
141+
; RV64-NEXT: beqz a2, .LBB3_2
142+
; RV64-NEXT: .LBB3_1: # %while.body
152143
; RV64-NEXT: # =>This Inner Loop Header: Depth=1
153144
; RV64-NEXT: lw a3, 0(a1)
154-
; RV64-NEXT: addi a4, a1, 4
145+
; RV64-NEXT: addi a1, a1, 4
155146
; RV64-NEXT: slli a3, a3, 1
156-
; RV64-NEXT: addi a1, a0, 4
147+
; RV64-NEXT: addi a4, a0, 4
148+
; RV64-NEXT: addiw a2, a2, -1
157149
; RV64-NEXT: sw a3, 0(a0)
158-
; RV64-NEXT: mv a0, a1
159-
; RV64-NEXT: mv a1, a4
160-
; RV64-NEXT: bne a4, a2, .LBB3_2
161-
; RV64-NEXT: .LBB3_3: # %while.end
150+
; RV64-NEXT: mv a0, a4
151+
; RV64-NEXT: bnez a2, .LBB3_1
152+
; RV64-NEXT: .LBB3_2: # %while.end
162153
; RV64-NEXT: li a0, 0
163154
; RV64-NEXT: ret
164155
entry:

llvm/test/CodeGen/RISCV/riscv-codegenprepare-asm.ll

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,16 @@
88
define void @test1(ptr nocapture noundef %a, i32 noundef signext %n) {
99
; CHECK-LABEL: test1:
1010
; CHECK: # %bb.0: # %entry
11-
; CHECK-NEXT: blez a1, .LBB0_3
12-
; CHECK-NEXT: # %bb.1: # %for.body.preheader
13-
; CHECK-NEXT: slli a1, a1, 2
14-
; CHECK-NEXT: add a1, a0, a1
15-
; CHECK-NEXT: .LBB0_2: # %for.body
11+
; CHECK-NEXT: blez a1, .LBB0_2
12+
; CHECK-NEXT: .LBB0_1: # %for.body
1613
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
1714
; CHECK-NEXT: lw a2, 0(a0)
1815
; CHECK-NEXT: addi a2, a2, 4
1916
; CHECK-NEXT: sw a2, 0(a0)
17+
; CHECK-NEXT: addi a1, a1, -1
2018
; CHECK-NEXT: addi a0, a0, 4
21-
; CHECK-NEXT: bne a0, a1, .LBB0_2
22-
; CHECK-NEXT: .LBB0_3: # %for.cond.cleanup
19+
; CHECK-NEXT: bnez a1, .LBB0_1
20+
; CHECK-NEXT: .LBB0_2: # %for.cond.cleanup
2321
; CHECK-NEXT: ret
2422
entry:
2523
%cmp3 = icmp sgt i32 %n, 0

llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -206,19 +206,33 @@ define <8 x float> @splat_idx_v8f32(<8 x float> %v, i64 %idx) {
206206

207207
; Test that we pull the vlse of the constant pool out of the loop.
208208
define dso_local void @splat_load_licm(float* %0) {
209-
; CHECK-LABEL: splat_load_licm:
210-
; CHECK: # %bb.0:
211-
; CHECK-NEXT: lui a1, 1
212-
; CHECK-NEXT: add a1, a0, a1
213-
; CHECK-NEXT: lui a2, 263168
214-
; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, ma
215-
; CHECK-NEXT: vmv.v.x v8, a2
216-
; CHECK-NEXT: .LBB12_1: # =>This Inner Loop Header: Depth=1
217-
; CHECK-NEXT: vse32.v v8, (a0)
218-
; CHECK-NEXT: addi a0, a0, 16
219-
; CHECK-NEXT: bne a0, a1, .LBB12_1
220-
; CHECK-NEXT: # %bb.2:
221-
; CHECK-NEXT: ret
209+
; RV32-LABEL: splat_load_licm:
210+
; RV32: # %bb.0:
211+
; RV32-NEXT: li a1, 1024
212+
; RV32-NEXT: lui a2, 263168
213+
; RV32-NEXT: vsetivli zero, 4, e32, m1, ta, ma
214+
; RV32-NEXT: vmv.v.x v8, a2
215+
; RV32-NEXT: .LBB12_1: # =>This Inner Loop Header: Depth=1
216+
; RV32-NEXT: vse32.v v8, (a0)
217+
; RV32-NEXT: addi a1, a1, -4
218+
; RV32-NEXT: addi a0, a0, 16
219+
; RV32-NEXT: bnez a1, .LBB12_1
220+
; RV32-NEXT: # %bb.2:
221+
; RV32-NEXT: ret
222+
;
223+
; RV64-LABEL: splat_load_licm:
224+
; RV64: # %bb.0:
225+
; RV64-NEXT: li a1, 1024
226+
; RV64-NEXT: lui a2, 263168
227+
; RV64-NEXT: vsetivli zero, 4, e32, m1, ta, ma
228+
; RV64-NEXT: vmv.v.x v8, a2
229+
; RV64-NEXT: .LBB12_1: # =>This Inner Loop Header: Depth=1
230+
; RV64-NEXT: vse32.v v8, (a0)
231+
; RV64-NEXT: addiw a1, a1, -4
232+
; RV64-NEXT: addi a0, a0, 16
233+
; RV64-NEXT: bnez a1, .LBB12_1
234+
; RV64-NEXT: # %bb.2:
235+
; RV64-NEXT: ret
222236
br label %2
223237

224238
2: ; preds = %2, %1
@@ -1394,6 +1408,3 @@ define <2 x double> @vid_step2_v2f64() {
13941408
; CHECK-NEXT: ret
13951409
ret <2 x double> <double 0.0, double 2.0>
13961410
}
1397-
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
1398-
; RV32: {{.*}}
1399-
; RV64: {{.*}}

0 commit comments

Comments
 (0)