AMDGPU: Promote signext/zeroext i16 shader returns
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Mon, 12 Jul 2021 16:58:56 +0000 (12:58 -0400)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Tue, 13 Jul 2021 15:04:51 +0000 (11:04 -0400)
This makes them consistent with all the other return convention
handling. If we don't do this, we lose the sext/zext flag if treated
as a full assignment, which complicates a future GlobalISel patch.

llvm/lib/Target/AMDGPU/AMDGPUCallingConv.td

index 43cb4bf..90b5239 100644 (file)
@@ -107,6 +107,7 @@ def CC_SI_SHADER : CallingConv<[
 ]>;
 
 def RetCC_SI_Shader : CallingConv<[
+  CCIfType<[i1, i16], CCIfExtend<CCPromoteToType<i32>>>,
   CCIfType<[i32, i16] , CCAssignToReg<[
     SGPR0, SGPR1, SGPR2, SGPR3, SGPR4, SGPR5, SGPR6, SGPR7,
     SGPR8, SGPR9, SGPR10, SGPR11, SGPR12, SGPR13, SGPR14, SGPR15,