From: Robert Khasanov Date: Tue, 24 Jun 2014 18:08:04 +0000 (+0000) Subject: vpblend intrinsics combines as shifts intrinsics due to absence return stmt between... X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=031ad1b930104d89494c7d76e20bfabc6901fabf;hp=a91ff54e43ae58e4005b3dd37003fee13313576c vpblend intrinsics combines as shifts intrinsics due to absence return stmt between them Fix PR20088 Differential Revision: http://reviews.llvm.org/D4277 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211617 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index e3fd0ceae31..874257f2124 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/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/test/CodeGen/X86/pr20088.ll b/test/CodeGen/X86/pr20088.ll new file mode 100644 index 00000000000..d7aab7fcba4 --- /dev/null +++ b/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> , <16 x i8> %x) + ret <16 x i8> %res; +}