@@ -402,3 +402,25 @@ entry:
402
402
%1 = shufflevector <8 x bfloat> %0 , <8 x bfloat> undef , <16 x i32 > zeroinitializer
403
403
ret <16 x bfloat> %1
404
404
}
405
+
406
+ define <16 x i32 > @pr83358 () {
407
+ ; X86-LABEL: pr83358:
408
+ ; X86: # %bb.0:
409
+ ; X86-NEXT: vcvtneps2bf16y {{\.?LCPI[0-9]+_[0-9]+}}, %xmm0 # encoding: [0x62,0xf2,0x7e,0x28,0x72,0x05,A,A,A,A]
410
+ ; X86-NEXT: # fixup A - offset: 6, value: {{\.?LCPI[0-9]+_[0-9]+}}, kind: FK_Data_4
411
+ ; X86-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe3,0x7d,0x18,0xc0,0x01]
412
+ ; X86-NEXT: vinsertf64x4 $1, %ymm0, %zmm0, %zmm0 # encoding: [0x62,0xf3,0xfd,0x48,0x1a,0xc0,0x01]
413
+ ; X86-NEXT: retl # encoding: [0xc3]
414
+ ;
415
+ ; X64-LABEL: pr83358:
416
+ ; X64: # %bb.0:
417
+ ; X64-NEXT: vcvtneps2bf16y {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0 # encoding: [0x62,0xf2,0x7e,0x28,0x72,0x05,A,A,A,A]
418
+ ; X64-NEXT: # fixup A - offset: 6, value: {{\.?LCPI[0-9]+_[0-9]+}}-4, kind: reloc_riprel_4byte
419
+ ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe3,0x7d,0x18,0xc0,0x01]
420
+ ; X64-NEXT: vinsertf64x4 $1, %ymm0, %zmm0, %zmm0 # encoding: [0x62,0xf3,0xfd,0x48,0x1a,0xc0,0x01]
421
+ ; X64-NEXT: retq # encoding: [0xc3]
422
+ %1 = call <8 x bfloat> @llvm.x86.avx512bf16.cvtneps2bf16.256 (<8 x float > <float 1 .000000e+00 , float 2 .000000e+00 , float 3 .000000e+00 , float 4 .000000e+00 , float 5 .000000e+00 , float 6 .000000e+00 , float 7 .000000e+00 , float 8 .000000e+00 >)
423
+ %2 = bitcast <8 x bfloat> %1 to <4 x i32 >
424
+ %3 = shufflevector <4 x i32 > %2 , <4 x i32 > undef , <16 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 0 , i32 1 , i32 2 , i32 3 , i32 0 , i32 1 , i32 2 , i32 3 , i32 0 , i32 1 , i32 2 , i32 3 >
425
+ ret <16 x i32 > %3
426
+ }
0 commit comments