@@ -1388,14 +1388,15 @@ multiclass VOP3_Real_Base<GFXGen Gen, bits<10> op, string opName = NAME,
13881388 bit isSingle = 0> {
13891389 defvar ps = !cast<VOP_Pseudo>(opName#"_e64");
13901390 let IsSingle = !or(isSingle, ps.Pfl.IsSingle) in {
1391- if ps.Pfl.HasOpSel then
1392- def _e64#Gen.Suffix :
1393- VOP3_Real_Gen<ps, Gen>,
1394- VOP3OpSel_gfx11_gfx12<op, ps.Pfl>;
1395- if !not(ps.Pfl.HasOpSel) then
1396- def _e64#Gen.Suffix :
1397- VOP3_Real_Gen<ps, Gen>,
1398- VOP3e_gfx11_gfx12<op, ps.Pfl>;
1391+ if ps.Pfl.HasOpSel then {
1392+ def _e64#Gen.Suffix :
1393+ VOP3_Real_Gen<ps, Gen>,
1394+ VOP3OpSel_gfx11_gfx12<op, ps.Pfl>;
1395+ } else {
1396+ def _e64#Gen.Suffix :
1397+ VOP3_Real_Gen<ps, Gen>,
1398+ VOP3e_gfx11_gfx12<op, ps.Pfl>;
1399+ }
13991400 }
14001401}
14011402
@@ -1418,15 +1419,14 @@ multiclass VOP3_Real_with_name<GFXGen Gen, bits<10> op, string opName,
14181419 def _e64#Gen.Suffix :
14191420 VOP3_Real_Gen<ps, Gen>,
14201421 VOP3FP8OpSel_gfx11_gfx12<op, ps.Pfl>;
1422+ } else if ps.Pfl.HasOpSel then {
1423+ def _e64#Gen.Suffix :
1424+ VOP3_Real_Gen<ps, Gen>,
1425+ VOP3OpSel_gfx11_gfx12<op, ps.Pfl>;
14211426 } else {
1422- if ps.Pfl.HasOpSel then
1423- def _e64#Gen.Suffix :
1424- VOP3_Real_Gen<ps, Gen>,
1425- VOP3OpSel_gfx11_gfx12<op, ps.Pfl>;
1426- if !not(ps.Pfl.HasOpSel) then
1427- def _e64#Gen.Suffix :
1428- VOP3_Real_Gen<ps, Gen>,
1429- VOP3e_gfx11_gfx12<op, ps.Pfl>;
1427+ def _e64#Gen.Suffix :
1428+ VOP3_Real_Gen<ps, Gen>,
1429+ VOP3e_gfx11_gfx12<op, ps.Pfl>;
14301430 }
14311431 }
14321432 def Gen.Suffix#"_VOP3_alias" : MnemonicAlias<ps.Mnemonic, asmName>, Requires<[Gen.AssemblerPredicate]>, LetDummies;
0 commit comments