[llvm] [AMDGPU] Allocate i1 argument to SGPRs (PR #72461)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 6 02:27:41 PST 2024


================
@@ -185,9 +185,12 @@ def CSR_AMDGPU_NoRegs : CalleeSavedRegs<(add)>;
 // Calling convention for leaf functions
 def CC_AMDGPU_Func : CallingConv<[
   CCIfByVal<CCPassByVal<4, 4>>,
-  CCIfType<[i1], CCPromoteToType<i32>>,
   CCIfType<[i8, i16], CCIfExtend<CCPromoteToType<i32>>>,
 
+  CCIfType<[i1] , CCCustom<"CC_AMDGPU_Custom_I1">>,
+
+  CCIfType<[i1], CCPromoteToType<i32>>,
----------------
arsenm wrote:

No, inreg is changing the behavior of i1. The register decision is not a function of how many arguments are used.

What I want is "i1" -> SGPR pair.  "i1 inreg" -> promoted to 32-bit SGPR 


https://github.com/llvm/llvm-project/pull/72461


More information about the llvm-commits mailing list