mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-28 04:33:05 +00:00
Fix a bug in the soft-float handling of FCOPYSIGN that Duncan noticed
when working on legalizetypes. Both legalizetypes and legalizeops now produce hte same code for CodeGen/ARM/fcopysign.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53435 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
70587ea813
commit
c563e1d8fe
@ -547,8 +547,11 @@ SDOperand ExpandFCOPYSIGNToBitwiseOps(SDNode *Node, MVT NVT,
|
||||
SignBit = DAG.getNode(ISD::SRL, SrcNVT, SignBit,
|
||||
DAG.getConstant(SizeDiff, TLI.getShiftAmountTy()));
|
||||
SignBit = DAG.getNode(ISD::TRUNCATE, NVT, SignBit);
|
||||
} else if (SizeDiff < 0)
|
||||
SignBit = DAG.getNode(ISD::SIGN_EXTEND, NVT, SignBit);
|
||||
} else if (SizeDiff < 0) {
|
||||
SignBit = DAG.getNode(ISD::ZERO_EXTEND, NVT, SignBit);
|
||||
SignBit = DAG.getNode(ISD::SHL, NVT, SignBit,
|
||||
DAG.getConstant(-SizeDiff, TLI.getShiftAmountTy()));
|
||||
}
|
||||
|
||||
// Clear the sign bit of first operand.
|
||||
SDOperand Mask2 = (VT == MVT::f64)
|
||||
|
Loading…
Reference in New Issue
Block a user