@@ -200,6 +200,19 @@ defm V_DIV_FMAS_F64 : VOP3Inst_Pseudo_Wrapper <"v_div_fmas_f64", VOP_F64_F64_F6
200200
201201} // End isCommutable = 1
202202
203+ let True16Predicate = UseFakeTrue16Insts in
204+ multiclass int_amdgcn_alignbyte_fake16<string inst_name> {
205+ defvar inst = !cast<VOP_Pseudo>(inst_name#"_fake16_e64");
206+ def : GCNPat <
207+ (i32 (int_amdgcn_alignbyte (i32 (VOP3OpSelMods i32:$src0, i32:$src0_modifiers)),
208+ (i32 (VOP3OpSelMods i32:$src1, i32:$src1_modifiers)),
209+ (i32 (VOP3OpSelMods i32:$src2, i32:$src2_modifiers)))),
210+ (inst i32:$src0_mods, VSrc_b32:$src0,
211+ i32:$src1_mods, VSrc_b32:$src1,
212+ 0, VGPR_32:$src2)
213+ >;
214+ }
215+
203216let isReMaterializable = 1 in {
204217let mayRaiseFPException = 0 in {
205218defm V_CUBEID_F32 : VOP3Inst <"v_cubeid_f32", VOP3_Profile<VOP_F32_F32_F32_F32>, int_amdgcn_cubeid>;
@@ -212,11 +225,14 @@ defm V_BFE_U32 : VOP3Inst <"v_bfe_u32", VOP3_Profile<VOP_I32_I32_I32_I32>, AMDGP
212225defm V_BFE_I32 : VOP3Inst <"v_bfe_i32", VOP3_Profile<VOP_I32_I32_I32_I32>, AMDGPUbfe_i32>;
213226defm V_BFI_B32 : VOP3Inst <"v_bfi_b32", VOP3_Profile<VOP_I32_I32_I32_I32>, AMDGPUbfi>;
214227defm V_ALIGNBIT_B32 : VOP3Inst <"v_alignbit_b32", VOP3_Profile<VOP_I32_I32_I32_I32>, fshr>;
215- defm V_ALIGNBYTE_B32 : VOP3Inst_t16_with_profiles <"v_alignbyte_b32",
216- VOP3_Profile<VOP_I32_I32_I32_I32>,
217- VOP3_Profile_True16<VOP_I32_I32_I32_I16, VOP3_OPSEL>,
218- VOP3_Profile_Fake16<VOP_I32_I32_I32_I16, VOP3_OPSEL>,
219- int_amdgcn_alignbyte>;
228+
229+ let True16Predicate = NotHasTrue16BitInsts in
230+ defm V_ALIGNBYTE_B32 : VOP3Inst <"v_alignbyte_b32", VOP3_Profile<VOP_I32_I32_I32_I32>, int_amdgcn_alignbyte>;
231+ let True16Predicate = UseRealTrue16Insts in
232+ defm V_ALIGNBYTE_B32_t16 : VOP3Inst <"v_alignbyte_b32_t16", VOP3_Profile_True16<VOP_I32_I32_I32_I16, VOP3_OPSEL>>;
233+ let True16Predicate = UseFakeTrue16Insts in {
234+ defm V_ALIGNBYTE_B32_fake16 : VOP3Inst <"v_alignbyte_b32_fake16", VOP3_Profile_Fake16<VOP_I32_I32_I32_I16, VOP3_OPSEL>>;
235+ }
220236
221237// XXX - No FPException seems suspect but manual doesn't say it does
222238let mayRaiseFPException = 0 in {
0 commit comments