[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