@@ -30,23 +30,27 @@ define <2 x half> @vp_ceil_v2f16(<2 x half> %va, <2 x i1> %m, i32 zeroext %evl)
30
30
;
31
31
; ZVFHMIN-LABEL: vp_ceil_v2f16:
32
32
; ZVFHMIN: # %bb.0:
33
- ; ZVFHMIN-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
34
- ; ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v8
35
- ; ZVFHMIN-NEXT: lui a1, 307200
36
- ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, mf2, ta, ma
37
- ; ZVFHMIN-NEXT: vfabs.v v8, v9, v0.t
38
- ; ZVFHMIN-NEXT: fmv.w.x fa5, a1
33
+ ; ZVFHMIN-NEXT: vsetvli zero, a0, e16, mf4, ta, ma
34
+ ; ZVFHMIN-NEXT: vmv1r.v v9, v0
35
+ ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8, v0.t
36
+ ; ZVFHMIN-NEXT: lui a0, 307200
37
+ ; ZVFHMIN-NEXT: vmv1r.v v8, v0
38
+ ; ZVFHMIN-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
39
+ ; ZVFHMIN-NEXT: vfabs.v v11, v10, v0.t
40
+ ; ZVFHMIN-NEXT: fmv.w.x fa5, a0
39
41
; ZVFHMIN-NEXT: vsetvli zero, zero, e32, mf2, ta, mu
40
- ; ZVFHMIN-NEXT: vmflt.vf v0, v8 , fa5, v0.t
42
+ ; ZVFHMIN-NEXT: vmflt.vf v8, v11 , fa5, v0.t
41
43
; ZVFHMIN-NEXT: fsrmi a0, 3
44
+ ; ZVFHMIN-NEXT: vmv1r.v v0, v8
42
45
; ZVFHMIN-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
43
- ; ZVFHMIN-NEXT: vfcvt.x.f.v v8, v9 , v0.t
46
+ ; ZVFHMIN-NEXT: vfcvt.x.f.v v11, v10 , v0.t
44
47
; ZVFHMIN-NEXT: fsrm a0
45
- ; ZVFHMIN-NEXT: vfcvt.f.x.v v8, v8 , v0.t
48
+ ; ZVFHMIN-NEXT: vfcvt.f.x.v v11, v11 , v0.t
46
49
; ZVFHMIN-NEXT: vsetvli zero, zero, e32, mf2, ta, mu
47
- ; ZVFHMIN-NEXT: vfsgnj.vv v9, v8, v9, v0.t
48
- ; ZVFHMIN-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
49
- ; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v9
50
+ ; ZVFHMIN-NEXT: vfsgnj.vv v10, v11, v10, v0.t
51
+ ; ZVFHMIN-NEXT: vmv1r.v v0, v9
52
+ ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, mf4, ta, ma
53
+ ; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v10, v0.t
50
54
; ZVFHMIN-NEXT: ret
51
55
%v = call <2 x half > @llvm.vp.ceil.v2f16 (<2 x half > %va , <2 x i1 > %m , i32 %evl )
52
56
ret <2 x half > %v
@@ -70,20 +74,20 @@ define <2 x half> @vp_ceil_v2f16_unmasked(<2 x half> %va, i32 zeroext %evl) {
70
74
;
71
75
; ZVFHMIN-LABEL: vp_ceil_v2f16_unmasked:
72
76
; ZVFHMIN: # %bb.0:
73
- ; ZVFHMIN-NEXT: vsetivli zero, 2 , e16, mf4, ta, ma
77
+ ; ZVFHMIN-NEXT: vsetvli zero, a0 , e16, mf4, ta, ma
74
78
; ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v8
75
- ; ZVFHMIN-NEXT: lui a1 , 307200
76
- ; ZVFHMIN-NEXT: vsetvli zero, a0 , e32, mf2, ta, ma
79
+ ; ZVFHMIN-NEXT: lui a0 , 307200
80
+ ; ZVFHMIN-NEXT: vsetvli zero, zero , e32, mf2, ta, ma
77
81
; ZVFHMIN-NEXT: vfabs.v v8, v9
78
- ; ZVFHMIN-NEXT: fmv.w.x fa5, a1
82
+ ; ZVFHMIN-NEXT: fmv.w.x fa5, a0
79
83
; ZVFHMIN-NEXT: vmflt.vf v0, v8, fa5
80
84
; ZVFHMIN-NEXT: fsrmi a0, 3
81
85
; ZVFHMIN-NEXT: vfcvt.x.f.v v8, v9, v0.t
82
86
; ZVFHMIN-NEXT: fsrm a0
83
87
; ZVFHMIN-NEXT: vfcvt.f.x.v v8, v8, v0.t
84
88
; ZVFHMIN-NEXT: vsetvli zero, zero, e32, mf2, ta, mu
85
89
; ZVFHMIN-NEXT: vfsgnj.vv v9, v8, v9, v0.t
86
- ; ZVFHMIN-NEXT: vsetivli zero, 2 , e16, mf4, ta, ma
90
+ ; ZVFHMIN-NEXT: vsetvli zero, zero , e16, mf4, ta, ma
87
91
; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v9
88
92
; ZVFHMIN-NEXT: ret
89
93
%v = call <2 x half > @llvm.vp.ceil.v2f16 (<2 x half > %va , <2 x i1 > splat (i1 true ), i32 %evl )
@@ -112,23 +116,27 @@ define <4 x half> @vp_ceil_v4f16(<4 x half> %va, <4 x i1> %m, i32 zeroext %evl)
112
116
;
113
117
; ZVFHMIN-LABEL: vp_ceil_v4f16:
114
118
; ZVFHMIN: # %bb.0:
115
- ; ZVFHMIN-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
116
- ; ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v8
117
- ; ZVFHMIN-NEXT: lui a1, 307200
118
- ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m1, ta, ma
119
- ; ZVFHMIN-NEXT: vfabs.v v8, v9, v0.t
120
- ; ZVFHMIN-NEXT: fmv.w.x fa5, a1
119
+ ; ZVFHMIN-NEXT: vsetvli zero, a0, e16, mf2, ta, ma
120
+ ; ZVFHMIN-NEXT: vmv1r.v v9, v0
121
+ ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8, v0.t
122
+ ; ZVFHMIN-NEXT: lui a0, 307200
123
+ ; ZVFHMIN-NEXT: vmv1r.v v8, v0
124
+ ; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m1, ta, ma
125
+ ; ZVFHMIN-NEXT: vfabs.v v11, v10, v0.t
126
+ ; ZVFHMIN-NEXT: fmv.w.x fa5, a0
121
127
; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m1, ta, mu
122
- ; ZVFHMIN-NEXT: vmflt.vf v0, v8 , fa5, v0.t
128
+ ; ZVFHMIN-NEXT: vmflt.vf v8, v11 , fa5, v0.t
123
129
; ZVFHMIN-NEXT: fsrmi a0, 3
130
+ ; ZVFHMIN-NEXT: vmv.v.v v0, v8
124
131
; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m1, ta, ma
125
- ; ZVFHMIN-NEXT: vfcvt.x.f.v v8, v9 , v0.t
132
+ ; ZVFHMIN-NEXT: vfcvt.x.f.v v11, v10 , v0.t
126
133
; ZVFHMIN-NEXT: fsrm a0
127
- ; ZVFHMIN-NEXT: vfcvt.f.x.v v8, v8 , v0.t
134
+ ; ZVFHMIN-NEXT: vfcvt.f.x.v v11, v11 , v0.t
128
135
; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m1, ta, mu
129
- ; ZVFHMIN-NEXT: vfsgnj.vv v9, v8, v9, v0.t
130
- ; ZVFHMIN-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
131
- ; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v9
136
+ ; ZVFHMIN-NEXT: vfsgnj.vv v10, v11, v10, v0.t
137
+ ; ZVFHMIN-NEXT: vmv1r.v v0, v9
138
+ ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, mf2, ta, ma
139
+ ; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v10, v0.t
132
140
; ZVFHMIN-NEXT: ret
133
141
%v = call <4 x half > @llvm.vp.ceil.v4f16 (<4 x half > %va , <4 x i1 > %m , i32 %evl )
134
142
ret <4 x half > %v
@@ -152,20 +160,20 @@ define <4 x half> @vp_ceil_v4f16_unmasked(<4 x half> %va, i32 zeroext %evl) {
152
160
;
153
161
; ZVFHMIN-LABEL: vp_ceil_v4f16_unmasked:
154
162
; ZVFHMIN: # %bb.0:
155
- ; ZVFHMIN-NEXT: vsetivli zero, 4 , e16, mf2, ta, ma
163
+ ; ZVFHMIN-NEXT: vsetvli zero, a0 , e16, mf2, ta, ma
156
164
; ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v8
157
- ; ZVFHMIN-NEXT: lui a1 , 307200
158
- ; ZVFHMIN-NEXT: vsetvli zero, a0 , e32, m1, ta, ma
165
+ ; ZVFHMIN-NEXT: lui a0 , 307200
166
+ ; ZVFHMIN-NEXT: vsetvli zero, zero , e32, m1, ta, ma
159
167
; ZVFHMIN-NEXT: vfabs.v v8, v9
160
- ; ZVFHMIN-NEXT: fmv.w.x fa5, a1
168
+ ; ZVFHMIN-NEXT: fmv.w.x fa5, a0
161
169
; ZVFHMIN-NEXT: vmflt.vf v0, v8, fa5
162
170
; ZVFHMIN-NEXT: fsrmi a0, 3
163
171
; ZVFHMIN-NEXT: vfcvt.x.f.v v8, v9, v0.t
164
172
; ZVFHMIN-NEXT: fsrm a0
165
173
; ZVFHMIN-NEXT: vfcvt.f.x.v v8, v8, v0.t
166
174
; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m1, ta, mu
167
175
; ZVFHMIN-NEXT: vfsgnj.vv v9, v8, v9, v0.t
168
- ; ZVFHMIN-NEXT: vsetivli zero, 4 , e16, mf2, ta, ma
176
+ ; ZVFHMIN-NEXT: vsetvli zero, zero , e16, mf2, ta, ma
169
177
; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v9
170
178
; ZVFHMIN-NEXT: ret
171
179
%v = call <4 x half > @llvm.vp.ceil.v4f16 (<4 x half > %va , <4 x i1 > splat (i1 true ), i32 %evl )
@@ -194,25 +202,27 @@ define <8 x half> @vp_ceil_v8f16(<8 x half> %va, <8 x i1> %m, i32 zeroext %evl)
194
202
;
195
203
; ZVFHMIN-LABEL: vp_ceil_v8f16:
196
204
; ZVFHMIN: # %bb.0:
197
- ; ZVFHMIN-NEXT: vsetivli zero, 8 , e16, m1, ta, ma
205
+ ; ZVFHMIN-NEXT: vsetvli zero, a0 , e16, m1, ta, ma
198
206
; ZVFHMIN-NEXT: vmv1r.v v9, v0
199
- ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
200
- ; ZVFHMIN-NEXT: lui a1, 307200
201
- ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
207
+ ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8, v0.t
208
+ ; ZVFHMIN-NEXT: lui a0, 307200
209
+ ; ZVFHMIN-NEXT: vmv1r.v v8, v0
210
+ ; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m2, ta, ma
202
211
; ZVFHMIN-NEXT: vfabs.v v12, v10, v0.t
203
- ; ZVFHMIN-NEXT: fmv.w.x fa5, a1
212
+ ; ZVFHMIN-NEXT: fmv.w.x fa5, a0
204
213
; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m2, ta, mu
205
- ; ZVFHMIN-NEXT: vmflt.vf v9 , v12, fa5, v0.t
214
+ ; ZVFHMIN-NEXT: vmflt.vf v8 , v12, fa5, v0.t
206
215
; ZVFHMIN-NEXT: fsrmi a0, 3
207
- ; ZVFHMIN-NEXT: vmv1r.v v0, v9
216
+ ; ZVFHMIN-NEXT: vmv1r.v v0, v8
208
217
; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m2, ta, ma
209
218
; ZVFHMIN-NEXT: vfcvt.x.f.v v12, v10, v0.t
210
219
; ZVFHMIN-NEXT: fsrm a0
211
220
; ZVFHMIN-NEXT: vfcvt.f.x.v v12, v12, v0.t
212
221
; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m2, ta, mu
213
222
; ZVFHMIN-NEXT: vfsgnj.vv v10, v12, v10, v0.t
214
- ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
215
- ; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v10
223
+ ; ZVFHMIN-NEXT: vmv1r.v v0, v9
224
+ ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
225
+ ; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v10, v0.t
216
226
; ZVFHMIN-NEXT: ret
217
227
%v = call <8 x half > @llvm.vp.ceil.v8f16 (<8 x half > %va , <8 x i1 > %m , i32 %evl )
218
228
ret <8 x half > %v
@@ -236,20 +246,20 @@ define <8 x half> @vp_ceil_v8f16_unmasked(<8 x half> %va, i32 zeroext %evl) {
236
246
;
237
247
; ZVFHMIN-LABEL: vp_ceil_v8f16_unmasked:
238
248
; ZVFHMIN: # %bb.0:
239
- ; ZVFHMIN-NEXT: vsetivli zero, 8 , e16, m1, ta, ma
249
+ ; ZVFHMIN-NEXT: vsetvli zero, a0 , e16, m1, ta, ma
240
250
; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
241
- ; ZVFHMIN-NEXT: lui a1 , 307200
242
- ; ZVFHMIN-NEXT: vsetvli zero, a0 , e32, m2, ta, ma
251
+ ; ZVFHMIN-NEXT: lui a0 , 307200
252
+ ; ZVFHMIN-NEXT: vsetvli zero, zero , e32, m2, ta, ma
243
253
; ZVFHMIN-NEXT: vfabs.v v8, v10
244
- ; ZVFHMIN-NEXT: fmv.w.x fa5, a1
254
+ ; ZVFHMIN-NEXT: fmv.w.x fa5, a0
245
255
; ZVFHMIN-NEXT: vmflt.vf v0, v8, fa5
246
256
; ZVFHMIN-NEXT: fsrmi a0, 3
247
257
; ZVFHMIN-NEXT: vfcvt.x.f.v v8, v10, v0.t
248
258
; ZVFHMIN-NEXT: fsrm a0
249
259
; ZVFHMIN-NEXT: vfcvt.f.x.v v8, v8, v0.t
250
260
; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m2, ta, mu
251
261
; ZVFHMIN-NEXT: vfsgnj.vv v10, v8, v10, v0.t
252
- ; ZVFHMIN-NEXT: vsetivli zero, 8 , e16, m1, ta, ma
262
+ ; ZVFHMIN-NEXT: vsetvli zero, zero , e16, m1, ta, ma
253
263
; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v10
254
264
; ZVFHMIN-NEXT: ret
255
265
%v = call <8 x half > @llvm.vp.ceil.v8f16 (<8 x half > %va , <8 x i1 > splat (i1 true ), i32 %evl )
@@ -280,25 +290,27 @@ define <16 x half> @vp_ceil_v16f16(<16 x half> %va, <16 x i1> %m, i32 zeroext %e
280
290
;
281
291
; ZVFHMIN-LABEL: vp_ceil_v16f16:
282
292
; ZVFHMIN: # %bb.0:
283
- ; ZVFHMIN-NEXT: vsetivli zero, 16 , e16, m2, ta, ma
293
+ ; ZVFHMIN-NEXT: vsetvli zero, a0 , e16, m2, ta, ma
284
294
; ZVFHMIN-NEXT: vmv1r.v v10, v0
285
- ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v8
286
- ; ZVFHMIN-NEXT: lui a1, 307200
287
- ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m4, ta, ma
295
+ ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v8, v0.t
296
+ ; ZVFHMIN-NEXT: lui a0, 307200
297
+ ; ZVFHMIN-NEXT: vmv1r.v v8, v0
298
+ ; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m4, ta, ma
288
299
; ZVFHMIN-NEXT: vfabs.v v16, v12, v0.t
289
- ; ZVFHMIN-NEXT: fmv.w.x fa5, a1
300
+ ; ZVFHMIN-NEXT: fmv.w.x fa5, a0
290
301
; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m4, ta, mu
291
- ; ZVFHMIN-NEXT: vmflt.vf v10 , v16, fa5, v0.t
302
+ ; ZVFHMIN-NEXT: vmflt.vf v8 , v16, fa5, v0.t
292
303
; ZVFHMIN-NEXT: fsrmi a0, 3
293
- ; ZVFHMIN-NEXT: vmv1r.v v0, v10
304
+ ; ZVFHMIN-NEXT: vmv1r.v v0, v8
294
305
; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m4, ta, ma
295
306
; ZVFHMIN-NEXT: vfcvt.x.f.v v16, v12, v0.t
296
307
; ZVFHMIN-NEXT: fsrm a0
297
308
; ZVFHMIN-NEXT: vfcvt.f.x.v v16, v16, v0.t
298
309
; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m4, ta, mu
299
310
; ZVFHMIN-NEXT: vfsgnj.vv v12, v16, v12, v0.t
300
- ; ZVFHMIN-NEXT: vsetivli zero, 16, e16, m2, ta, ma
301
- ; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v12
311
+ ; ZVFHMIN-NEXT: vmv1r.v v0, v10
312
+ ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m2, ta, ma
313
+ ; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v12, v0.t
302
314
; ZVFHMIN-NEXT: ret
303
315
%v = call <16 x half > @llvm.vp.ceil.v16f16 (<16 x half > %va , <16 x i1 > %m , i32 %evl )
304
316
ret <16 x half > %v
@@ -322,20 +334,20 @@ define <16 x half> @vp_ceil_v16f16_unmasked(<16 x half> %va, i32 zeroext %evl) {
322
334
;
323
335
; ZVFHMIN-LABEL: vp_ceil_v16f16_unmasked:
324
336
; ZVFHMIN: # %bb.0:
325
- ; ZVFHMIN-NEXT: vsetivli zero, 16 , e16, m2, ta, ma
337
+ ; ZVFHMIN-NEXT: vsetvli zero, a0 , e16, m2, ta, ma
326
338
; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v8
327
- ; ZVFHMIN-NEXT: lui a1 , 307200
328
- ; ZVFHMIN-NEXT: vsetvli zero, a0 , e32, m4, ta, ma
339
+ ; ZVFHMIN-NEXT: lui a0 , 307200
340
+ ; ZVFHMIN-NEXT: vsetvli zero, zero , e32, m4, ta, ma
329
341
; ZVFHMIN-NEXT: vfabs.v v8, v12
330
- ; ZVFHMIN-NEXT: fmv.w.x fa5, a1
342
+ ; ZVFHMIN-NEXT: fmv.w.x fa5, a0
331
343
; ZVFHMIN-NEXT: vmflt.vf v0, v8, fa5
332
344
; ZVFHMIN-NEXT: fsrmi a0, 3
333
345
; ZVFHMIN-NEXT: vfcvt.x.f.v v8, v12, v0.t
334
346
; ZVFHMIN-NEXT: fsrm a0
335
347
; ZVFHMIN-NEXT: vfcvt.f.x.v v8, v8, v0.t
336
348
; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m4, ta, mu
337
349
; ZVFHMIN-NEXT: vfsgnj.vv v12, v8, v12, v0.t
338
- ; ZVFHMIN-NEXT: vsetivli zero, 16 , e16, m2, ta, ma
350
+ ; ZVFHMIN-NEXT: vsetvli zero, zero , e16, m2, ta, ma
339
351
; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v12
340
352
; ZVFHMIN-NEXT: ret
341
353
%v = call <16 x half > @llvm.vp.ceil.v16f16 (<16 x half > %va , <16 x i1 > splat (i1 true ), i32 %evl )
0 commit comments