[Hexagon] Handle Call Operand vxi1 in Hexagon Backend (#128027) · llvm/llvm-project@6525b15 (original) (raw)

`@@ -65,6 +65,8 @@ def CC_Hexagon: CallingConv<[

`

65

65

` CCIfType<[i32],

`

66

66

` CCIfSplit<

`

67

67

` CCCustom<"CC_SkipOdd">>>,

`

``

68

`+

CCIfType<[v4i1], CCPromoteToType>,

`

``

69

`+

CCIfType<[v8i1], CCPromoteToType>,

`

68

70

``

69

71

` CCIfType<[i32,v2i16,v4i8],

`

70

72

` CCAssignToReg<[R0,R1,R2,R3,R4,R5]>>,

`

`@@ -111,6 +113,14 @@ class CCIfHvx128

`

111

113

``

112

114

`def CC_Hexagon_HVX: CallingConv<[

`

113

115

` // HVX 64-byte mode

`

``

116

+

``

117

`+

CCIfHvx64<

`

``

118

`+

CCIfType<[v16i1], CCPromoteToType>>,

`

``

119

`+

CCIfHvx64<

`

``

120

`+

CCIfType<[v32i1], CCPromoteToType>>,

`

``

121

`+

CCIfHvx64<

`

``

122

`+

CCIfType<[v64i1], CCPromoteToType>>,

`

``

123

+

114

124

` CCIfHvx64<

`

115

125

` CCIfType<[v16i32,v32i16,v64i8],

`

116

126

` CCAssignToReg<[V0,V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15]>>>,

`

`@@ -125,6 +135,14 @@ def CC_Hexagon_HVX: CallingConv<[

`

125

135

` CCAssignToStack<128,64>>>,

`

126

136

``

127

137

` // HVX 128-byte mode

`

``

138

+

``

139

`+

CCIfHvx128<

`

``

140

`+

CCIfType<[v32i1], CCPromoteToType>>,

`

``

141

`+

CCIfHvx128<

`

``

142

`+

CCIfType<[v64i1], CCPromoteToType>>,

`

``

143

`+

CCIfHvx128<

`

``

144

`+

CCIfType<[v128i1], CCPromoteToType>>,

`

``

145

+

128

146

` CCIfHvx128<

`

129

147

` CCIfType<[v32i32,v64i16,v128i8,v32f32,v64f16],

`

130

148

` CCAssignToReg<[V0,V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15]>>>,

`