@@ -30,15 +30,27 @@ entry:
30
30
define <8 x i32 > @insert_extract_v8i32 (<8 x i32 > %a ) nounwind {
31
31
; CHECK-LABEL: insert_extract_v8i32:
32
32
; 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
35
35
; CHECK-NEXT: ret
36
36
entry:
37
37
%b = extractelement <8 x i32 > %a , i32 7
38
38
%c = insertelement <8 x i32 > %a , i32 %b , i32 1
39
39
ret <8 x i32 > %c
40
40
}
41
41
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
+
42
54
define <8 x float > @insert_extract_v8f32 (<8 x float > %a ) nounwind {
43
55
; CHECK-LABEL: insert_extract_v8f32:
44
56
; CHECK: # %bb.0: # %entry
@@ -54,15 +66,26 @@ entry:
54
66
define <4 x i64 > @insert_extract_v4i64 (<4 x i64 > %a ) nounwind {
55
67
; CHECK-LABEL: insert_extract_v4i64:
56
68
; 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
59
71
; CHECK-NEXT: ret
60
72
entry:
61
73
%b = extractelement <4 x i64 > %a , i32 3
62
74
%c = insertelement <4 x i64 > %a , i64 %b , i32 1
63
75
ret <4 x i64 > %c
64
76
}
65
77
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
+
66
89
define <4 x double > @insert_extract_v4f64 (<4 x double > %a ) nounwind {
67
90
; CHECK-LABEL: insert_extract_v4f64:
68
91
; CHECK: # %bb.0: # %entry
0 commit comments