@@ -86,30 +86,29 @@ declare i64 @llvm.vscale.i64()
86
86
define void @sink_splat_add_scalable (ptr nocapture %a , i32 signext %x ) {
87
87
; NO-SINK-LABEL: sink_splat_add_scalable:
88
88
; NO-SINK: # %bb.0: # %entry
89
- ; NO-SINK-NEXT: csrr a5 , vlenb
90
- ; NO-SINK-NEXT: srli a2, a5 , 1
89
+ ; NO-SINK-NEXT: csrr a2 , vlenb
90
+ ; NO-SINK-NEXT: srli a2, a2 , 1
91
91
; NO-SINK-NEXT: li a3, 1024
92
92
; NO-SINK-NEXT: bgeu a3, a2, .LBB1_2
93
93
; NO-SINK-NEXT: # %bb.1:
94
94
; NO-SINK-NEXT: li a3, 0
95
95
; NO-SINK-NEXT: j .LBB1_5
96
96
; NO-SINK-NEXT: .LBB1_2: # %vector.ph
97
+ ; NO-SINK-NEXT: li a5, 0
97
98
; NO-SINK-NEXT: addi a3, a2, -1
98
99
; NO-SINK-NEXT: andi a4, a3, 1024
99
100
; NO-SINK-NEXT: xori a3, a4, 1024
100
101
; NO-SINK-NEXT: vsetvli a6, zero, e32, m2, ta, ma
101
102
; 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
105
103
; NO-SINK-NEXT: .LBB1_3: # %vector.body
106
104
; 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
107
107
; NO-SINK-NEXT: vl2re32.v v10, (a6)
108
108
; NO-SINK-NEXT: vadd.vv v10, v10, v8
109
+ ; NO-SINK-NEXT: add a5, a5, a2
109
110
; NO-SINK-NEXT: vs2r.v v10, (a6)
110
- ; NO-SINK-NEXT: sub a7, a7, a2
111
- ; NO-SINK-NEXT: add a6, a6, a5
112
- ; NO-SINK-NEXT: bnez a7, .LBB1_3
111
+ ; NO-SINK-NEXT: bne a5, a3, .LBB1_3
113
112
; NO-SINK-NEXT: # %bb.4: # %middle.block
114
113
; NO-SINK-NEXT: beqz a4, .LBB1_7
115
114
; NO-SINK-NEXT: .LBB1_5: # %for.body.preheader
@@ -129,29 +128,28 @@ define void @sink_splat_add_scalable(ptr nocapture %a, i32 signext %x) {
129
128
;
130
129
; SINK-LABEL: sink_splat_add_scalable:
131
130
; SINK: # %bb.0: # %entry
132
- ; SINK-NEXT: csrr a5 , vlenb
133
- ; SINK-NEXT: srli a2, a5 , 1
131
+ ; SINK-NEXT: csrr a2 , vlenb
132
+ ; SINK-NEXT: srli a2, a2 , 1
134
133
; SINK-NEXT: li a3, 1024
135
134
; SINK-NEXT: bgeu a3, a2, .LBB1_2
136
135
; SINK-NEXT: # %bb.1:
137
136
; SINK-NEXT: li a3, 0
138
137
; SINK-NEXT: j .LBB1_5
139
138
; SINK-NEXT: .LBB1_2: # %vector.ph
139
+ ; SINK-NEXT: li a5, 0
140
140
; SINK-NEXT: addi a3, a2, -1
141
141
; SINK-NEXT: andi a4, a3, 1024
142
142
; SINK-NEXT: xori a3, a4, 1024
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
143
+ ; SINK-NEXT: vsetvli a6, zero, e32, m2, ta, ma
147
144
; SINK-NEXT: .LBB1_3: # %vector.body
148
145
; SINK-NEXT: # =>This Inner Loop Header: Depth=1
146
+ ; SINK-NEXT: slli a6, a5, 2
147
+ ; SINK-NEXT: add a6, a0, a6
149
148
; SINK-NEXT: vl2re32.v v8, (a6)
150
149
; SINK-NEXT: vadd.vx v8, v8, a1
150
+ ; SINK-NEXT: add a5, a5, a2
151
151
; SINK-NEXT: vs2r.v v8, (a6)
152
- ; SINK-NEXT: sub a7, a7, a2
153
- ; SINK-NEXT: add a6, a6, a5
154
- ; SINK-NEXT: bnez a7, .LBB1_3
152
+ ; SINK-NEXT: bne a5, a3, .LBB1_3
155
153
; SINK-NEXT: # %bb.4: # %middle.block
156
154
; SINK-NEXT: beqz a4, .LBB1_7
157
155
; SINK-NEXT: .LBB1_5: # %for.body.preheader
@@ -171,29 +169,28 @@ define void @sink_splat_add_scalable(ptr nocapture %a, i32 signext %x) {
171
169
;
172
170
; DEFAULT-LABEL: sink_splat_add_scalable:
173
171
; DEFAULT: # %bb.0: # %entry
174
- ; DEFAULT-NEXT: csrr a5 , vlenb
175
- ; DEFAULT-NEXT: srli a2, a5 , 1
172
+ ; DEFAULT-NEXT: csrr a2 , vlenb
173
+ ; DEFAULT-NEXT: srli a2, a2 , 1
176
174
; DEFAULT-NEXT: li a3, 1024
177
175
; DEFAULT-NEXT: bgeu a3, a2, .LBB1_2
178
176
; DEFAULT-NEXT: # %bb.1:
179
177
; DEFAULT-NEXT: li a3, 0
180
178
; DEFAULT-NEXT: j .LBB1_5
181
179
; DEFAULT-NEXT: .LBB1_2: # %vector.ph
180
+ ; DEFAULT-NEXT: li a5, 0
182
181
; DEFAULT-NEXT: addi a3, a2, -1
183
182
; DEFAULT-NEXT: andi a4, a3, 1024
184
183
; DEFAULT-NEXT: xori a3, a4, 1024
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
184
+ ; DEFAULT-NEXT: vsetvli a6, zero, e32, m2, ta, ma
189
185
; DEFAULT-NEXT: .LBB1_3: # %vector.body
190
186
; DEFAULT-NEXT: # =>This Inner Loop Header: Depth=1
187
+ ; DEFAULT-NEXT: slli a6, a5, 2
188
+ ; DEFAULT-NEXT: add a6, a0, a6
191
189
; DEFAULT-NEXT: vl2re32.v v8, (a6)
192
190
; DEFAULT-NEXT: vadd.vx v8, v8, a1
191
+ ; DEFAULT-NEXT: add a5, a5, a2
193
192
; DEFAULT-NEXT: vs2r.v v8, (a6)
194
- ; DEFAULT-NEXT: sub a7, a7, a2
195
- ; DEFAULT-NEXT: add a6, a6, a5
196
- ; DEFAULT-NEXT: bnez a7, .LBB1_3
193
+ ; DEFAULT-NEXT: bne a5, a3, .LBB1_3
197
194
; DEFAULT-NEXT: # %bb.4: # %middle.block
198
195
; DEFAULT-NEXT: beqz a4, .LBB1_7
199
196
; DEFAULT-NEXT: .LBB1_5: # %for.body.preheader
@@ -407,32 +404,32 @@ define void @sink_splat_fadd_scalable(ptr nocapture %a, float %x) {
407
404
; NO-SINK-LABEL: sink_splat_fadd_scalable:
408
405
; NO-SINK: # %bb.0: # %entry
409
406
; NO-SINK-NEXT: csrr a1, vlenb
410
- ; NO-SINK-NEXT: srli a2 , a1, 2
411
- ; NO-SINK-NEXT: li a3 , 1024
412
- ; NO-SINK-NEXT: bgeu a3, a2 , .LBB4_2
407
+ ; NO-SINK-NEXT: srli a1 , a1, 2
408
+ ; NO-SINK-NEXT: li a2 , 1024
409
+ ; NO-SINK-NEXT: bgeu a2, a1 , .LBB4_2
413
410
; NO-SINK-NEXT: # %bb.1:
414
- ; NO-SINK-NEXT: li a3 , 0
411
+ ; NO-SINK-NEXT: li a2 , 0
415
412
; NO-SINK-NEXT: j .LBB4_5
416
413
; NO-SINK-NEXT: .LBB4_2: # %vector.ph
417
- ; NO-SINK-NEXT: addi a3, a2, -1
418
- ; NO-SINK-NEXT: andi a4, a3, 1024
419
- ; NO-SINK-NEXT: xori a3, a4, 1024
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
420
418
; NO-SINK-NEXT: vsetvli a5, zero, e32, m1, ta, ma
421
419
; NO-SINK-NEXT: vfmv.v.f v8, fa0
422
- ; NO-SINK-NEXT: mv a5, a0
423
- ; NO-SINK-NEXT: mv a6, a3
424
420
; NO-SINK-NEXT: .LBB4_3: # %vector.body
425
421
; 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
426
424
; NO-SINK-NEXT: vl1re32.v v9, (a5)
427
425
; NO-SINK-NEXT: vfadd.vv v9, v9, v8
426
+ ; NO-SINK-NEXT: add a4, a4, a1
428
427
; NO-SINK-NEXT: vs1r.v v9, (a5)
429
- ; NO-SINK-NEXT: sub a6, a6, a2
430
- ; NO-SINK-NEXT: add a5, a5, a1
431
- ; NO-SINK-NEXT: bnez a6, .LBB4_3
428
+ ; NO-SINK-NEXT: bne a4, a2, .LBB4_3
432
429
; NO-SINK-NEXT: # %bb.4: # %middle.block
433
- ; NO-SINK-NEXT: beqz a4 , .LBB4_7
430
+ ; NO-SINK-NEXT: beqz a3 , .LBB4_7
434
431
; NO-SINK-NEXT: .LBB4_5: # %for.body.preheader
435
- ; NO-SINK-NEXT: slli a1, a3 , 2
432
+ ; NO-SINK-NEXT: slli a1, a2 , 2
436
433
; NO-SINK-NEXT: add a1, a0, a1
437
434
; NO-SINK-NEXT: lui a2, 1
438
435
; NO-SINK-NEXT: add a0, a0, a2
@@ -449,31 +446,31 @@ define void @sink_splat_fadd_scalable(ptr nocapture %a, float %x) {
449
446
; SINK-LABEL: sink_splat_fadd_scalable:
450
447
; SINK: # %bb.0: # %entry
451
448
; SINK-NEXT: csrr a1, vlenb
452
- ; SINK-NEXT: srli a2 , a1, 2
453
- ; SINK-NEXT: li a3 , 1024
454
- ; SINK-NEXT: bgeu a3, a2 , .LBB4_2
449
+ ; SINK-NEXT: srli a1 , a1, 2
450
+ ; SINK-NEXT: li a2 , 1024
451
+ ; SINK-NEXT: bgeu a2, a1 , .LBB4_2
455
452
; SINK-NEXT: # %bb.1:
456
- ; SINK-NEXT: li a3 , 0
453
+ ; SINK-NEXT: li a2 , 0
457
454
; SINK-NEXT: j .LBB4_5
458
455
; SINK-NEXT: .LBB4_2: # %vector.ph
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
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
465
461
; SINK-NEXT: .LBB4_3: # %vector.body
466
462
; SINK-NEXT: # =>This Inner Loop Header: Depth=1
463
+ ; SINK-NEXT: slli a5, a4, 2
464
+ ; SINK-NEXT: add a5, a0, a5
467
465
; SINK-NEXT: vl1re32.v v8, (a5)
468
466
; SINK-NEXT: vfadd.vf v8, v8, fa0
467
+ ; SINK-NEXT: add a4, a4, a1
469
468
; SINK-NEXT: vs1r.v v8, (a5)
470
- ; SINK-NEXT: sub a6, a6, a2
471
- ; SINK-NEXT: add a5, a5, a1
472
- ; SINK-NEXT: bnez a6, .LBB4_3
469
+ ; SINK-NEXT: bne a4, a2, .LBB4_3
473
470
; SINK-NEXT: # %bb.4: # %middle.block
474
- ; SINK-NEXT: beqz a4 , .LBB4_7
471
+ ; SINK-NEXT: beqz a3 , .LBB4_7
475
472
; SINK-NEXT: .LBB4_5: # %for.body.preheader
476
- ; SINK-NEXT: slli a1, a3 , 2
473
+ ; SINK-NEXT: slli a1, a2 , 2
477
474
; SINK-NEXT: add a1, a0, a1
478
475
; SINK-NEXT: lui a2, 1
479
476
; SINK-NEXT: add a0, a0, a2
@@ -490,31 +487,31 @@ define void @sink_splat_fadd_scalable(ptr nocapture %a, float %x) {
490
487
; DEFAULT-LABEL: sink_splat_fadd_scalable:
491
488
; DEFAULT: # %bb.0: # %entry
492
489
; DEFAULT-NEXT: csrr a1, vlenb
493
- ; DEFAULT-NEXT: srli a2 , a1, 2
494
- ; DEFAULT-NEXT: li a3 , 1024
495
- ; DEFAULT-NEXT: bgeu a3, a2 , .LBB4_2
490
+ ; DEFAULT-NEXT: srli a1 , a1, 2
491
+ ; DEFAULT-NEXT: li a2 , 1024
492
+ ; DEFAULT-NEXT: bgeu a2, a1 , .LBB4_2
496
493
; DEFAULT-NEXT: # %bb.1:
497
- ; DEFAULT-NEXT: li a3 , 0
494
+ ; DEFAULT-NEXT: li a2 , 0
498
495
; DEFAULT-NEXT: j .LBB4_5
499
496
; DEFAULT-NEXT: .LBB4_2: # %vector.ph
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
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
506
502
; DEFAULT-NEXT: .LBB4_3: # %vector.body
507
503
; DEFAULT-NEXT: # =>This Inner Loop Header: Depth=1
504
+ ; DEFAULT-NEXT: slli a5, a4, 2
505
+ ; DEFAULT-NEXT: add a5, a0, a5
508
506
; DEFAULT-NEXT: vl1re32.v v8, (a5)
509
507
; DEFAULT-NEXT: vfadd.vf v8, v8, fa0
508
+ ; DEFAULT-NEXT: add a4, a4, a1
510
509
; DEFAULT-NEXT: vs1r.v v8, (a5)
511
- ; DEFAULT-NEXT: sub a6, a6, a2
512
- ; DEFAULT-NEXT: add a5, a5, a1
513
- ; DEFAULT-NEXT: bnez a6, .LBB4_3
510
+ ; DEFAULT-NEXT: bne a4, a2, .LBB4_3
514
511
; DEFAULT-NEXT: # %bb.4: # %middle.block
515
- ; DEFAULT-NEXT: beqz a4 , .LBB4_7
512
+ ; DEFAULT-NEXT: beqz a3 , .LBB4_7
516
513
; DEFAULT-NEXT: .LBB4_5: # %for.body.preheader
517
- ; DEFAULT-NEXT: slli a1, a3 , 2
514
+ ; DEFAULT-NEXT: slli a1, a2 , 2
518
515
; DEFAULT-NEXT: add a1, a0, a1
519
516
; DEFAULT-NEXT: lui a2, 1
520
517
; DEFAULT-NEXT: add a0, a0, a2
0 commit comments