Skip to content

Commit bb42e10

Browse files
asbaaryanshukla
authored andcommitted
Revert "[RISCV] Enable TTI::shouldDropLSRSolutionIfLessProfitable by default" (llvm#98328)
Reverts llvm#89927 while we investigate performance regressions reported by @dtcxzyw
1 parent dec644c commit bb42e10

File tree

9 files changed

+510
-425
lines changed

9 files changed

+510
-425
lines changed

llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -398,8 +398,6 @@ class RISCVTTIImpl : public BasicTTIImplBase<RISCVTTIImpl> {
398398
return true;
399399
}
400400

401-
bool shouldDropLSRSolutionIfLessProfitable() const { return true; }
402-
403401
std::optional<unsigned> getMinPageSize() const { return 4096; }
404402
};
405403

llvm/test/CodeGen/RISCV/rvv/dont-sink-splat-operands.ll

Lines changed: 70 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -86,29 +86,30 @@ declare i64 @llvm.vscale.i64()
8686
define void @sink_splat_add_scalable(ptr nocapture %a, i32 signext %x) {
8787
; NO-SINK-LABEL: sink_splat_add_scalable:
8888
; NO-SINK: # %bb.0: # %entry
89-
; NO-SINK-NEXT: csrr a2, vlenb
90-
; NO-SINK-NEXT: srli a2, a2, 1
89+
; NO-SINK-NEXT: csrr a5, vlenb
90+
; NO-SINK-NEXT: srli a2, a5, 1
9191
; NO-SINK-NEXT: li a3, 1024
9292
; NO-SINK-NEXT: bgeu a3, a2, .LBB1_2
9393
; NO-SINK-NEXT: # %bb.1:
9494
; NO-SINK-NEXT: li a3, 0
9595
; NO-SINK-NEXT: j .LBB1_5
9696
; NO-SINK-NEXT: .LBB1_2: # %vector.ph
97-
; NO-SINK-NEXT: li a5, 0
9897
; NO-SINK-NEXT: addi a3, a2, -1
9998
; NO-SINK-NEXT: andi a4, a3, 1024
10099
; NO-SINK-NEXT: xori a3, a4, 1024
101100
; NO-SINK-NEXT: vsetvli a6, zero, e32, m2, ta, ma
102101
; NO-SINK-NEXT: vmv.v.x v8, a1
102+
; NO-SINK-NEXT: slli a5, a5, 1
103+
; NO-SINK-NEXT: mv a6, a0
104+
; NO-SINK-NEXT: mv a7, a3
103105
; NO-SINK-NEXT: .LBB1_3: # %vector.body
104106
; NO-SINK-NEXT: # =>This Inner Loop Header: Depth=1
105-
; NO-SINK-NEXT: slli a6, a5, 2
106-
; NO-SINK-NEXT: add a6, a0, a6
107107
; NO-SINK-NEXT: vl2re32.v v10, (a6)
108108
; NO-SINK-NEXT: vadd.vv v10, v10, v8
109-
; NO-SINK-NEXT: add a5, a5, a2
110109
; NO-SINK-NEXT: vs2r.v v10, (a6)
111-
; NO-SINK-NEXT: bne a5, a3, .LBB1_3
110+
; NO-SINK-NEXT: sub a7, a7, a2
111+
; NO-SINK-NEXT: add a6, a6, a5
112+
; NO-SINK-NEXT: bnez a7, .LBB1_3
112113
; NO-SINK-NEXT: # %bb.4: # %middle.block
113114
; NO-SINK-NEXT: beqz a4, .LBB1_7
114115
; NO-SINK-NEXT: .LBB1_5: # %for.body.preheader
@@ -128,28 +129,29 @@ define void @sink_splat_add_scalable(ptr nocapture %a, i32 signext %x) {
128129
;
129130
; SINK-LABEL: sink_splat_add_scalable:
130131
; SINK: # %bb.0: # %entry
131-
; SINK-NEXT: csrr a2, vlenb
132-
; SINK-NEXT: srli a2, a2, 1
132+
; SINK-NEXT: csrr a5, vlenb
133+
; SINK-NEXT: srli a2, a5, 1
133134
; SINK-NEXT: li a3, 1024
134135
; SINK-NEXT: bgeu a3, a2, .LBB1_2
135136
; SINK-NEXT: # %bb.1:
136137
; SINK-NEXT: li a3, 0
137138
; SINK-NEXT: j .LBB1_5
138139
; SINK-NEXT: .LBB1_2: # %vector.ph
139-
; SINK-NEXT: li a5, 0
140140
; SINK-NEXT: addi a3, a2, -1
141141
; SINK-NEXT: andi a4, a3, 1024
142142
; SINK-NEXT: xori a3, a4, 1024
143-
; SINK-NEXT: vsetvli a6, zero, e32, m2, ta, ma
143+
; SINK-NEXT: slli a5, a5, 1
144+
; SINK-NEXT: mv a6, a0
145+
; SINK-NEXT: mv a7, a3
146+
; SINK-NEXT: vsetvli t0, zero, e32, m2, ta, ma
144147
; SINK-NEXT: .LBB1_3: # %vector.body
145148
; SINK-NEXT: # =>This Inner Loop Header: Depth=1
146-
; SINK-NEXT: slli a6, a5, 2
147-
; SINK-NEXT: add a6, a0, a6
148149
; SINK-NEXT: vl2re32.v v8, (a6)
149150
; SINK-NEXT: vadd.vx v8, v8, a1
150-
; SINK-NEXT: add a5, a5, a2
151151
; SINK-NEXT: vs2r.v v8, (a6)
152-
; SINK-NEXT: bne a5, a3, .LBB1_3
152+
; SINK-NEXT: sub a7, a7, a2
153+
; SINK-NEXT: add a6, a6, a5
154+
; SINK-NEXT: bnez a7, .LBB1_3
153155
; SINK-NEXT: # %bb.4: # %middle.block
154156
; SINK-NEXT: beqz a4, .LBB1_7
155157
; SINK-NEXT: .LBB1_5: # %for.body.preheader
@@ -169,28 +171,29 @@ define void @sink_splat_add_scalable(ptr nocapture %a, i32 signext %x) {
169171
;
170172
; DEFAULT-LABEL: sink_splat_add_scalable:
171173
; DEFAULT: # %bb.0: # %entry
172-
; DEFAULT-NEXT: csrr a2, vlenb
173-
; DEFAULT-NEXT: srli a2, a2, 1
174+
; DEFAULT-NEXT: csrr a5, vlenb
175+
; DEFAULT-NEXT: srli a2, a5, 1
174176
; DEFAULT-NEXT: li a3, 1024
175177
; DEFAULT-NEXT: bgeu a3, a2, .LBB1_2
176178
; DEFAULT-NEXT: # %bb.1:
177179
; DEFAULT-NEXT: li a3, 0
178180
; DEFAULT-NEXT: j .LBB1_5
179181
; DEFAULT-NEXT: .LBB1_2: # %vector.ph
180-
; DEFAULT-NEXT: li a5, 0
181182
; DEFAULT-NEXT: addi a3, a2, -1
182183
; DEFAULT-NEXT: andi a4, a3, 1024
183184
; DEFAULT-NEXT: xori a3, a4, 1024
184-
; DEFAULT-NEXT: vsetvli a6, zero, e32, m2, ta, ma
185+
; DEFAULT-NEXT: slli a5, a5, 1
186+
; DEFAULT-NEXT: mv a6, a0
187+
; DEFAULT-NEXT: mv a7, a3
188+
; DEFAULT-NEXT: vsetvli t0, zero, e32, m2, ta, ma
185189
; DEFAULT-NEXT: .LBB1_3: # %vector.body
186190
; DEFAULT-NEXT: # =>This Inner Loop Header: Depth=1
187-
; DEFAULT-NEXT: slli a6, a5, 2
188-
; DEFAULT-NEXT: add a6, a0, a6
189191
; DEFAULT-NEXT: vl2re32.v v8, (a6)
190192
; DEFAULT-NEXT: vadd.vx v8, v8, a1
191-
; DEFAULT-NEXT: add a5, a5, a2
192193
; DEFAULT-NEXT: vs2r.v v8, (a6)
193-
; DEFAULT-NEXT: bne a5, a3, .LBB1_3
194+
; DEFAULT-NEXT: sub a7, a7, a2
195+
; DEFAULT-NEXT: add a6, a6, a5
196+
; DEFAULT-NEXT: bnez a7, .LBB1_3
194197
; DEFAULT-NEXT: # %bb.4: # %middle.block
195198
; DEFAULT-NEXT: beqz a4, .LBB1_7
196199
; DEFAULT-NEXT: .LBB1_5: # %for.body.preheader
@@ -404,32 +407,32 @@ define void @sink_splat_fadd_scalable(ptr nocapture %a, float %x) {
404407
; NO-SINK-LABEL: sink_splat_fadd_scalable:
405408
; NO-SINK: # %bb.0: # %entry
406409
; NO-SINK-NEXT: csrr a1, vlenb
407-
; NO-SINK-NEXT: srli a1, a1, 2
408-
; NO-SINK-NEXT: li a2, 1024
409-
; NO-SINK-NEXT: bgeu a2, a1, .LBB4_2
410+
; NO-SINK-NEXT: srli a2, a1, 2
411+
; NO-SINK-NEXT: li a3, 1024
412+
; NO-SINK-NEXT: bgeu a3, a2, .LBB4_2
410413
; NO-SINK-NEXT: # %bb.1:
411-
; NO-SINK-NEXT: li a2, 0
414+
; NO-SINK-NEXT: li a3, 0
412415
; NO-SINK-NEXT: j .LBB4_5
413416
; NO-SINK-NEXT: .LBB4_2: # %vector.ph
414-
; NO-SINK-NEXT: li a4, 0
415-
; NO-SINK-NEXT: addi a2, a1, -1
416-
; NO-SINK-NEXT: andi a3, a2, 1024
417-
; NO-SINK-NEXT: xori a2, a3, 1024
417+
; NO-SINK-NEXT: addi a3, a2, -1
418+
; NO-SINK-NEXT: andi a4, a3, 1024
419+
; NO-SINK-NEXT: xori a3, a4, 1024
418420
; NO-SINK-NEXT: vsetvli a5, zero, e32, m1, ta, ma
419421
; NO-SINK-NEXT: vfmv.v.f v8, fa0
422+
; NO-SINK-NEXT: mv a5, a0
423+
; NO-SINK-NEXT: mv a6, a3
420424
; NO-SINK-NEXT: .LBB4_3: # %vector.body
421425
; NO-SINK-NEXT: # =>This Inner Loop Header: Depth=1
422-
; NO-SINK-NEXT: slli a5, a4, 2
423-
; NO-SINK-NEXT: add a5, a0, a5
424426
; NO-SINK-NEXT: vl1re32.v v9, (a5)
425427
; NO-SINK-NEXT: vfadd.vv v9, v9, v8
426-
; NO-SINK-NEXT: add a4, a4, a1
427428
; NO-SINK-NEXT: vs1r.v v9, (a5)
428-
; NO-SINK-NEXT: bne a4, a2, .LBB4_3
429+
; NO-SINK-NEXT: sub a6, a6, a2
430+
; NO-SINK-NEXT: add a5, a5, a1
431+
; NO-SINK-NEXT: bnez a6, .LBB4_3
429432
; NO-SINK-NEXT: # %bb.4: # %middle.block
430-
; NO-SINK-NEXT: beqz a3, .LBB4_7
433+
; NO-SINK-NEXT: beqz a4, .LBB4_7
431434
; NO-SINK-NEXT: .LBB4_5: # %for.body.preheader
432-
; NO-SINK-NEXT: slli a1, a2, 2
435+
; NO-SINK-NEXT: slli a1, a3, 2
433436
; NO-SINK-NEXT: add a1, a0, a1
434437
; NO-SINK-NEXT: lui a2, 1
435438
; NO-SINK-NEXT: add a0, a0, a2
@@ -446,31 +449,31 @@ define void @sink_splat_fadd_scalable(ptr nocapture %a, float %x) {
446449
; SINK-LABEL: sink_splat_fadd_scalable:
447450
; SINK: # %bb.0: # %entry
448451
; SINK-NEXT: csrr a1, vlenb
449-
; SINK-NEXT: srli a1, a1, 2
450-
; SINK-NEXT: li a2, 1024
451-
; SINK-NEXT: bgeu a2, a1, .LBB4_2
452+
; SINK-NEXT: srli a2, a1, 2
453+
; SINK-NEXT: li a3, 1024
454+
; SINK-NEXT: bgeu a3, a2, .LBB4_2
452455
; SINK-NEXT: # %bb.1:
453-
; SINK-NEXT: li a2, 0
456+
; SINK-NEXT: li a3, 0
454457
; SINK-NEXT: j .LBB4_5
455458
; SINK-NEXT: .LBB4_2: # %vector.ph
456-
; SINK-NEXT: li a4, 0
457-
; SINK-NEXT: addi a2, a1, -1
458-
; SINK-NEXT: andi a3, a2, 1024
459-
; SINK-NEXT: xori a2, a3, 1024
460-
; SINK-NEXT: vsetvli a5, zero, e32, m1, ta, ma
459+
; SINK-NEXT: addi a3, a2, -1
460+
; SINK-NEXT: andi a4, a3, 1024
461+
; SINK-NEXT: xori a3, a4, 1024
462+
; SINK-NEXT: mv a5, a0
463+
; SINK-NEXT: mv a6, a3
464+
; SINK-NEXT: vsetvli a7, zero, e32, m1, ta, ma
461465
; SINK-NEXT: .LBB4_3: # %vector.body
462466
; SINK-NEXT: # =>This Inner Loop Header: Depth=1
463-
; SINK-NEXT: slli a5, a4, 2
464-
; SINK-NEXT: add a5, a0, a5
465467
; SINK-NEXT: vl1re32.v v8, (a5)
466468
; SINK-NEXT: vfadd.vf v8, v8, fa0
467-
; SINK-NEXT: add a4, a4, a1
468469
; SINK-NEXT: vs1r.v v8, (a5)
469-
; SINK-NEXT: bne a4, a2, .LBB4_3
470+
; SINK-NEXT: sub a6, a6, a2
471+
; SINK-NEXT: add a5, a5, a1
472+
; SINK-NEXT: bnez a6, .LBB4_3
470473
; SINK-NEXT: # %bb.4: # %middle.block
471-
; SINK-NEXT: beqz a3, .LBB4_7
474+
; SINK-NEXT: beqz a4, .LBB4_7
472475
; SINK-NEXT: .LBB4_5: # %for.body.preheader
473-
; SINK-NEXT: slli a1, a2, 2
476+
; SINK-NEXT: slli a1, a3, 2
474477
; SINK-NEXT: add a1, a0, a1
475478
; SINK-NEXT: lui a2, 1
476479
; SINK-NEXT: add a0, a0, a2
@@ -487,31 +490,31 @@ define void @sink_splat_fadd_scalable(ptr nocapture %a, float %x) {
487490
; DEFAULT-LABEL: sink_splat_fadd_scalable:
488491
; DEFAULT: # %bb.0: # %entry
489492
; DEFAULT-NEXT: csrr a1, vlenb
490-
; DEFAULT-NEXT: srli a1, a1, 2
491-
; DEFAULT-NEXT: li a2, 1024
492-
; DEFAULT-NEXT: bgeu a2, a1, .LBB4_2
493+
; DEFAULT-NEXT: srli a2, a1, 2
494+
; DEFAULT-NEXT: li a3, 1024
495+
; DEFAULT-NEXT: bgeu a3, a2, .LBB4_2
493496
; DEFAULT-NEXT: # %bb.1:
494-
; DEFAULT-NEXT: li a2, 0
497+
; DEFAULT-NEXT: li a3, 0
495498
; DEFAULT-NEXT: j .LBB4_5
496499
; DEFAULT-NEXT: .LBB4_2: # %vector.ph
497-
; DEFAULT-NEXT: li a4, 0
498-
; DEFAULT-NEXT: addi a2, a1, -1
499-
; DEFAULT-NEXT: andi a3, a2, 1024
500-
; DEFAULT-NEXT: xori a2, a3, 1024
501-
; DEFAULT-NEXT: vsetvli a5, zero, e32, m1, ta, ma
500+
; DEFAULT-NEXT: addi a3, a2, -1
501+
; DEFAULT-NEXT: andi a4, a3, 1024
502+
; DEFAULT-NEXT: xori a3, a4, 1024
503+
; DEFAULT-NEXT: mv a5, a0
504+
; DEFAULT-NEXT: mv a6, a3
505+
; DEFAULT-NEXT: vsetvli a7, zero, e32, m1, ta, ma
502506
; DEFAULT-NEXT: .LBB4_3: # %vector.body
503507
; DEFAULT-NEXT: # =>This Inner Loop Header: Depth=1
504-
; DEFAULT-NEXT: slli a5, a4, 2
505-
; DEFAULT-NEXT: add a5, a0, a5
506508
; DEFAULT-NEXT: vl1re32.v v8, (a5)
507509
; DEFAULT-NEXT: vfadd.vf v8, v8, fa0
508-
; DEFAULT-NEXT: add a4, a4, a1
509510
; DEFAULT-NEXT: vs1r.v v8, (a5)
510-
; DEFAULT-NEXT: bne a4, a2, .LBB4_3
511+
; DEFAULT-NEXT: sub a6, a6, a2
512+
; DEFAULT-NEXT: add a5, a5, a1
513+
; DEFAULT-NEXT: bnez a6, .LBB4_3
511514
; DEFAULT-NEXT: # %bb.4: # %middle.block
512-
; DEFAULT-NEXT: beqz a3, .LBB4_7
515+
; DEFAULT-NEXT: beqz a4, .LBB4_7
513516
; DEFAULT-NEXT: .LBB4_5: # %for.body.preheader
514-
; DEFAULT-NEXT: slli a1, a2, 2
517+
; DEFAULT-NEXT: slli a1, a3, 2
515518
; DEFAULT-NEXT: add a1, a0, a1
516519
; DEFAULT-NEXT: lui a2, 1
517520
; DEFAULT-NEXT: add a0, a0, a2

0 commit comments

Comments
 (0)