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:
parent
2c57f7285e
commit
2ffa288a23
@ -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));
|
||||||
|
@ -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
|
||||||
|
@ -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 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user