[llvm] [AArch64] Mark [usp]mull as commutative (PR #152158)
Cullen Rhodes via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 7 03:57:31 PDT 2025
================
@@ -6806,7 +6807,11 @@ defm ADDHN : SIMDNarrowThreeVectorBHS<0,0b0100,"addhn", int_aarch64_neon_addhn>
defm SUBHN : SIMDNarrowThreeVectorBHS<0,0b0110,"subhn", int_aarch64_neon_subhn>;
defm RADDHN : SIMDNarrowThreeVectorBHS<1,0b0100,"raddhn",int_aarch64_neon_raddhn>;
defm RSUBHN : SIMDNarrowThreeVectorBHS<1,0b0110,"rsubhn",int_aarch64_neon_rsubhn>;
+let isCommutable = 1 in {
defm PMULL : SIMDDifferentThreeVectorBD<0,0b1110,"pmull", AArch64pmull>;
+defm SMULL : SIMDLongThreeVectorBHS<0, 0b1100, "smull", AArch64smull>;
+defm UMULL : SIMDLongThreeVectorBHS<1, 0b1100, "umull", AArch64umull>;
----------------
c-rhodes wrote:
> I suppose I could still implement your suggestion, but if it makes no difference I'd rather not, as I can envision someone mistake seeing isCommutable for e.g. SADDL as what is making that work when in fact it's not.
scratch that, this is for the instruction and is correct metadata regardless 👍
https://github.com/llvm/llvm-project/pull/152158
More information about the llvm-commits
mailing list