Index: lib/Target/X86/X86ISelLowering.cpp =================================================================== --- lib/Target/X86/X86ISelLowering.cpp +++ lib/Target/X86/X86ISelLowering.cpp @@ -19188,6 +19188,8 @@ if (C->isAllOnesValue()) return Op1; } + + return SDValue(); } // Packed SSE2/AVX2 arithmetic shift immediate intrinsics. Index: test/CodeGen/X86/pr20088.ll =================================================================== --- /dev/null +++ test/CodeGen/X86/pr20088.ll @@ -0,0 +1,12 @@ +; RUN: llc < %s -mattr=+avx | FileCheck %s + +; Function Attrs: nounwind readnone +declare <16 x i8> @llvm.x86.sse41.pblendvb(<16 x i8>, <16 x i8>, <16 x i8>) #0 + +; Function Attrs: nounwind +define <16 x i8> @foo(<16 x i8> %x) #1 { +; 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; +} +