aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorElena Demikhovsky <elena.demikhovsky@intel.com>2012-01-03 11:59:04 +0000
committerElena Demikhovsky <elena.demikhovsky@intel.com>2012-01-03 11:59:04 +0000
commitce58a03587ca46d9c9fe48e2bf433bcd57bb2b3a (patch)
tree87d867b13b453f0ed68161f6392ad35f4ed52782 /test
parent0f8cd56bfdd32af4edb253654db02fb3143b25a8 (diff)
downloadexternal_llvm-ce58a03587ca46d9c9fe48e2bf433bcd57bb2b3a.zip
external_llvm-ce58a03587ca46d9c9fe48e2bf433bcd57bb2b3a.tar.gz
external_llvm-ce58a03587ca46d9c9fe48e2bf433bcd57bb2b3a.tar.bz2
Fixed a bug in SelectionDAG.cpp.
The failure seen on win32, when i64 type is illegal. It happens on stage of conversion VECTOR_SHUFFLE to BUILD_VECTOR. The failure message is: llc: SelectionDAG.cpp:784: void VerifyNodeCommon(llvm::SDNode*): Assertion `(I->getValueType() == EltVT || (EltVT.isInteger() && I->getValueType().isInteger() && EltVT.bitsLE(I->getValueType()))) && "Wrong operand type!"' failed. I added a special test that checks vector shuffle on win32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147445 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rwxr-xr-xtest/CodeGen/X86/avx-shuffle-x86_32.ll8
1 files changed, 8 insertions, 0 deletions
diff --git a/test/CodeGen/X86/avx-shuffle-x86_32.ll b/test/CodeGen/X86/avx-shuffle-x86_32.ll
new file mode 100755
index 0000000..1750583
--- /dev/null
+++ b/test/CodeGen/X86/avx-shuffle-x86_32.ll
@@ -0,0 +1,8 @@
+; RUN: llc < %s -mtriple=i686-pc-win32 -mcpu=corei7-avx -mattr=+avx | FileCheck %s
+
+define <4 x i64> @test1(<4 x i64> %a) nounwind {
+ %b = shufflevector <4 x i64> %a, <4 x i64> undef, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
+ ret <4 x i64>%b
+ ; CHECK test1:
+ ; CHECK: vinsertf128
+ }