diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2013-09-19 13:28:20 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2013-09-19 13:28:20 +0000 |
commit | 530d09a22bd2f5c638ae1932bed560c8a46e399e (patch) | |
tree | b49b6a37a4d4d722ea724eeeef4864bf9718ffd6 /test/CodeGen | |
parent | c9554b13425a477a3e6e2fc4fec1cb75b9e68441 (diff) | |
download | external_llvm-530d09a22bd2f5c638ae1932bed560c8a46e399e.zip external_llvm-530d09a22bd2f5c638ae1932bed560c8a46e399e.tar.gz external_llvm-530d09a22bd2f5c638ae1932bed560c8a46e399e.tar.bz2 |
DAGCombiner: Don't fold vector muls with constants that look like a splat of a power of 2 but differ in bit width.
PR17283.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191000 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen')
-rw-r--r-- | test/CodeGen/X86/avx2-arith.ll | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test/CodeGen/X86/avx2-arith.ll b/test/CodeGen/X86/avx2-arith.ll index 997fa19..72bdd9d 100644 --- a/test/CodeGen/X86/avx2-arith.ll +++ b/test/CodeGen/X86/avx2-arith.ll @@ -148,3 +148,21 @@ define <8 x i32> @mul_const9(<8 x i32> %x) { %y = mul <8 x i32> %x, <i32 2, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0> ret <8 x i32> %y } + +; CHECK: mul_const10 +; CHECK: vpmulld +; CHECK: ret +define <4 x i32> @mul_const10(<4 x i32> %x) { + ; %x * 0x01010101 + %m = mul <4 x i32> %x, <i32 16843009, i32 16843009, i32 16843009, i32 16843009> + ret <4 x i32> %m +} + +; CHECK: mul_const11 +; CHECK: vpmulld +; CHECK: ret +define <4 x i32> @mul_const11(<4 x i32> %x) { + ; %x * 0x80808080 + %m = mul <4 x i32> %x, <i32 2155905152, i32 2155905152, i32 2155905152, i32 2155905152> + ret <4 x i32> %m +} |