@@ -245,3 +245,85 @@ define i25 @low_masked_input(i25 %A) {
245
245
%C = fptoui float %B to i25
246
246
ret i25 %C
247
247
}
248
+
249
+ define i11 @s32_half_s11 (i32 %x ) {
250
+ ; CHECK-LABEL: @s32_half_s11(
251
+ ; CHECK-NEXT: [[R:%.*]] = trunc i32 [[X:%.*]] to i11
252
+ ; CHECK-NEXT: ret i11 [[R]]
253
+ ;
254
+ %h = sitofp i32 %x to half
255
+ %r = fptosi half %h to i11
256
+ ret i11 %r
257
+ }
258
+
259
+ define i11 @s32_half_u11 (i32 %x ) {
260
+ ; CHECK-LABEL: @s32_half_u11(
261
+ ; CHECK-NEXT: [[R:%.*]] = trunc i32 [[X:%.*]] to i11
262
+ ; CHECK-NEXT: ret i11 [[R]]
263
+ ;
264
+ %h = sitofp i32 %x to half
265
+ %r = fptoui half %h to i11
266
+ ret i11 %r
267
+ }
268
+
269
+ define i11 @u32_half_s11 (i32 %x ) {
270
+ ; CHECK-LABEL: @u32_half_s11(
271
+ ; CHECK-NEXT: [[R:%.*]] = trunc i32 [[X:%.*]] to i11
272
+ ; CHECK-NEXT: ret i11 [[R]]
273
+ ;
274
+ %h = uitofp i32 %x to half
275
+ %r = fptosi half %h to i11
276
+ ret i11 %r
277
+ }
278
+
279
+ define i11 @u32_half_u11 (i32 %x ) {
280
+ ; CHECK-LABEL: @u32_half_u11(
281
+ ; CHECK-NEXT: [[R:%.*]] = trunc i32 [[X:%.*]] to i11
282
+ ; CHECK-NEXT: ret i11 [[R]]
283
+ ;
284
+ %h = uitofp i32 %x to half
285
+ %r = fptoui half %h to i11
286
+ ret i11 %r
287
+ }
288
+
289
+ define i12 @s32_half_s12 (i32 %x ) {
290
+ ; CHECK-LABEL: @s32_half_s12(
291
+ ; CHECK-NEXT: [[R:%.*]] = trunc i32 [[X:%.*]] to i12
292
+ ; CHECK-NEXT: ret i12 [[R]]
293
+ ;
294
+ %h = sitofp i32 %x to half
295
+ %r = fptosi half %h to i12
296
+ ret i12 %r
297
+ }
298
+
299
+ define i12 @s32_half_u12 (i32 %x ) {
300
+ ; CHECK-LABEL: @s32_half_u12(
301
+ ; CHECK-NEXT: [[H:%.*]] = sitofp i32 [[X:%.*]] to half
302
+ ; CHECK-NEXT: [[R:%.*]] = fptoui half [[H]] to i12
303
+ ; CHECK-NEXT: ret i12 [[R]]
304
+ ;
305
+ %h = sitofp i32 %x to half
306
+ %r = fptoui half %h to i12
307
+ ret i12 %r
308
+ }
309
+
310
+ define i12 @u32_half_s12 (i32 %x ) {
311
+ ; CHECK-LABEL: @u32_half_s12(
312
+ ; CHECK-NEXT: [[R:%.*]] = trunc i32 [[X:%.*]] to i12
313
+ ; CHECK-NEXT: ret i12 [[R]]
314
+ ;
315
+ %h = uitofp i32 %x to half
316
+ %r = fptosi half %h to i12
317
+ ret i12 %r
318
+ }
319
+
320
+ define i12 @u32_half_u12 (i32 %x ) {
321
+ ; CHECK-LABEL: @u32_half_u12(
322
+ ; CHECK-NEXT: [[H:%.*]] = uitofp i32 [[X:%.*]] to half
323
+ ; CHECK-NEXT: [[R:%.*]] = fptoui half [[H]] to i12
324
+ ; CHECK-NEXT: ret i12 [[R]]
325
+ ;
326
+ %h = uitofp i32 %x to half
327
+ %r = fptoui half %h to i12
328
+ ret i12 %r
329
+ }
0 commit comments