@@ -127,92 +127,8 @@ class LiveRegOptimizer {
127127 return LK.first != TargetLoweringBase::TypeLegal;
128128 }
129129
130- // / Check if intrinsic natively operates on 8-bit or 16-bit
131- bool isNativeIntrinsic (Intrinsic::ID ID) {
132- switch (ID) {
133- case Intrinsic::amdgcn_dot4_f32_fp8_bf8:
134- case Intrinsic::amdgcn_dot4_f32_bf8_fp8:
135- case Intrinsic::amdgcn_dot4_f32_fp8_fp8:
136- case Intrinsic::amdgcn_dot4_f32_bf8_bf8:
137- case Intrinsic::amdgcn_mfma_i32_4x4x4i8:
138- case Intrinsic::amdgcn_mfma_i32_16x16x4i8:
139- case Intrinsic::amdgcn_mfma_i32_32x32x4i8:
140- case Intrinsic::amdgcn_mfma_i32_16x16x16i8:
141- case Intrinsic::amdgcn_mfma_i32_32x32x8i8:
142- case Intrinsic::amdgcn_mfma_i32_16x16x64_i8:
143- case Intrinsic::amdgcn_mfma_i32_32x32x32_i8:
144- case Intrinsic::amdgcn_mfma_i32_32x32x16_i8:
145- case Intrinsic::amdgcn_mfma_i32_16x16x32_i8:
146- case Intrinsic::amdgcn_mfma_f32_16x16x32_bf8_bf8:
147- case Intrinsic::amdgcn_mfma_f32_16x16x32_bf8_fp8:
148- case Intrinsic::amdgcn_mfma_f32_16x16x32_fp8_bf8:
149- case Intrinsic::amdgcn_mfma_f32_16x16x32_fp8_fp8:
150- case Intrinsic::amdgcn_mfma_f32_32x32x16_bf8_bf8:
151- case Intrinsic::amdgcn_mfma_f32_32x32x16_bf8_fp8:
152- case Intrinsic::amdgcn_mfma_f32_32x32x16_fp8_bf8:
153- case Intrinsic::amdgcn_mfma_f32_32x32x16_fp8_fp8:
154- case Intrinsic::amdgcn_smfmac_i32_16x16x64_i8:
155- case Intrinsic::amdgcn_smfmac_i32_32x32x32_i8:
156- case Intrinsic::amdgcn_smfmac_f32_16x16x64_bf8_bf8:
157- case Intrinsic::amdgcn_smfmac_f32_16x16x64_bf8_fp8:
158- case Intrinsic::amdgcn_smfmac_f32_16x16x64_fp8_bf8:
159- case Intrinsic::amdgcn_smfmac_f32_16x16x64_fp8_fp8:
160- case Intrinsic::amdgcn_smfmac_f32_32x32x32_bf8_bf8:
161- case Intrinsic::amdgcn_smfmac_f32_32x32x32_bf8_fp8:
162- case Intrinsic::amdgcn_smfmac_f32_32x32x32_fp8_bf8:
163- case Intrinsic::amdgcn_smfmac_f32_32x32x32_fp8_fp8:
164- case Intrinsic::amdgcn_smfmac_i32_16x16x128_i8:
165- case Intrinsic::amdgcn_smfmac_i32_32x32x64_i8:
166- case Intrinsic::amdgcn_smfmac_f32_16x16x128_bf8_bf8:
167- case Intrinsic::amdgcn_smfmac_f32_16x16x128_bf8_fp8:
168- case Intrinsic::amdgcn_smfmac_f32_16x16x128_fp8_bf8:
169- case Intrinsic::amdgcn_smfmac_f32_16x16x128_fp8_fp8:
170- case Intrinsic::amdgcn_smfmac_f32_32x32x64_bf8_bf8:
171- case Intrinsic::amdgcn_smfmac_f32_32x32x64_bf8_fp8:
172- case Intrinsic::amdgcn_smfmac_f32_32x32x64_fp8_bf8:
173- case Intrinsic::amdgcn_smfmac_f32_32x32x64_fp8_fp8:
174- case Intrinsic::amdgcn_wmma_f32_16x16x16_fp8_fp8:
175- case Intrinsic::amdgcn_wmma_f32_16x16x16_fp8_bf8:
176- case Intrinsic::amdgcn_wmma_f32_16x16x16_bf8_fp8:
177- case Intrinsic::amdgcn_wmma_f32_16x16x16_bf8_bf8:
178- case Intrinsic::amdgcn_swmmac_f32_16x16x32_fp8_fp8:
179- case Intrinsic::amdgcn_swmmac_f32_16x16x32_fp8_bf8:
180- case Intrinsic::amdgcn_swmmac_f32_16x16x32_bf8_fp8:
181- case Intrinsic::amdgcn_swmmac_f32_16x16x32_bf8_bf8:
182- case Intrinsic::amdgcn_wmma_i32_16x16x16_iu8:
183- case Intrinsic::amdgcn_wmma_i32_16x16x16_iu4:
184- case Intrinsic::amdgcn_wmma_i32_16x16x32_iu4:
185- case Intrinsic::amdgcn_swmmac_i32_16x16x32_iu8:
186- case Intrinsic::amdgcn_swmmac_i32_16x16x32_iu4:
187- case Intrinsic::amdgcn_swmmac_i32_16x16x64_iu4:
188- case Intrinsic::amdgcn_raw_buffer_store_format:
189- case Intrinsic::amdgcn_raw_buffer_store:
190- case Intrinsic::amdgcn_raw_ptr_buffer_store_format:
191- case Intrinsic::amdgcn_raw_ptr_buffer_store:
192- case Intrinsic::amdgcn_struct_buffer_store_format:
193- case Intrinsic::amdgcn_struct_buffer_store:
194- case Intrinsic::amdgcn_struct_ptr_buffer_store_format:
195- case Intrinsic::amdgcn_struct_ptr_buffer_store:
196- case Intrinsic::amdgcn_raw_tbuffer_store:
197- case Intrinsic::amdgcn_raw_ptr_tbuffer_store:
198- case Intrinsic::amdgcn_struct_ptr_tbuffer_store:
199- case Intrinsic::amdgcn_struct_tbuffer_store:
200- return true ;
201- default :
202- return false ;
203- }
204- }
205-
206130 bool isOpLegal (Instruction *I) {
207- if (const auto *Intr = dyn_cast<IntrinsicInst>(I)) {
208- Intrinsic::ID ID = Intr->getIntrinsicID ();
209- if (isNativeIntrinsic (ID))
210- return true ;
211- }
212- // Stores
213- if (isa<StoreInst>(I))
214- return true ;
215- return false ;
131+ return isa<StoreInst>(I) || isa<IntrinsicInst>(I);
216132 }
217133
218134 bool isCoercionProfitable (Instruction *II) {
0 commit comments