@@ -77,8 +77,7 @@ define void @extract_32xi8_idx(ptr %src, ptr %dst, i32 %idx) nounwind {
77
77
; CHECK-LABEL: extract_32xi8_idx:
78
78
; CHECK: # %bb.0:
79
79
; CHECK-NEXT: xvld $xr0, $a0, 0
80
- ; CHECK-NEXT: bstrpick.d $a0, $a2, 31, 0
81
- ; CHECK-NEXT: bstrpick.d $a0, $a0, 31, 2
80
+ ; CHECK-NEXT: bstrpick.d $a0, $a2, 31, 2
82
81
; CHECK-NEXT: xvreplgr2vr.w $xr1, $a0
83
82
; CHECK-NEXT: xvperm.w $xr0, $xr0, $xr1
84
83
; CHECK-NEXT: andi $a0, $a2, 3
@@ -95,8 +94,7 @@ define void @extract_16xi16_idx(ptr %src, ptr %dst, i32 %idx) nounwind {
95
94
; CHECK-LABEL: extract_16xi16_idx:
96
95
; CHECK: # %bb.0:
97
96
; CHECK-NEXT: xvld $xr0, $a0, 0
98
- ; CHECK-NEXT: bstrpick.d $a0, $a2, 31, 0
99
- ; CHECK-NEXT: bstrpick.d $a0, $a0, 31, 1
97
+ ; CHECK-NEXT: bstrpick.d $a0, $a2, 31, 1
100
98
; CHECK-NEXT: xvreplgr2vr.w $xr1, $a0
101
99
; CHECK-NEXT: xvperm.w $xr0, $xr0, $xr1
102
100
; CHECK-NEXT: andi $a0, $a2, 1
@@ -113,8 +111,7 @@ define void @extract_8xi32_idx(ptr %src, ptr %dst, i32 %idx) nounwind {
113
111
; CHECK-LABEL: extract_8xi32_idx:
114
112
; CHECK: # %bb.0:
115
113
; CHECK-NEXT: xvld $xr0, $a0, 0
116
- ; CHECK-NEXT: bstrpick.d $a0, $a2, 31, 0
117
- ; CHECK-NEXT: xvreplgr2vr.w $xr1, $a0
114
+ ; CHECK-NEXT: xvreplgr2vr.w $xr1, $a2
118
115
; CHECK-NEXT: xvperm.w $xr0, $xr0, $xr1
119
116
; CHECK-NEXT: xvstelm.w $xr0, $a1, 0, 0
120
117
; CHECK-NEXT: ret
@@ -128,8 +125,7 @@ define void @extract_4xi64_idx(ptr %src, ptr %dst, i32 %idx) nounwind {
128
125
; CHECK-LABEL: extract_4xi64_idx:
129
126
; CHECK: # %bb.0:
130
127
; CHECK-NEXT: xvld $xr0, $a0, 0
131
- ; CHECK-NEXT: bstrpick.d $a0, $a2, 31, 0
132
- ; CHECK-NEXT: xvreplgr2vr.w $xr1, $a0
128
+ ; CHECK-NEXT: xvreplgr2vr.w $xr1, $a2
133
129
; CHECK-NEXT: xvslli.w $xr1, $xr1, 1
134
130
; CHECK-NEXT: xvperm.w $xr2, $xr0, $xr1
135
131
; CHECK-NEXT: xvaddi.wu $xr1, $xr1, 1
@@ -147,8 +143,7 @@ define void @extract_8xfloat_idx(ptr %src, ptr %dst, i32 %idx) nounwind {
147
143
; CHECK-LABEL: extract_8xfloat_idx:
148
144
; CHECK: # %bb.0:
149
145
; CHECK-NEXT: xvld $xr0, $a0, 0
150
- ; CHECK-NEXT: bstrpick.d $a0, $a2, 31, 0
151
- ; CHECK-NEXT: xvreplgr2vr.w $xr1, $a0
146
+ ; CHECK-NEXT: xvreplgr2vr.w $xr1, $a2
152
147
; CHECK-NEXT: xvperm.w $xr0, $xr0, $xr1
153
148
; CHECK-NEXT: xvstelm.w $xr0, $a1, 0, 0
154
149
; CHECK-NEXT: ret
@@ -162,8 +157,7 @@ define void @extract_4xdouble_idx(ptr %src, ptr %dst, i32 %idx) nounwind {
162
157
; CHECK-LABEL: extract_4xdouble_idx:
163
158
; CHECK: # %bb.0:
164
159
; CHECK-NEXT: xvld $xr0, $a0, 0
165
- ; CHECK-NEXT: bstrpick.d $a0, $a2, 31, 0
166
- ; CHECK-NEXT: xvreplgr2vr.w $xr1, $a0
160
+ ; CHECK-NEXT: xvreplgr2vr.w $xr1, $a2
167
161
; CHECK-NEXT: xvslli.w $xr1, $xr1, 1
168
162
; CHECK-NEXT: xvperm.w $xr2, $xr0, $xr1
169
163
; CHECK-NEXT: xvaddi.wu $xr1, $xr1, 1
0 commit comments