@@ -6782,44 +6782,45 @@ def : Pat <(f64 (uint_to_fp (i32
67826782// Advanced SIMD three different-sized vector instructions.
67836783//===----------------------------------------------------------------------===//
67846784
6785- defm ADDHN : SIMDNarrowThreeVectorBHS<0,0b0100,"addhn", int_aarch64_neon_addhn>;
6786- defm SUBHN : SIMDNarrowThreeVectorBHS<0,0b0110,"subhn", int_aarch64_neon_subhn>;
6787- defm RADDHN : SIMDNarrowThreeVectorBHS<1,0b0100,"raddhn",int_aarch64_neon_raddhn>;
6788- defm RSUBHN : SIMDNarrowThreeVectorBHS<1,0b0110,"rsubhn",int_aarch64_neon_rsubhn>;
6785+ defm ADDHN : SIMDNarrowThreeVectorBHS<0,0b0100,"addhn", int_aarch64_neon_addhn>;
6786+ defm SUBHN : SIMDNarrowThreeVectorBHS<0,0b0110,"subhn", int_aarch64_neon_subhn>;
6787+ defm RADDHN : SIMDNarrowThreeVectorBHS<1,0b0100,"raddhn",int_aarch64_neon_raddhn>;
6788+ defm RSUBHN : SIMDNarrowThreeVectorBHS<1,0b0110,"rsubhn",int_aarch64_neon_rsubhn>;
67896789let isCommutable = 1 in
6790- defm PMULL : SIMDDifferentThreeVectorBD<0,0b1110,"pmull", AArch64pmull>;
6791- defm SABAL : SIMDLongThreeVectorTiedBHSabal<0,0b0101,"sabal", abds>;
6790+ defm PMULL : SIMDDifferentThreeVectorBD<0,0b1110,"pmull", AArch64pmull>;
6791+ defm SABAL : SIMDLongThreeVectorTiedBHS<0,0b0101,"sabal",
6792+ TriOpFrag<(add node:$LHS, (zext (abds node:$MHS, node:$RHS)))>>;
67926793defm SABDL : SIMDLongThreeVectorBHS<0, 0b0111, "sabdl",
67936794 BinOpFrag<(zext (abds node:$LHS, node:$RHS))>>;
67946795defm SADDL : SIMDLongThreeVectorBHS< 0, 0b0000, "saddl",
6795- BinOpFrag<(add (sext node:$LHS), (sext node:$RHS))>>;
6796+ BinOpFrag<(add (sext node:$LHS), (sext node:$RHS))>>;
67966797defm SADDW : SIMDWideThreeVectorBHS< 0, 0b0001, "saddw",
67976798 BinOpFrag<(add node:$LHS, (sext node:$RHS))>>;
67986799defm SMLAL : SIMDLongThreeVectorTiedBHS<0, 0b1000, "smlal",
6799- TriOpFrag<(add node:$LHS, (AArch64smull node:$MHS, node:$RHS))>>;
6800+ TriOpFrag<(add node:$LHS, (AArch64smull node:$MHS, node:$RHS))>>;
68006801defm SMLSL : SIMDLongThreeVectorTiedBHS<0, 0b1010, "smlsl",
6801- TriOpFrag<(sub node:$LHS, (AArch64smull node:$MHS, node:$RHS))>>;
6802+ TriOpFrag<(sub node:$LHS, (AArch64smull node:$MHS, node:$RHS))>>;
68026803defm SMULL : SIMDLongThreeVectorBHS<0, 0b1100, "smull", AArch64smull>;
68036804defm SQDMLAL : SIMDLongThreeVectorSQDMLXTiedHS<0, 0b1001, "sqdmlal", saddsat>;
68046805defm SQDMLSL : SIMDLongThreeVectorSQDMLXTiedHS<0, 0b1011, "sqdmlsl", ssubsat>;
6805- defm SQDMULL : SIMDLongThreeVectorHS<0, 0b1101, "sqdmull",
6806- int_aarch64_neon_sqdmull>;
6806+ defm SQDMULL : SIMDLongThreeVectorHS<0, 0b1101, "sqdmull", int_aarch64_neon_sqdmull>;
68076807let isCommutable = 0 in
68086808defm SSUBL : SIMDLongThreeVectorBHS<0, 0b0010, "ssubl",
68096809 BinOpFrag<(sub (sext node:$LHS), (sext node:$RHS))>>;
68106810defm SSUBW : SIMDWideThreeVectorBHS<0, 0b0011, "ssubw",
68116811 BinOpFrag<(sub node:$LHS, (sext node:$RHS))>>;
6812- defm UABAL : SIMDLongThreeVectorTiedBHSabal<1, 0b0101, "uabal", abdu>;
6812+ defm UABAL : SIMDLongThreeVectorTiedBHS<1, 0b0101, "uabal",
6813+ TriOpFrag<(add node:$LHS, (zext (abdu node:$MHS, node:$RHS)))>>;
68136814defm UABDL : SIMDLongThreeVectorBHS<1, 0b0111, "uabdl",
68146815 BinOpFrag<(zext (abdu node:$LHS, node:$RHS))>>;
68156816defm UADDL : SIMDLongThreeVectorBHS<1, 0b0000, "uaddl",
68166817 BinOpFrag<(add (zanyext node:$LHS), (zanyext node:$RHS))>>;
68176818defm UADDW : SIMDWideThreeVectorBHS<1, 0b0001, "uaddw",
68186819 BinOpFrag<(add node:$LHS, (zanyext node:$RHS))>>;
68196820defm UMLAL : SIMDLongThreeVectorTiedBHS<1, 0b1000, "umlal",
6820- TriOpFrag<(add node:$LHS, (AArch64umull node:$MHS, node:$RHS))>>;
6821+ TriOpFrag<(add node:$LHS, (AArch64umull node:$MHS, node:$RHS))>>;
68216822defm UMLSL : SIMDLongThreeVectorTiedBHS<1, 0b1010, "umlsl",
6822- TriOpFrag<(sub node:$LHS, (AArch64umull node:$MHS, node:$RHS))>>;
6823+ TriOpFrag<(sub node:$LHS, (AArch64umull node:$MHS, node:$RHS))>>;
68236824defm UMULL : SIMDLongThreeVectorBHS<1, 0b1100, "umull", AArch64umull>;
68246825let isCommutable = 0 in
68256826defm USUBL : SIMDLongThreeVectorBHS<1, 0b0010, "usubl",
0 commit comments