diff options
| author | Craig Topper <craig.topper@intel.com> | 2018-04-01 06:29:25 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2018-04-01 06:29:25 +0000 |
| commit | ae2de57db0f7cbc1c057d58808681049b2f6d8e7 (patch) | |
| tree | cca7ac669fef40156f8c02434b442b70f530cdaf /llvm/lib | |
| parent | 280f631350fc443419f9c2d3fcb5d1c5f66618b0 (diff) | |
| download | bcm5719-llvm-ae2de57db0f7cbc1c057d58808681049b2f6d8e7.tar.gz bcm5719-llvm-ae2de57db0f7cbc1c057d58808681049b2f6d8e7.zip | |
[X86] Allow i16 subtracts to be promoted if the load is on the LHS and its not being stored.
llvm-svn: 328928
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 5ee9ff85fdd..c39be22b927 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -38742,12 +38742,12 @@ bool X86TargetLowering::IsDesirableToPromoteOp(SDValue Op, EVT &PVT) const { case ISD::SUB: { SDValue N0 = Op.getOperand(0); SDValue N1 = Op.getOperand(1); - if (!Commute && MayFoldLoad(N1)) - return false; // Avoid disabling potential load folding opportunities. - if (MayFoldLoad(N0) && (!isa<ConstantSDNode>(N1) || MayFoldIntoStore(Op))) + if (MayFoldLoad(N1) && + (!Commute || !isa<ConstantSDNode>(N0) || MayFoldIntoStore(Op))) return false; - if (MayFoldLoad(N1) && (!isa<ConstantSDNode>(N0) || MayFoldIntoStore(Op))) + if (MayFoldLoad(N0) && + ((Commute && !isa<ConstantSDNode>(N1)) || MayFoldIntoStore(Op))) return false; } } |

