================ @@ -489,22 +489,61 @@ RegBankLegalizeRules::RegBankLegalizeRules(const GCNSubtarget &_ST, .Uni(B32, {{SgprB32}, {Sgpr32AExtBoolInReg, SgprB32, SgprB32}}); addRulesForGOpcs({G_ANYEXT}) + .Any({{UniS16, S1}, {{None}, {None}}}) // should be combined away .Any({{UniS32, S1}, {{None}, {None}}}) // should be combined away - .Any({{UniS32, S16}, {{Sgpr32}, {Sgpr16}}}); + .Any({{UniS64, S1}, {{None}, {None}}}) // should be combined away + .Any({{{DivS16, S1}}, {{Vgpr16}, {Vcc}, VccExtToSel}}) + .Any({{{DivS32, S1}}, {{Vgpr32}, {Vcc}, VccExtToSel}}) + .Any({{{DivS64, S1}}, {{Vgpr64}, {Vcc}, VccExtToSel}}) + .Any({{UniS64, S32}, {{Sgpr64}, {Sgpr32}, Ext32To64}}) ---------------- Pierre-vh wrote:
unrelated to the patch: These should be better documented, otherwise it's very hard to read what's actually happening here. I had to go find 2 different struct signatures before getting an idea of what these lines do. A small comment on top `RegBankLegalizeRules` that explains how many braces are needed and how the arguments are laid out could go a long way. I also feel like we could eliminate one or even two sets of braces by just making them arguments, further helping readability. It could just be an overload that's preferred when manually writing the rules, and keep the current signature if we're pushing rules using a loop or something? https://github.com/llvm/llvm-project/pull/132383 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits