[llvm] 8f82c02 - [AMDGPU] New RegBankSelect: Add rules for `G_PTRTOINT` and `G_INTTOPTR` (#142604)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 19 01:21:20 PDT 2025
Author: Pierre van Houtryve
Date: 2025-06-19T10:21:17+02:00
New Revision: 8f82c027c8969d965c43909da639e7790af19956
URL: https://github.com/llvm/llvm-project/commit/8f82c027c8969d965c43909da639e7790af19956
DIFF: https://github.com/llvm/llvm-project/commit/8f82c027c8969d965c43909da639e7790af19956.diff
LOG: [AMDGPU] New RegBankSelect: Add rules for `G_PTRTOINT` and `G_INTTOPTR` (#142604)
Added:
Modified:
llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-inttoptr.mir
llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-ptrtoint.mir
Removed:
################################################################################
diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
index 5402129e41887..db3f6bd360b3b 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
@@ -718,7 +718,21 @@ RegBankLegalizeRules::RegBankLegalizeRules(const GCNSubtarget &_ST,
.Any({{DivP1}, {{VgprP1}, {VgprP1, Vgpr64}}})
.Any({{DivP0}, {{VgprP0}, {VgprP0, Vgpr64}}});
- addRulesForGOpcs({G_INTTOPTR}).Any({{UniP4}, {{SgprP4}, {Sgpr64}}});
+ addRulesForGOpcs({G_INTTOPTR})
+ .Any({{UniPtr32}, {{SgprPtr32}, {Sgpr32}}})
+ .Any({{DivPtr32}, {{VgprPtr32}, {Vgpr32}}})
+ .Any({{UniPtr64}, {{SgprPtr64}, {Sgpr64}}})
+ .Any({{DivPtr64}, {{VgprPtr64}, {Vgpr64}}})
+ .Any({{UniPtr128}, {{SgprPtr128}, {Sgpr128}}})
+ .Any({{DivPtr128}, {{VgprPtr128}, {Vgpr128}}});
+
+ addRulesForGOpcs({G_PTRTOINT})
+ .Any({{UniS32}, {{Sgpr32}, {SgprPtr32}}})
+ .Any({{DivS32}, {{Vgpr32}, {VgprPtr32}}})
+ .Any({{UniS64}, {{Sgpr64}, {SgprPtr64}}})
+ .Any({{DivS64}, {{Vgpr64}, {VgprPtr64}}})
+ .Any({{UniS128}, {{Sgpr128}, {SgprPtr128}}})
+ .Any({{DivS128}, {{Vgpr128}, {VgprPtr128}}});
addRulesForGOpcs({G_ABS}, Standard).Uni(S16, {{Sgpr32Trunc}, {Sgpr32SExt}});
diff --git a/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-inttoptr.mir b/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-inttoptr.mir
index 42600d7d0dd7a..aec68e5a5b713 100644
--- a/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-inttoptr.mir
+++ b/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-inttoptr.mir
@@ -1,6 +1,7 @@
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=amdgcn -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-fast | FileCheck %s
# RUN: llc -mtriple=amdgcn -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-greedy | FileCheck %s
+# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass="amdgpu-regbankselect,amdgpu-regbanklegalize" %s -verify-machineinstrs -o - | FileCheck %s
---
name: inttoptr_s_p0
diff --git a/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-ptrtoint.mir b/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-ptrtoint.mir
index 9240c9f6df404..31cbae9ab47ff 100644
--- a/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-ptrtoint.mir
+++ b/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-ptrtoint.mir
@@ -1,6 +1,7 @@
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=amdgcn -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-fast | FileCheck %s
# RUN: llc -mtriple=amdgcn -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-greedy | FileCheck %s
+# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass="amdgpu-regbankselect,amdgpu-regbanklegalize" %s -verify-machineinstrs -o - | FileCheck %s
---
name: ptrtoint_s_p0
More information about the llvm-commits
mailing list