@@ -97,9 +97,8 @@ float16_t test_vcvth_f16_u64 (uint64_t a) {
97
97
}
98
98
99
99
// CHECK-LABEL: test_vcvth_s16_f16
100
- // CHECK: [[VCVT:%.*]] = call i32 @llvm.aarch64.neon.fcvtzs.i32.f16(half %a)
101
- // CHECK: [[TRUNC:%.*]] = trunc i32 [[VCVT]] to i16
102
- // CHECK: ret i16 [[TRUNC]]
100
+ // CHECK: [[VCVT:%.*]] = call i16 @llvm.aarch64.neon.fcvtzs.i16.f16(half %a)
101
+ // CHECK: ret i16 [[VCVT]]
103
102
int16_t test_vcvth_s16_f16 (float16_t a ) {
104
103
return vcvth_s16_f16 (a );
105
104
}
@@ -119,9 +118,8 @@ int64_t test_vcvth_s64_f16 (float16_t a) {
119
118
}
120
119
121
120
// CHECK-LABEL: test_vcvth_u16_f16
122
- // CHECK: [[VCVT:%.*]] = call i32 @llvm.aarch64.neon.fcvtzu.i32.f16(half %a)
123
- // CHECK: [[TRUNC:%.*]] = trunc i32 [[VCVT]] to i16
124
- // CHECK: ret i16 [[TRUNC]]
121
+ // CHECK: [[VCVT:%.*]] = call i16 @llvm.aarch64.neon.fcvtzu.i16.f16(half %a)
122
+ // CHECK: ret i16 [[VCVT]]
125
123
uint16_t test_vcvth_u16_f16 (float16_t a ) {
126
124
return vcvth_u16_f16 (a );
127
125
}
@@ -141,9 +139,8 @@ uint64_t test_vcvth_u64_f16 (float16_t a) {
141
139
}
142
140
143
141
// CHECK-LABEL: test_vcvtah_s16_f16
144
- // CHECK: [[FCVT:%.*]] = call i32 @llvm.aarch64.neon.fcvtas.i32.f16(half %a)
145
- // CHECK: [[RET:%.*]] = trunc i32 [[FCVT]] to i16
146
- // CHECK: ret i16 [[RET]]
142
+ // CHECK: [[FCVT:%.*]] = call i16 @llvm.aarch64.neon.fcvtas.i16.f16(half %a)
143
+ // CHECK: ret i16 [[FCVT]]
147
144
int16_t test_vcvtah_s16_f16 (float16_t a ) {
148
145
return vcvtah_s16_f16 (a );
149
146
}
@@ -163,9 +160,8 @@ int64_t test_vcvtah_s64_f16 (float16_t a) {
163
160
}
164
161
165
162
// CHECK-LABEL: test_vcvtah_u16_f16
166
- // CHECK: [[FCVT:%.*]] = call i32 @llvm.aarch64.neon.fcvtau.i32.f16(half %a)
167
- // CHECK: [[RET:%.*]] = trunc i32 [[FCVT]] to i16
168
- // CHECK: ret i16 [[RET]]
163
+ // CHECK: [[FCVT:%.*]] = call i16 @llvm.aarch64.neon.fcvtau.i16.f16(half %a)
164
+ // CHECK: ret i16 [[FCVT]]
169
165
uint16_t test_vcvtah_u16_f16 (float16_t a ) {
170
166
return vcvtah_u16_f16 (a );
171
167
}
@@ -185,9 +181,8 @@ uint64_t test_vcvtah_u64_f16 (float16_t a) {
185
181
}
186
182
187
183
// CHECK-LABEL: test_vcvtmh_s16_f16
188
- // CHECK: [[FCVT:%.*]] = call i32 @llvm.aarch64.neon.fcvtms.i32.f16(half %a)
189
- // CHECK: [[RET:%.*]] = trunc i32 [[FCVT]] to i16
190
- // CHECK: ret i16 [[RET]]
184
+ // CHECK: [[FCVT:%.*]] = call i16 @llvm.aarch64.neon.fcvtms.i16.f16(half %a)
185
+ // CHECK: ret i16 [[FCVT]]
191
186
int16_t test_vcvtmh_s16_f16 (float16_t a ) {
192
187
return vcvtmh_s16_f16 (a );
193
188
}
@@ -207,9 +202,8 @@ int64_t test_vcvtmh_s64_f16 (float16_t a) {
207
202
}
208
203
209
204
// CHECK-LABEL: test_vcvtmh_u16_f16
210
- // CHECK: [[FCVT:%.*]] = call i32 @llvm.aarch64.neon.fcvtmu.i32.f16(half %a)
211
- // CHECK: [[RET:%.*]] = trunc i32 [[FCVT]] to i16
212
- // CHECK: ret i16 [[RET]]
205
+ // CHECK: [[FCVT:%.*]] = call i16 @llvm.aarch64.neon.fcvtmu.i16.f16(half %a)
206
+ // CHECK: ret i16 [[FCVT]]
213
207
uint16_t test_vcvtmh_u16_f16 (float16_t a ) {
214
208
return vcvtmh_u16_f16 (a );
215
209
}
@@ -229,9 +223,8 @@ uint64_t test_vcvtmh_u64_f16 (float16_t a) {
229
223
}
230
224
231
225
// CHECK-LABEL: test_vcvtnh_s16_f16
232
- // CHECK: [[FCVT:%.*]] = call i32 @llvm.aarch64.neon.fcvtns.i32.f16(half %a)
233
- // CHECK: [[RET:%.*]] = trunc i32 [[FCVT]] to i16
234
- // CHECK: ret i16 [[RET]]
226
+ // CHECK: [[FCVT:%.*]] = call i16 @llvm.aarch64.neon.fcvtns.i16.f16(half %a)
227
+ // CHECK: ret i16 [[FCVT]]
235
228
int16_t test_vcvtnh_s16_f16 (float16_t a ) {
236
229
return vcvtnh_s16_f16 (a );
237
230
}
@@ -251,9 +244,8 @@ int64_t test_vcvtnh_s64_f16 (float16_t a) {
251
244
}
252
245
253
246
// CHECK-LABEL: test_vcvtnh_u16_f16
254
- // CHECK: [[FCVT:%.*]] = call i32 @llvm.aarch64.neon.fcvtnu.i32.f16(half %a)
255
- // CHECK: [[RET:%.*]] = trunc i32 [[FCVT]] to i16
256
- // CHECK: ret i16 [[RET]]
247
+ // CHECK: [[FCVT:%.*]] = call i16 @llvm.aarch64.neon.fcvtnu.i16.f16(half %a)
248
+ // CHECK: ret i16 [[FCVT]]
257
249
uint16_t test_vcvtnh_u16_f16 (float16_t a ) {
258
250
return vcvtnh_u16_f16 (a );
259
251
}
@@ -273,9 +265,8 @@ uint64_t test_vcvtnh_u64_f16 (float16_t a) {
273
265
}
274
266
275
267
// CHECK-LABEL: test_vcvtph_s16_f16
276
- // CHECK: [[FCVT:%.*]] = call i32 @llvm.aarch64.neon.fcvtps.i32.f16(half %a)
277
- // CHECK: [[RET:%.*]] = trunc i32 [[FCVT]] to i16
278
- // CHECK: ret i16 [[RET]]
268
+ // CHECK: [[FCVT:%.*]] = call i16 @llvm.aarch64.neon.fcvtps.i16.f16(half %a)
269
+ // CHECK: ret i16 [[FCVT]]
279
270
int16_t test_vcvtph_s16_f16 (float16_t a ) {
280
271
return vcvtph_s16_f16 (a );
281
272
}
@@ -295,9 +286,8 @@ int64_t test_vcvtph_s64_f16 (float16_t a) {
295
286
}
296
287
297
288
// CHECK-LABEL: test_vcvtph_u16_f16
298
- // CHECK: [[FCVT:%.*]] = call i32 @llvm.aarch64.neon.fcvtpu.i32.f16(half %a)
299
- // CHECK: [[RET:%.*]] = trunc i32 [[FCVT]] to i16
300
- // CHECK: ret i16 [[RET]]
289
+ // CHECK: [[FCVT:%.*]] = call i16 @llvm.aarch64.neon.fcvtpu.i16.f16(half %a)
290
+ // CHECK: ret i16 [[FCVT]]
301
291
uint16_t test_vcvtph_u16_f16 (float16_t a ) {
302
292
return vcvtph_u16_f16 (a );
303
293
}
0 commit comments