[llvm] r211617 - vpblend intrinsics combines as shifts intrinsics due to absence return stmt between them
Robert Khasanov
rob.khasanov at gmail.com
Tue Jun 24 11:08:04 PDT 2014
Author: rkhasanov
Date: Tue Jun 24 13:08:04 2014
New Revision: 211617
URL: http://llvm.org/viewvc/llvm-project?rev=211617&view=rev
Log:
vpblend intrinsics combines as shifts intrinsics due to absence return stmt between them
Fix PR20088
Differential Revision: http://reviews.llvm.org/D4277
Added:
llvm/trunk/test/CodeGen/X86/pr20088.ll
Modified:
llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=211617&r1=211616&r2=211617&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Tue Jun 24 13:08:04 2014
@@ -19188,6 +19188,8 @@ static SDValue PerformINTRINSIC_WO_CHAIN
if (C->isAllOnesValue())
return Op1;
}
+
+ return SDValue();
}
// Packed SSE2/AVX2 arithmetic shift immediate intrinsics.
Added: llvm/trunk/test/CodeGen/X86/pr20088.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr20088.ll?rev=211617&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/X86/pr20088.ll (added)
+++ llvm/trunk/test/CodeGen/X86/pr20088.ll Tue Jun 24 13:08:04 2014
@@ -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;
+}
More information about the llvm-commits
mailing list