aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>2011-08-01 19:51:53 +0000
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>2011-08-01 19:51:53 +0000
commit531f19f7677b2e0ab20caaa36c539d398c7b4aea (patch)
treec14c6490c8b6baa6345e65b2702e9bdaeda87c50 /test
parent8ead80db20ec05fd8e613084abfdb8714703fc5f (diff)
downloadexternal_llvm-531f19f7677b2e0ab20caaa36c539d398c7b4aea.zip
external_llvm-531f19f7677b2e0ab20caaa36c539d398c7b4aea.tar.gz
external_llvm-531f19f7677b2e0ab20caaa36c539d398c7b4aea.tar.bz2
Since vectors with all ones can't be created with a 256-bit instruction,
avoid returning early for v8i32 types, which would only be valid for vector with all zeros. Also split the handling of zeros and ones into separate checking logic since they are handled differently. This fixes PR10547 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136642 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/X86/avx-256.ll9
1 files changed, 9 insertions, 0 deletions
diff --git a/test/CodeGen/X86/avx-256.ll b/test/CodeGen/X86/avx-256.ll
index 244bf98..337f142 100644
--- a/test/CodeGen/X86/avx-256.ll
+++ b/test/CodeGen/X86/avx-256.ll
@@ -24,3 +24,12 @@ allocas:
float>* %ptr2vec615, align 32
ret void
}
+
+; CHECK: vpcmpeqd
+; CHECK: vinsertf128 $1
+define void @ones2([0 x i32]* nocapture %RET, [0 x i32]* nocapture %aFOO) nounwind {
+allocas:
+ %ptr2vec615 = bitcast [0 x i32]* %RET to <8 x i32>*
+ store <8 x i32> <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>, <8 x i32>* %ptr2vec615, align 32
+ ret void
+}