mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
Propagate FP select_cc to dag inserters
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76026 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
55e96fb1c6
commit
da723d7d91
@ -101,8 +101,12 @@ SystemZTargetLowering::SystemZTargetLowering(SystemZTargetMachine &tm) :
|
||||
// FIXME: Can we lower these 2 efficiently?
|
||||
setOperationAction(ISD::SETCC, MVT::i32, Expand);
|
||||
setOperationAction(ISD::SETCC, MVT::i64, Expand);
|
||||
setOperationAction(ISD::SETCC, MVT::f32, Expand);
|
||||
setOperationAction(ISD::SETCC, MVT::f64, Expand);
|
||||
setOperationAction(ISD::SELECT, MVT::i32, Expand);
|
||||
setOperationAction(ISD::SELECT, MVT::i64, Expand);
|
||||
setOperationAction(ISD::SELECT, MVT::f32, Expand);
|
||||
setOperationAction(ISD::SELECT, MVT::f64, Expand);
|
||||
setOperationAction(ISD::SELECT_CC, MVT::i32, Custom);
|
||||
setOperationAction(ISD::SELECT_CC, MVT::i64, Custom);
|
||||
setOperationAction(ISD::SELECT_CC, MVT::f32, Custom);
|
||||
@ -692,8 +696,10 @@ SystemZTargetLowering::EmitInstrWithCustomInserter(MachineInstr *MI,
|
||||
MachineBasicBlock *BB) const {
|
||||
const SystemZInstrInfo &TII = *TM.getInstrInfo();
|
||||
DebugLoc dl = MI->getDebugLoc();
|
||||
assert((MI->getOpcode() == SystemZ::Select32 ||
|
||||
MI->getOpcode() == SystemZ::Select64) &&
|
||||
assert((MI->getOpcode() == SystemZ::Select32 ||
|
||||
MI->getOpcode() == SystemZ::SelectF32 ||
|
||||
MI->getOpcode() == SystemZ::Select64 ||
|
||||
MI->getOpcode() == SystemZ::SelectF64) &&
|
||||
"Unexpected instr type to insert");
|
||||
|
||||
// To "insert" a SELECT instruction, we actually have to insert the diamond
|
||||
|
@ -14,6 +14,17 @@
|
||||
|
||||
// FIXME: multiclassify!
|
||||
|
||||
let usesCustomDAGSchedInserter = 1 in {
|
||||
def SelectF32 : Pseudo<(outs FP32:$dst), (ins FP32:$src1, FP32:$src2, i8imm:$cc),
|
||||
"# SelectF32 PSEUDO",
|
||||
[(set FP32:$dst,
|
||||
(SystemZselect FP32:$src1, FP32:$src2, imm:$cc))]>;
|
||||
def SelectF64 : Pseudo<(outs FP64:$dst), (ins FP64:$src1, FP64:$src2, i8imm:$cc),
|
||||
"# SelectF64 PSEUDO",
|
||||
[(set FP64:$dst,
|
||||
(SystemZselect FP64:$src1, FP64:$src2, imm:$cc))]>;
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Move Instructions
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user