diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/avx512-intrinsics-fast-isel.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/avx512-intrinsics-fast-isel.ll | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/avx512-intrinsics-fast-isel.ll b/llvm/test/CodeGen/X86/avx512-intrinsics-fast-isel.ll index 1a000fbae8b..e8661222d56 100644 --- a/llvm/test/CodeGen/X86/avx512-intrinsics-fast-isel.ll +++ b/llvm/test/CodeGen/X86/avx512-intrinsics-fast-isel.ll @@ -1960,5 +1960,27 @@ define <8 x i64> @test_mm512_mask_mul_epu32(i16 zeroext %__k, <8 x i64> %__A, <8 ret <8 x i64> %tmp4 } +define <8 x double> @test_mm512_set1_epi8(i8 signext %d) nounwind { +; X32-LABEL: test_mm512_set1_epi8: +; X32: # %bb.0: # %entry +; X32-NEXT: movb {{[0-9]+}}(%esp), %al +; X32-NEXT: vmovd %eax, %xmm0 +; X32-NEXT: vpbroadcastb %xmm0, %ymm0 +; X32-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0 +; X32-NEXT: retl +; +; X64-LABEL: test_mm512_set1_epi8: +; X64: # %bb.0: # %entry +; X64-NEXT: vmovd %edi, %xmm0 +; X64-NEXT: vpbroadcastb %xmm0, %ymm0 +; X64-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0 +; X64-NEXT: retq +entry: + %vecinit.i = insertelement <64 x i8> undef, i8 %d, i32 0 + %vecinit63.i = shufflevector <64 x i8> %vecinit.i, <64 x i8> undef, <64 x i32> zeroinitializer + %0 = bitcast <64 x i8> %vecinit63.i to <8 x double> + ret <8 x double> %0 +} + !0 = !{i32 1} |