diff options
author | Robert Khasanov <rob.khasanov@gmail.com> | 2014-06-24 18:08:04 +0000 |
---|---|---|
committer | Robert Khasanov <rob.khasanov@gmail.com> | 2014-06-24 18:08:04 +0000 |
commit | 21c836823f9cb70da40c81354cb1df84c723507c (patch) | |
tree | 5de4b77edb06f2bda7208edb018660f22a6b32fc | |
parent | d40b970616b20d40a8fdfd03c48bb395cae8bc55 (diff) | |
download | bcm5719-llvm-21c836823f9cb70da40c81354cb1df84c723507c.tar.gz bcm5719-llvm-21c836823f9cb70da40c81354cb1df84c723507c.zip |
vpblend intrinsics combines as shifts intrinsics due to absence return stmt between them
Fix PR20088
Differential Revision: http://reviews.llvm.org/D4277
llvm-svn: 211617
-rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 2 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/pr20088.ll | 9 |
2 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index e3fd0ceae31..874257f2124 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -19188,6 +19188,8 @@ static SDValue PerformINTRINSIC_WO_CHAINCombine(SDNode *N, SelectionDAG &DAG, if (C->isAllOnesValue()) return Op1; } + + return SDValue(); } // Packed SSE2/AVX2 arithmetic shift immediate intrinsics. diff --git a/llvm/test/CodeGen/X86/pr20088.ll b/llvm/test/CodeGen/X86/pr20088.ll new file mode 100644 index 00000000000..d7aab7fcba4 --- /dev/null +++ b/llvm/test/CodeGen/X86/pr20088.ll @@ -0,0 +1,9 @@ +; RUN: llc < %s -mattr=+avx | FileCheck %s + +declare <16 x i8> @llvm.x86.sse41.pblendvb(<16 x i8>, <16 x i8>, <16 x i8>) + +define <16 x i8> @foo(<16 x i8> %x) { +; CHECK: vpblendvb + %res = call <16 x i8> @llvm.x86.sse41.pblendvb(<16 x i8> zeroinitializer, <16 x i8> <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>, <16 x i8> %x) + ret <16 x i8> %res; +} |