@@ -165,8 +165,8 @@ define <vscale x 4 x i8> @splat_idx_nxv8i8_nxv4i8_constant_0(<vscale x 8 x i8> %
165165; CHECK-LABEL: splat_idx_nxv8i8_nxv4i8_constant_0:
166166; CHECK: # %bb.0:
167167; CHECK-NEXT: vsetvli a0, zero, e8, mf2, ta, ma
168- ; CHECK-NEXT: vmv.x.s a0 , v8
169- ; CHECK-NEXT: vmv.v.x v8, a0
168+ ; CHECK-NEXT: vrgather.vi v9 , v8, 0
169+ ; CHECK-NEXT: vmv1r.v v8, v9
170170; CHECK-NEXT: ret
171171 %x = extractelement <vscale x 8 x i8 > %v , i64 0
172172 %ins = insertelement <vscale x 4 x i8 > poison, i8 %x , i32 0
@@ -177,11 +177,9 @@ define <vscale x 4 x i8> @splat_idx_nxv8i8_nxv4i8_constant_0(<vscale x 8 x i8> %
177177define <vscale x 4 x i8 > @splat_idx_nxv8i8_nxv4i8_constant_3 (<vscale x 8 x i8 > %v ) {
178178; CHECK-LABEL: splat_idx_nxv8i8_nxv4i8_constant_3:
179179; CHECK: # %bb.0:
180- ; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma
181- ; CHECK-NEXT: vslidedown.vi v8, v8, 3
182- ; CHECK-NEXT: vmv.x.s a0, v8
183- ; CHECK-NEXT: vsetvli a1, zero, e8, mf2, ta, ma
184- ; CHECK-NEXT: vmv.v.x v8, a0
180+ ; CHECK-NEXT: vsetvli a0, zero, e8, mf2, ta, ma
181+ ; CHECK-NEXT: vrgather.vi v9, v8, 3
182+ ; CHECK-NEXT: vmv1r.v v8, v9
185183; CHECK-NEXT: ret
186184 %x = extractelement <vscale x 8 x i8 > %v , i64 3
187185 %ins = insertelement <vscale x 4 x i8 > poison, i8 %x , i32 0
@@ -210,8 +208,8 @@ define <8 x float> @splat_idx_nxv4f32_v8f32_constant_0(<vscale x 4 x float> %v)
210208; CHECK-LABEL: splat_idx_nxv4f32_v8f32_constant_0:
211209; CHECK: # %bb.0:
212210; CHECK-NEXT: vsetivli zero, 8, e32, m2, ta, ma
213- ; CHECK-NEXT: vfmv.f.s fa5 , v8
214- ; CHECK-NEXT: vfmv .v.f v8, fa5
211+ ; CHECK-NEXT: vrgather.vi v10 , v8, 0
212+ ; CHECK-NEXT: vmv .v.v v8, v10
215213; CHECK-NEXT: ret
216214 %x = extractelement <vscale x 4 x float > %v , i64 0
217215 %ins = insertelement <8 x float > poison, float %x , i32 0
@@ -222,11 +220,9 @@ define <8 x float> @splat_idx_nxv4f32_v8f32_constant_0(<vscale x 4 x float> %v)
222220define <8 x float > @splat_idx_nxv4f32_v8f32_constant_7 (<vscale x 4 x float > %v ) {
223221; CHECK-LABEL: splat_idx_nxv4f32_v8f32_constant_7:
224222; CHECK: # %bb.0:
225- ; CHECK-NEXT: vsetivli zero, 1, e32, m2, ta, ma
226- ; CHECK-NEXT: vslidedown.vi v8, v8, 7
227- ; CHECK-NEXT: vfmv.f.s fa5, v8
228223; CHECK-NEXT: vsetivli zero, 8, e32, m2, ta, ma
229- ; CHECK-NEXT: vfmv.v.f v8, fa5
224+ ; CHECK-NEXT: vrgather.vi v10, v8, 7
225+ ; CHECK-NEXT: vmv.v.v v8, v10
230226; CHECK-NEXT: ret
231227 %x = extractelement <vscale x 4 x float > %v , i64 7
232228 %ins = insertelement <8 x float > poison, float %x , i32 0
0 commit comments