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
This commit is contained in:
Robert Khasanov 2014-06-24 18:08:04 +00:00
parent a91ff54e43
commit 031ad1b930
2 changed files with 11 additions and 0 deletions

View File

@ -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.

View File

@ -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;
}