@@ -138,7 +138,6 @@ define i32 @extractelt_v8i32(ptr %x) nounwind {
138
138
; CHECK: # %bb.0:
139
139
; CHECK-NEXT: vsetivli zero, 8, e32, m2, ta, ma
140
140
; CHECK-NEXT: vle32.v v8, (a0)
141
- ; CHECK-NEXT: vsetivli zero, 1, e32, m2, ta, ma
142
141
; CHECK-NEXT: vslidedown.vi v8, v8, 6
143
142
; CHECK-NEXT: vmv.x.s a0, v8
144
143
; CHECK-NEXT: ret
@@ -152,9 +151,9 @@ define i64 @extractelt_v4i64(ptr %x) nounwind {
152
151
; RV32: # %bb.0:
153
152
; RV32-NEXT: vsetivli zero, 4, e64, m2, ta, ma
154
153
; RV32-NEXT: vle64.v v8, (a0)
155
- ; RV32-NEXT: vsetivli zero, 1, e64, m2, ta, ma
156
154
; RV32-NEXT: vslidedown.vi v8, v8, 3
157
155
; RV32-NEXT: li a0, 32
156
+ ; RV32-NEXT: vsetivli zero, 1, e64, m2, ta, ma
158
157
; RV32-NEXT: vsrl.vx v10, v8, a0
159
158
; RV32-NEXT: vmv.x.s a1, v10
160
159
; RV32-NEXT: vmv.x.s a0, v8
@@ -164,7 +163,6 @@ define i64 @extractelt_v4i64(ptr %x) nounwind {
164
163
; RV64: # %bb.0:
165
164
; RV64-NEXT: vsetivli zero, 4, e64, m2, ta, ma
166
165
; RV64-NEXT: vle64.v v8, (a0)
167
- ; RV64-NEXT: vsetivli zero, 1, e64, m2, ta, ma
168
166
; RV64-NEXT: vslidedown.vi v8, v8, 3
169
167
; RV64-NEXT: vmv.x.s a0, v8
170
168
; RV64-NEXT: ret
@@ -233,7 +231,6 @@ define i64 @extractelt_v3i64(ptr %x) nounwind {
233
231
; RV64: # %bb.0:
234
232
; RV64-NEXT: vsetivli zero, 3, e64, m2, ta, ma
235
233
; RV64-NEXT: vle64.v v8, (a0)
236
- ; RV64-NEXT: vsetivli zero, 1, e64, m2, ta, ma
237
234
; RV64-NEXT: vslidedown.vi v8, v8, 2
238
235
; RV64-NEXT: vmv.x.s a0, v8
239
236
; RV64-NEXT: ret
@@ -452,7 +449,6 @@ define i8 @extractelt_v32i8_idx(ptr %x, i32 zeroext %idx) nounwind {
452
449
; CHECK-NEXT: li a2, 32
453
450
; CHECK-NEXT: vsetvli zero, a2, e8, m2, ta, ma
454
451
; CHECK-NEXT: vle8.v v8, (a0)
455
- ; CHECK-NEXT: vsetivli zero, 1, e8, m2, ta, ma
456
452
; CHECK-NEXT: vslidedown.vx v8, v8, a1
457
453
; CHECK-NEXT: vmv.x.s a0, v8
458
454
; CHECK-NEXT: ret
@@ -466,7 +462,6 @@ define i16 @extractelt_v16i16_idx(ptr %x, i32 zeroext %idx) nounwind {
466
462
; CHECK: # %bb.0:
467
463
; CHECK-NEXT: vsetivli zero, 16, e16, m2, ta, ma
468
464
; CHECK-NEXT: vle16.v v8, (a0)
469
- ; CHECK-NEXT: vsetivli zero, 1, e16, m2, ta, ma
470
465
; CHECK-NEXT: vslidedown.vx v8, v8, a1
471
466
; CHECK-NEXT: vmv.x.s a0, v8
472
467
; CHECK-NEXT: ret
@@ -481,7 +476,6 @@ define i32 @extractelt_v8i32_idx(ptr %x, i32 zeroext %idx) nounwind {
481
476
; CHECK-NEXT: vsetivli zero, 8, e32, m2, ta, ma
482
477
; CHECK-NEXT: vle32.v v8, (a0)
483
478
; CHECK-NEXT: vadd.vv v8, v8, v8
484
- ; CHECK-NEXT: vsetivli zero, 1, e32, m2, ta, ma
485
479
; CHECK-NEXT: vslidedown.vx v8, v8, a1
486
480
; CHECK-NEXT: vmv.x.s a0, v8
487
481
; CHECK-NEXT: ret
@@ -497,10 +491,10 @@ define i64 @extractelt_v4i64_idx(ptr %x, i32 zeroext %idx) nounwind {
497
491
; RV32-NEXT: vsetivli zero, 4, e64, m2, ta, ma
498
492
; RV32-NEXT: vle64.v v8, (a0)
499
493
; RV32-NEXT: vadd.vv v8, v8, v8
500
- ; RV32-NEXT: vsetivli zero, 1, e64, m2, ta, ma
501
494
; RV32-NEXT: vslidedown.vx v8, v8, a1
502
495
; RV32-NEXT: vmv.x.s a0, v8
503
496
; RV32-NEXT: li a1, 32
497
+ ; RV32-NEXT: vsetivli zero, 1, e64, m2, ta, ma
504
498
; RV32-NEXT: vsrl.vx v8, v8, a1
505
499
; RV32-NEXT: vmv.x.s a1, v8
506
500
; RV32-NEXT: ret
@@ -510,7 +504,6 @@ define i64 @extractelt_v4i64_idx(ptr %x, i32 zeroext %idx) nounwind {
510
504
; RV64-NEXT: vsetivli zero, 4, e64, m2, ta, ma
511
505
; RV64-NEXT: vle64.v v8, (a0)
512
506
; RV64-NEXT: vadd.vv v8, v8, v8
513
- ; RV64-NEXT: vsetivli zero, 1, e64, m2, ta, ma
514
507
; RV64-NEXT: vslidedown.vx v8, v8, a1
515
508
; RV64-NEXT: vmv.x.s a0, v8
516
509
; RV64-NEXT: ret
@@ -526,7 +519,6 @@ define half @extractelt_v16f16_idx(ptr %x, i32 zeroext %idx) nounwind {
526
519
; CHECK-NEXT: vsetivli zero, 16, e16, m2, ta, ma
527
520
; CHECK-NEXT: vle16.v v8, (a0)
528
521
; CHECK-NEXT: vfadd.vv v8, v8, v8
529
- ; CHECK-NEXT: vsetivli zero, 1, e16, m2, ta, ma
530
522
; CHECK-NEXT: vslidedown.vx v8, v8, a1
531
523
; CHECK-NEXT: vfmv.f.s fa0, v8
532
524
; CHECK-NEXT: ret
@@ -542,7 +534,6 @@ define float @extractelt_v8f32_idx(ptr %x, i32 zeroext %idx) nounwind {
542
534
; CHECK-NEXT: vsetivli zero, 8, e32, m2, ta, ma
543
535
; CHECK-NEXT: vle32.v v8, (a0)
544
536
; CHECK-NEXT: vfadd.vv v8, v8, v8
545
- ; CHECK-NEXT: vsetivli zero, 1, e32, m2, ta, ma
546
537
; CHECK-NEXT: vslidedown.vx v8, v8, a1
547
538
; CHECK-NEXT: vfmv.f.s fa0, v8
548
539
; CHECK-NEXT: ret
@@ -558,7 +549,6 @@ define double @extractelt_v4f64_idx(ptr %x, i32 zeroext %idx) nounwind {
558
549
; CHECK-NEXT: vsetivli zero, 4, e64, m2, ta, ma
559
550
; CHECK-NEXT: vle64.v v8, (a0)
560
551
; CHECK-NEXT: vfadd.vv v8, v8, v8
561
- ; CHECK-NEXT: vsetivli zero, 1, e64, m2, ta, ma
562
552
; CHECK-NEXT: vslidedown.vx v8, v8, a1
563
553
; CHECK-NEXT: vfmv.f.s fa0, v8
564
554
; CHECK-NEXT: ret
@@ -594,7 +584,6 @@ define i64 @extractelt_v3i64_idx(ptr %x, i32 zeroext %idx) nounwind {
594
584
; RV64-NEXT: vle64.v v8, (a0)
595
585
; RV64-NEXT: vsetivli zero, 4, e64, m2, ta, ma
596
586
; RV64-NEXT: vadd.vv v8, v8, v8
597
- ; RV64-NEXT: vsetivli zero, 1, e64, m2, ta, ma
598
587
; RV64-NEXT: vslidedown.vx v8, v8, a1
599
588
; RV64-NEXT: vmv.x.s a0, v8
600
589
; RV64-NEXT: ret
0 commit comments