Don't create VBROADCAST nodes if any nodes use the chain result from the load. Fixes PR11900.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149478 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Craig Topper 2012-02-01 06:51:58 +00:00
parent 478eed85f9
commit a1902a18cd

View File

@ -4997,6 +4997,10 @@ static SDValue isVectorBroadcast(SDValue &Op, const X86Subtarget *Subtarget) {
if (!ISD::isNormalLoad(Ld.getNode()))
return SDValue();
// Reject loads that have uses of the chain result
if (Ld->hasAnyUseOfValue(1))
return SDValue();
bool Is256 = VT.getSizeInBits() == 256;
bool Is128 = VT.getSizeInBits() == 128;
unsigned ScalarSize = Ld.getValueType().getSizeInBits();