diff options
author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2011-08-01 19:51:53 +0000 |
---|---|---|
committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2011-08-01 19:51:53 +0000 |
commit | 531f19f7677b2e0ab20caaa36c539d398c7b4aea (patch) | |
tree | c14c6490c8b6baa6345e65b2702e9bdaeda87c50 /test | |
parent | 8ead80db20ec05fd8e613084abfdb8714703fc5f (diff) | |
download | external_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.ll | 9 |
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 +} |