@@ -30,15 +30,27 @@ entry:
3030define <8 x i32 > @insert_extract_v8i32 (<8 x i32 > %a ) nounwind {
3131; CHECK-LABEL: insert_extract_v8i32:
3232; CHECK: # %bb.0: # %entry
33- ; CHECK-NEXT: xvpickve2gr .w $a0 , $xr0, 7
34- ; CHECK-NEXT: xvinsgr2vr .w $xr0, $a0 , 1
33+ ; CHECK-NEXT: xvpickve .w $xr1 , $xr0, 7
34+ ; CHECK-NEXT: xvinsve0 .w $xr0, $xr1 , 1
3535; CHECK-NEXT: ret
3636entry:
3737 %b = extractelement <8 x i32 > %a , i32 7
3838 %c = insertelement <8 x i32 > %a , i32 %b , i32 1
3939 ret <8 x i32 > %c
4040}
4141
42+
43+ define <8 x i32 > @insert_extract0_v8i32 (<8 x i32 > %a ) nounwind {
44+ ; CHECK-LABEL: insert_extract0_v8i32:
45+ ; CHECK: # %bb.0: # %entry
46+ ; CHECK-NEXT: xvinsve0.w $xr0, $xr0, 1
47+ ; CHECK-NEXT: ret
48+ entry:
49+ %b = extractelement <8 x i32 > %a , i32 0
50+ %c = insertelement <8 x i32 > %a , i32 %b , i32 1
51+ ret <8 x i32 > %c
52+ }
53+
4254define <8 x float > @insert_extract_v8f32 (<8 x float > %a ) nounwind {
4355; CHECK-LABEL: insert_extract_v8f32:
4456; CHECK: # %bb.0: # %entry
@@ -54,15 +66,26 @@ entry:
5466define <4 x i64 > @insert_extract_v4i64 (<4 x i64 > %a ) nounwind {
5567; CHECK-LABEL: insert_extract_v4i64:
5668; CHECK: # %bb.0: # %entry
57- ; CHECK-NEXT: xvpickve2gr .d $a0 , $xr0, 3
58- ; CHECK-NEXT: xvinsgr2vr .d $xr0, $a0 , 1
69+ ; CHECK-NEXT: xvpickve .d $xr1 , $xr0, 3
70+ ; CHECK-NEXT: xvinsve0 .d $xr0, $xr1 , 1
5971; CHECK-NEXT: ret
6072entry:
6173 %b = extractelement <4 x i64 > %a , i32 3
6274 %c = insertelement <4 x i64 > %a , i64 %b , i32 1
6375 ret <4 x i64 > %c
6476}
6577
78+ define <4 x i64 > @insert_extract0_v4i64 (<4 x i64 > %a ) nounwind {
79+ ; CHECK-LABEL: insert_extract0_v4i64:
80+ ; CHECK: # %bb.0: # %entry
81+ ; CHECK-NEXT: xvinsve0.d $xr0, $xr0, 1
82+ ; CHECK-NEXT: ret
83+ entry:
84+ %b = extractelement <4 x i64 > %a , i32 0
85+ %c = insertelement <4 x i64 > %a , i64 %b , i32 1
86+ ret <4 x i64 > %c
87+ }
88+
6689define <4 x double > @insert_extract_v4f64 (<4 x double > %a ) nounwind {
6790; CHECK-LABEL: insert_extract_v4f64:
6891; CHECK: # %bb.0: # %entry
0 commit comments