diff options
Diffstat (limited to 'test/CodeGen/X86/avx512-vbroadcast.ll')
-rw-r--r-- | test/CodeGen/X86/avx512-vbroadcast.ll | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/test/CodeGen/X86/avx512-vbroadcast.ll b/test/CodeGen/X86/avx512-vbroadcast.ll index 4f07f94..6f89d6c 100644 --- a/test/CodeGen/X86/avx512-vbroadcast.ll +++ b/test/CodeGen/X86/avx512-vbroadcast.ll @@ -1,6 +1,6 @@ ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s -;CHECK: _inreg16xi32 +;CHECK-LABEL: _inreg16xi32: ;CHECK: vpbroadcastd {{.*}}, %zmm ;CHECK: ret define <16 x i32> @_inreg16xi32(i32 %a) { @@ -9,7 +9,7 @@ define <16 x i32> @_inreg16xi32(i32 %a) { ret <16 x i32> %c } -;CHECK: _inreg8xi64 +;CHECK-LABEL: _inreg8xi64: ;CHECK: vpbroadcastq {{.*}}, %zmm ;CHECK: ret define <8 x i64> @_inreg8xi64(i64 %a) { @@ -18,7 +18,7 @@ define <8 x i64> @_inreg8xi64(i64 %a) { ret <8 x i64> %c } -;CHECK: _inreg16xfloat +;CHECK-LABEL: _inreg16xfloat: ;CHECK: vbroadcastssz {{.*}}, %zmm ;CHECK: ret define <16 x float> @_inreg16xfloat(float %a) { @@ -27,7 +27,7 @@ define <16 x float> @_inreg16xfloat(float %a) { ret <16 x float> %c } -;CHECK: _inreg8xdouble +;CHECK-LABEL: _inreg8xdouble: ;CHECK: vbroadcastsdz {{.*}}, %zmm ;CHECK: ret define <8 x double> @_inreg8xdouble(double %a) { @@ -35,3 +35,19 @@ define <8 x double> @_inreg8xdouble(double %a) { %c = shufflevector <8 x double> %b, <8 x double> undef, <8 x i32> zeroinitializer ret <8 x double> %c } + +;CHECK-LABEL: _xmm16xi32 +;CHECK: vpbroadcastd +;CHECK: ret +define <16 x i32> @_xmm16xi32(<16 x i32> %a) { + %b = shufflevector <16 x i32> %a, <16 x i32> undef, <16 x i32> zeroinitializer + ret <16 x i32> %b +} + +;CHECK-LABEL: _xmm16xfloat +;CHECK: vbroadcastssz +;CHECK: ret +define <16 x float> @_xmm16xfloat(<16 x float> %a) { + %b = shufflevector <16 x float> %a, <16 x float> undef, <16 x i32> zeroinitializer + ret <16 x float> %b +} |