diff options
author | Richard Osborne <richard@xmos.com> | 2010-03-10 17:16:29 +0000 |
---|---|---|
committer | Richard Osborne <richard@xmos.com> | 2010-03-10 17:16:29 +0000 |
commit | c99b9b2193652f0441a679ce14cb9bfe65fcee1e (patch) | |
tree | e38803a4d9202216a5d88fa06ccc2efeaebb004b /llvm/lib/Target/XCore/XCoreISelLowering.cpp | |
parent | 5a457de4b20d38f62e5906b39a53b5591253f642 (diff) | |
download | bcm5719-llvm-c99b9b2193652f0441a679ce14cb9bfe65fcee1e.tar.gz bcm5719-llvm-c99b9b2193652f0441a679ce14cb9bfe65fcee1e.zip |
Fix checking of intermediates having one use in isADDADDMUL
llvm-svn: 98164
Diffstat (limited to 'llvm/lib/Target/XCore/XCoreISelLowering.cpp')
-rw-r--r-- | llvm/lib/Target/XCore/XCoreISelLowering.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/XCore/XCoreISelLowering.cpp b/llvm/lib/Target/XCore/XCoreISelLowering.cpp index 7dc0274f268..82492193d20 100644 --- a/llvm/lib/Target/XCore/XCoreISelLowering.cpp +++ b/llvm/lib/Target/XCore/XCoreISelLowering.cpp @@ -607,10 +607,11 @@ isADDADDMUL(SDValue Op, SDValue &Mul0, SDValue &Mul1, SDValue &Addend0, } else { return false; } + if (requireIntermediatesHaveOneUse && !AddOp.hasOneUse()) + return false; if (OtherOp.getOpcode() == ISD::MUL) { // add(add(a,b),mul(x,y)) - if (requireIntermediatesHaveOneUse && - (!OtherOp.hasOneUse() || !AddOp.hasOneUse())) + if (requireIntermediatesHaveOneUse && !OtherOp.hasOneUse()) return false; Mul0 = OtherOp.getOperand(0); Mul1 = OtherOp.getOperand(1); |