1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-02-01 05:01:59 +01:00

Add VRRC select support

llvm-svn: 27543
This commit is contained in:
Chris Lattner 2006-04-08 22:45:08 +00:00
parent 2c57f7285e
commit 2ffa288a23
3 changed files with 8 additions and 2 deletions

View File

@ -1219,8 +1219,11 @@ void PPCDAGToDAGISel::Select(SDOperand &Result, SDOperand Op) {
SelectCCOp = PPC::SELECT_CC_Int; SelectCCOp = PPC::SELECT_CC_Int;
else if (N->getValueType(0) == MVT::f32) else if (N->getValueType(0) == MVT::f32)
SelectCCOp = PPC::SELECT_CC_F4; SelectCCOp = PPC::SELECT_CC_F4;
else else if (N->getValueType(0) == MVT::f64)
SelectCCOp = PPC::SELECT_CC_F8; SelectCCOp = PPC::SELECT_CC_F8;
else
SelectCCOp = PPC::SELECT_CC_VRRC;
SDOperand N2, N3; SDOperand N2, N3;
Select(N2, N->getOperand(2)); Select(N2, N->getOperand(2));
Select(N3, N->getOperand(3)); Select(N3, N->getOperand(3));

View File

@ -1484,7 +1484,8 @@ PPCTargetLowering::InsertAtEndOfBasicBlock(MachineInstr *MI,
MachineBasicBlock *BB) { MachineBasicBlock *BB) {
assert((MI->getOpcode() == PPC::SELECT_CC_Int || assert((MI->getOpcode() == PPC::SELECT_CC_Int ||
MI->getOpcode() == PPC::SELECT_CC_F4 || MI->getOpcode() == PPC::SELECT_CC_F4 ||
MI->getOpcode() == PPC::SELECT_CC_F8) && MI->getOpcode() == PPC::SELECT_CC_F8 ||
MI->getOpcode() == PPC::SELECT_CC_VRRC) &&
"Unexpected instr type to insert"); "Unexpected instr type to insert");
// To "insert" a SELECT_CC instruction, we actually have to insert the diamond // To "insert" a SELECT_CC instruction, we actually have to insert the diamond

View File

@ -247,6 +247,8 @@ let usesCustomDAGSchedInserter = 1, // Expanded by the scheduler.
i32imm:$BROPC), "; SELECT_CC PSEUDO!", []>; i32imm:$BROPC), "; SELECT_CC PSEUDO!", []>;
def SELECT_CC_F8 : Pseudo<(ops F8RC:$dst, CRRC:$cond, F8RC:$T, F8RC:$F, def SELECT_CC_F8 : Pseudo<(ops F8RC:$dst, CRRC:$cond, F8RC:$T, F8RC:$F,
i32imm:$BROPC), "; SELECT_CC PSEUDO!", []>; i32imm:$BROPC), "; SELECT_CC PSEUDO!", []>;
def SELECT_CC_VRRC: Pseudo<(ops VRRC:$dst, CRRC:$cond, VRRC:$T, VRRC:$F,
i32imm:$BROPC), "; SELECT_CC PSEUDO!", []>;
} }
let isTerminator = 1, noResults = 1, PPC970_Unit = 7 in { let isTerminator = 1, noResults = 1, PPC970_Unit = 7 in {