This is a much more direct way to solve the issue than just giving extra priority.
llvm-svn: 336639
}
}
+ // Prevent folding a load if this can implemented with an insert_subreg.
+ if (Root->getOpcode() == ISD::INSERT_SUBVECTOR &&
+ Root->getOperand(0).isUndef() && isNullConstant(Root->getOperand(2)))
+ return false;
+
return true;
}
def : Pat<(subVT (extract_subvector (VT RC:$src), (iPTR 0))),
(subVT (EXTRACT_SUBREG RC:$src, subIdx))>;
- let AddedComplexity = 25 in // to give priority over vinsertf128rm
def : Pat<(VT (insert_subvector undef, subRC:$src, (iPTR 0))),
(VT (INSERT_SUBREG (IMPLICIT_DEF), subRC:$src, subIdx))>;
}