From 532a5c7dc66dc6b24c0ed24f2fe58fd249a00c5a Mon Sep 17 00:00:00 2001 From: Matt Arsenault Date: Tue, 30 Sep 2014 19:49:43 +0000 Subject: [PATCH] R600/SI: Update VOP3b to not include obsolete operands abs / neg are now part of the srcN_modifiers operands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218691 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/R600/AMDGPUISelDAGToDAG.cpp | 17 +++++++++-------- lib/Target/R600/SIInstrInfo.cpp | 6 ++---- lib/Target/R600/SIInstrInfo.td | 8 +++++--- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/lib/Target/R600/AMDGPUISelDAGToDAG.cpp b/lib/Target/R600/AMDGPUISelDAGToDAG.cpp index b598ac84513..32592129984 100644 --- a/lib/Target/R600/AMDGPUISelDAGToDAG.cpp +++ b/lib/Target/R600/AMDGPUISelDAGToDAG.cpp @@ -736,15 +736,16 @@ SDNode *AMDGPUDAGToDAGISel::SelectDIV_SCALE(SDNode *N) { = (VT == MVT::f64) ? AMDGPU::V_DIV_SCALE_F64 : AMDGPU::V_DIV_SCALE_F32; const SDValue Zero = CurDAG->getTargetConstant(0, MVT::i32); - + const SDValue False = CurDAG->getTargetConstant(0, MVT::i1); SDValue Ops[] = { - N->getOperand(0), - N->getOperand(1), - N->getOperand(2), - Zero, - Zero, - Zero, - Zero + Zero, // src0_modifiers + N->getOperand(0), // src0 + Zero, // src1_modifiers + N->getOperand(1), // src1 + Zero, // src2_modifiers + N->getOperand(2), // src2 + False, // clamp + Zero // omod }; return CurDAG->SelectNodeTo(N, Opc, VT, MVT::i1, Ops); diff --git a/lib/Target/R600/SIInstrInfo.cpp b/lib/Target/R600/SIInstrInfo.cpp index 1917a58107e..af2177a6e76 100644 --- a/lib/Target/R600/SIInstrInfo.cpp +++ b/lib/Target/R600/SIInstrInfo.cpp @@ -711,8 +711,6 @@ MachineInstr *SIInstrInfo::commuteInstruction(MachineInstr *MI, } // XXX: Commute VOP3 instructions with abs and neg set . - const MachineOperand *Abs = getNamedOperand(*MI, AMDGPU::OpName::abs); - const MachineOperand *Neg = getNamedOperand(*MI, AMDGPU::OpName::neg); const MachineOperand *Src0Mods = getNamedOperand(*MI, AMDGPU::OpName::src0_modifiers); const MachineOperand *Src1Mods = getNamedOperand(*MI, @@ -720,8 +718,8 @@ MachineInstr *SIInstrInfo::commuteInstruction(MachineInstr *MI, const MachineOperand *Src2Mods = getNamedOperand(*MI, AMDGPU::OpName::src2_modifiers); - if ((Abs && Abs->getImm()) || (Neg && Neg->getImm()) || - (Src0Mods && Src0Mods->getImm()) || (Src1Mods && Src1Mods->getImm()) || + if ((Src0Mods && Src0Mods->getImm()) || + (Src1Mods && Src1Mods->getImm()) || (Src2Mods && Src2Mods->getImm())) return nullptr; diff --git a/lib/Target/R600/SIInstrInfo.td b/lib/Target/R600/SIInstrInfo.td index cf45b30c0b5..f2c13079325 100644 --- a/lib/Target/R600/SIInstrInfo.td +++ b/lib/Target/R600/SIInstrInfo.td @@ -792,9 +792,11 @@ multiclass VOP3b_Helper op, RegisterClass vrc, RegisterClass arc, string opName, list pattern> : VOP3b_2_m < op, (outs vrc:$dst0, SReg_64:$dst1), - (ins arc:$src0, arc:$src1, arc:$src2, - InstFlag:$abs, InstFlag:$clamp, InstFlag:$omod, InstFlag:$neg), - opName#" $dst0, $dst1, $src0, $src1, $src2, $abs, $clamp, $omod, $neg", pattern, + (ins InputModsNoDefault:$src0_modifiers, arc:$src0, + InputModsNoDefault:$src1_modifiers, arc:$src1, + InputModsNoDefault:$src2_modifiers, arc:$src2, + i32imm:$clamp, i32imm:$omod), + opName#" $dst0, $dst1, $src0_modifiers, $src1_modifiers, $src2_modifiers, $clamp, $omod", pattern, opName, opName, 1, 1 >; -- 2.11.0