[llvm] 1f054d6 - AMDGPU/GlobalISel: Fix mapping and selection of llvm.amdgcn.div.fixup
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 24 12:37:53 PST 2019
Author: Matt Arsenault
Date: 2019-12-24T15:36:29-05:00
New Revision: 1f054d667e2768505b6f8a18715181ab6c5a0e13
URL: https://github.com/llvm/llvm-project/commit/1f054d667e2768505b6f8a18715181ab6c5a0e13
DIFF: https://github.com/llvm/llvm-project/commit/1f054d667e2768505b6f8a18715181ab6c5a0e13.diff
LOG: AMDGPU/GlobalISel: Fix mapping and selection of llvm.amdgcn.div.fixup
Added:
Modified:
llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td
llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td b/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td
index cf0ce5659951..7b95a5c88671 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td
+++ b/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td
@@ -244,7 +244,7 @@ def AMDGPUdiv_fmas : SDNode<"AMDGPUISD::DIV_FMAS", AMDGPUFmasOp,
// Single or double precision division fixup.
// Special case divide fixup and flags(src0 = Quotient, src1 =
// Denominator, src2 = Numerator).
-def AMDGPUdiv_fixup : SDNode<"AMDGPUISD::DIV_FIXUP", SDTFPTernaryOp>;
+def AMDGPUdiv_fixup_impl : SDNode<"AMDGPUISD::DIV_FIXUP", SDTFPTernaryOp>;
def AMDGPUfmad_ftz : SDNode<"AMDGPUISD::FMAD_FTZ", SDTFPTernaryOp>;
@@ -434,6 +434,10 @@ def AMDGPUfmed3 : PatFrags<(ops node:$src0, node:$src1, node:$src2),
[(int_amdgcn_fmed3 node:$src0, node:$src1, node:$src2),
(AMDGPUfmed3_impl node:$src0, node:$src1, node:$src2)]>;
+def AMDGPUdiv_fixup : PatFrags<(ops node:$src0, node:$src1, node:$src2),
+ [(int_amdgcn_div_fixup node:$src0, node:$src1, node:$src2),
+ (AMDGPUdiv_fixup_impl node:$src0, node:$src1, node:$src2)]>;
+
def AMDGPUffbh_i32 : PatFrags<(ops node:$src),
[(int_amdgcn_sffbh node:$src),
(AMDGPUffbh_i32_impl node:$src)]>;
diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
index 8d645609b4be..04b774beb0f7 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
@@ -2580,6 +2580,7 @@ AMDGPURegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
default:
return getInvalidInstructionMapping();
case Intrinsic::amdgcn_div_fmas:
+ case Intrinsic::amdgcn_div_fixup:
case Intrinsic::amdgcn_trig_preop:
case Intrinsic::amdgcn_sin:
case Intrinsic::amdgcn_cos:
More information about the llvm-commits
mailing list