forked from OSchip/llvm-project
A splat of a vector constant of all zero or all one is the vector constant.
llvm-svn: 29234
This commit is contained in:
parent
f98bc5288e
commit
4cf0238720
|
@ -2393,6 +2393,8 @@ X86TargetLowering::LowerVECTOR_SHUFFLE(SDOperand Op, SelectionDAG &DAG) {
|
|||
bool V2IsUndef = V2.getOpcode() == ISD::UNDEF;
|
||||
|
||||
if (isSplatMask(PermMask.Val)) {
|
||||
if (ISD::isBuildVectorAllZeros(V1.Val) || ISD::isBuildVectorAllOnes(V1.Val))
|
||||
return V1;
|
||||
if (NumElems <= 4) return Op;
|
||||
// Promote it to a v4i32 splat.
|
||||
return PromoteSplat(Op, DAG);
|
||||
|
|
Loading…
Reference in New Issue