@@ -161,71 +161,72 @@ define <64 x i1> @fv64(ptr %p, i64 %index, i64 %tc) {
161
161
define <128 x i1 > @fv128 (ptr %p , i64 %index , i64 %tc ) {
162
162
; CHECK-LABEL: fv128:
163
163
; CHECK: # %bb.0:
164
+ ; CHECK-NEXT: vsetivli zero, 16, e64, m8, ta, ma
164
165
; CHECK-NEXT: lui a0, %hi(.LCPI10_0)
165
166
; CHECK-NEXT: addi a0, a0, %lo(.LCPI10_0)
166
- ; CHECK-NEXT: vsetivli zero, 16, e64, m8, ta, ma
167
167
; CHECK-NEXT: vle8.v v8, (a0)
168
+ ; CHECK-NEXT: vid.v v16
169
+ ; CHECK-NEXT: vsaddu.vx v16, v16, a1
170
+ ; CHECK-NEXT: vmsltu.vx v0, v16, a2
171
+ ; CHECK-NEXT: vsext.vf8 v16, v8
172
+ ; CHECK-NEXT: vsaddu.vx v8, v16, a1
173
+ ; CHECK-NEXT: vmsltu.vx v16, v8, a2
174
+ ; CHECK-NEXT: vsetivli zero, 4, e8, m1, tu, ma
175
+ ; CHECK-NEXT: vslideup.vi v0, v16, 2
168
176
; CHECK-NEXT: lui a0, %hi(.LCPI10_1)
169
177
; CHECK-NEXT: addi a0, a0, %lo(.LCPI10_1)
170
- ; CHECK-NEXT: vle8.v v9, (a0)
178
+ ; CHECK-NEXT: vsetivli zero, 16, e64, m8, ta, ma
179
+ ; CHECK-NEXT: vle8.v v8, (a0)
171
180
; CHECK-NEXT: vsext.vf8 v16, v8
172
- ; CHECK-NEXT: vsaddu.vx v16, v16, a1
173
- ; CHECK-NEXT: vmsltu.vx v10, v16, a2
174
- ; CHECK-NEXT: vsext.vf8 v16, v9
175
- ; CHECK-NEXT: vsaddu.vx v16, v16, a1
176
- ; CHECK-NEXT: vmsltu.vx v8, v16, a2
177
- ; CHECK-NEXT: vsetivli zero, 4, e8, mf2, tu, ma
178
- ; CHECK-NEXT: vslideup.vi v8, v10, 2
181
+ ; CHECK-NEXT: vsaddu.vx v8, v16, a1
182
+ ; CHECK-NEXT: vmsltu.vx v16, v8, a2
183
+ ; CHECK-NEXT: vsetivli zero, 6, e8, m1, tu, ma
184
+ ; CHECK-NEXT: vslideup.vi v0, v16, 4
179
185
; CHECK-NEXT: lui a0, %hi(.LCPI10_2)
180
186
; CHECK-NEXT: addi a0, a0, %lo(.LCPI10_2)
181
187
; CHECK-NEXT: vsetivli zero, 16, e64, m8, ta, ma
182
- ; CHECK-NEXT: vle8.v v9 , (a0)
183
- ; CHECK-NEXT: vsext.vf8 v16, v9
184
- ; CHECK-NEXT: vsaddu.vx v16 , v16, a1
185
- ; CHECK-NEXT: vmsltu.vx v9, v16 , a2
186
- ; CHECK-NEXT: vsetivli zero, 6 , e8, mf2 , tu, ma
187
- ; CHECK-NEXT: vslideup.vi v8, v9, 4
188
+ ; CHECK-NEXT: vle8.v v8 , (a0)
189
+ ; CHECK-NEXT: vsext.vf8 v16, v8
190
+ ; CHECK-NEXT: vsaddu.vx v8 , v16, a1
191
+ ; CHECK-NEXT: vmsltu.vx v16, v8 , a2
192
+ ; CHECK-NEXT: vsetivli zero, 8 , e8, m1 , tu, ma
193
+ ; CHECK-NEXT: vslideup.vi v0, v16, 6
188
194
; CHECK-NEXT: lui a0, %hi(.LCPI10_3)
189
195
; CHECK-NEXT: addi a0, a0, %lo(.LCPI10_3)
190
196
; CHECK-NEXT: vsetivli zero, 16, e64, m8, ta, ma
191
- ; CHECK-NEXT: vle8.v v9, (a0)
192
- ; CHECK-NEXT: vsext.vf8 v16, v9
193
- ; CHECK-NEXT: vsaddu.vx v16, v16, a1
194
- ; CHECK-NEXT: vmsltu.vx v9, v16, a2
195
- ; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, ma
196
- ; CHECK-NEXT: vslideup.vi v8, v9, 6
197
- ; CHECK-NEXT: vsetivli zero, 16, e64, m8, ta, ma
197
+ ; CHECK-NEXT: vle8.v v8, (a0)
198
+ ; CHECK-NEXT: vsext.vf8 v16, v8
199
+ ; CHECK-NEXT: vsaddu.vx v8, v16, a1
200
+ ; CHECK-NEXT: vmsltu.vx v16, v8, a2
201
+ ; CHECK-NEXT: vsetivli zero, 10, e8, m1, tu, ma
202
+ ; CHECK-NEXT: vslideup.vi v0, v16, 8
198
203
; CHECK-NEXT: lui a0, %hi(.LCPI10_4)
199
204
; CHECK-NEXT: addi a0, a0, %lo(.LCPI10_4)
200
- ; CHECK-NEXT: vle8.v v9, (a0)
201
- ; CHECK-NEXT: vid.v v16
202
- ; CHECK-NEXT: vsaddu.vx v16, v16, a1
203
- ; CHECK-NEXT: vmsltu.vx v0, v16, a2
204
- ; CHECK-NEXT: vsext.vf8 v16, v9
205
- ; CHECK-NEXT: vsaddu.vx v16, v16, a1
206
- ; CHECK-NEXT: vmsltu.vx v9, v16, a2
207
- ; CHECK-NEXT: vsetivli zero, 4, e8, mf2, tu, ma
208
- ; CHECK-NEXT: vslideup.vi v0, v9, 2
205
+ ; CHECK-NEXT: vsetivli zero, 16, e64, m8, ta, ma
206
+ ; CHECK-NEXT: vle8.v v8, (a0)
207
+ ; CHECK-NEXT: vsext.vf8 v16, v8
208
+ ; CHECK-NEXT: vsaddu.vx v8, v16, a1
209
+ ; CHECK-NEXT: vmsltu.vx v16, v8, a2
210
+ ; CHECK-NEXT: vsetivli zero, 12, e8, m1, tu, ma
211
+ ; CHECK-NEXT: vslideup.vi v0, v16, 10
209
212
; CHECK-NEXT: lui a0, %hi(.LCPI10_5)
210
213
; CHECK-NEXT: addi a0, a0, %lo(.LCPI10_5)
211
214
; CHECK-NEXT: vsetivli zero, 16, e64, m8, ta, ma
212
- ; CHECK-NEXT: vle8.v v9 , (a0)
213
- ; CHECK-NEXT: vsext.vf8 v16, v9
214
- ; CHECK-NEXT: vsaddu.vx v16 , v16, a1
215
- ; CHECK-NEXT: vmsltu.vx v9, v16 , a2
216
- ; CHECK-NEXT: vsetivli zero, 6 , e8, mf2 , tu, ma
217
- ; CHECK-NEXT: vslideup.vi v0, v9, 4
215
+ ; CHECK-NEXT: vle8.v v8 , (a0)
216
+ ; CHECK-NEXT: vsext.vf8 v16, v8
217
+ ; CHECK-NEXT: vsaddu.vx v8 , v16, a1
218
+ ; CHECK-NEXT: vmsltu.vx v16, v8 , a2
219
+ ; CHECK-NEXT: vsetivli zero, 14 , e8, m1 , tu, ma
220
+ ; CHECK-NEXT: vslideup.vi v0, v16, 12
218
221
; CHECK-NEXT: lui a0, %hi(.LCPI10_6)
219
222
; CHECK-NEXT: addi a0, a0, %lo(.LCPI10_6)
220
223
; CHECK-NEXT: vsetivli zero, 16, e64, m8, ta, ma
221
- ; CHECK-NEXT: vle8.v v9, (a0)
222
- ; CHECK-NEXT: vsext.vf8 v16, v9
223
- ; CHECK-NEXT: vsaddu.vx v16, v16, a1
224
- ; CHECK-NEXT: vmsltu.vx v9, v16, a2
225
- ; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, ma
226
- ; CHECK-NEXT: vslideup.vi v0, v9, 6
227
- ; CHECK-NEXT: vsetivli zero, 16, e8, m1, ta, ma
228
- ; CHECK-NEXT: vslideup.vi v0, v8, 8
224
+ ; CHECK-NEXT: vle8.v v8, (a0)
225
+ ; CHECK-NEXT: vsext.vf8 v16, v8
226
+ ; CHECK-NEXT: vsaddu.vx v8, v16, a1
227
+ ; CHECK-NEXT: vmsltu.vx v16, v8, a2
228
+ ; CHECK-NEXT: vsetvli zero, zero, e8, m1, ta, ma
229
+ ; CHECK-NEXT: vslideup.vi v0, v16, 14
229
230
; CHECK-NEXT: ret
230
231
%mask = call <128 x i1 > @llvm.get.active.lane.mask.v128i1.i64 (i64 %index , i64 %tc )
231
232
ret <128 x i1 > %mask
0 commit comments