diff options
| author | Craig Topper <craig.topper@gmail.com> | 2012-01-10 08:23:59 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2012-01-10 08:23:59 +0000 |
| commit | 430f3f1bd6b89b4d4c1bcc8e7182f76b651f6963 (patch) | |
| tree | a333eb4a8e8c690d76d3873e59b99f4ad982a13a /llvm/test/CodeGen/X86/avx-vbroadcast.ll | |
| parent | b0c0f72ae6490702f19bd50aa009b675aa030f7d (diff) | |
| download | bcm5719-llvm-430f3f1bd6b89b4d4c1bcc8e7182f76b651f6963.tar.gz bcm5719-llvm-430f3f1bd6b89b4d4c1bcc8e7182f76b651f6963.zip | |
Fix a crash in AVX2 when trying to broadcast a double into a 128-bit vector. There is no vbroadcastsd xmm, but we do need to support 64-bit integers broadcasted into xmm. Also factor the AVX check into the isVectorBroadcast function. This makes more sense since the AVX2 check was already inside.
llvm-svn: 147844
Diffstat (limited to 'llvm/test/CodeGen/X86/avx-vbroadcast.ll')
| -rw-r--r-- | llvm/test/CodeGen/X86/avx-vbroadcast.ll | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/avx-vbroadcast.ll b/llvm/test/CodeGen/X86/avx-vbroadcast.ll index 8fbd02ac7d2..5bf9f4f2e2f 100644 --- a/llvm/test/CodeGen/X86/avx-vbroadcast.ll +++ b/llvm/test/CodeGen/X86/avx-vbroadcast.ll @@ -89,3 +89,13 @@ define <4 x i32> @H(<4 x i32> %a) { ret <4 x i32> %x } +; CHECK: _I +; CHECK-NOT: vbroadcastsd (% +; CHECK: ret +define <2 x double> @I(double* %ptr) nounwind uwtable readnone ssp { +entry: + %q = load double* %ptr, align 4 + %vecinit.i = insertelement <2 x double> undef, double %q, i32 0 + %vecinit2.i = insertelement <2 x double> %vecinit.i, double %q, i32 1 + ret <2 x double> %vecinit2.i +} |

