@@ -5811,12 +5811,12 @@ defm SMAXP : SIMDThreeSameVectorBHS<0,0b10100,"smaxp", int_aarch64_neon_smaxp
58115811defm SMAX : SIMDThreeSameVectorBHS<0,0b01100,"smax", smax>;
58125812defm SMINP : SIMDThreeSameVectorBHS<0,0b10101,"sminp", int_aarch64_neon_sminp>;
58135813defm SMIN : SIMDThreeSameVectorBHS<0,0b01101,"smin", smin>;
5814- defm SQADD : SIMDThreeSameVector<0,0b00001,"sqadd", int_aarch64_neon_sqadd >;
5814+ defm SQADD : SIMDThreeSameVector<0,0b00001,"sqadd", saddsat >;
58155815defm SQDMULH : SIMDThreeSameVectorHS<0,0b10110,"sqdmulh",int_aarch64_neon_sqdmulh>;
58165816defm SQRDMULH : SIMDThreeSameVectorHS<1,0b10110,"sqrdmulh",int_aarch64_neon_sqrdmulh>;
58175817defm SQRSHL : SIMDThreeSameVector<0,0b01011,"sqrshl", int_aarch64_neon_sqrshl>;
58185818defm SQSHL : SIMDThreeSameVector<0,0b01001,"sqshl", int_aarch64_neon_sqshl>;
5819- defm SQSUB : SIMDThreeSameVector<0,0b00101,"sqsub", int_aarch64_neon_sqsub >;
5819+ defm SQSUB : SIMDThreeSameVector<0,0b00101,"sqsub", ssubsat >;
58205820defm SRHADD : SIMDThreeSameVectorBHS<0,0b00010,"srhadd", avgceils>;
58215821defm SRSHL : SIMDThreeSameVector<0,0b01010,"srshl", int_aarch64_neon_srshl>;
58225822defm SSHL : SIMDThreeSameVector<0,0b01000,"sshl", int_aarch64_neon_sshl>;
@@ -5830,10 +5830,10 @@ defm UMAXP : SIMDThreeSameVectorBHS<1,0b10100,"umaxp", int_aarch64_neon_umaxp
58305830defm UMAX : SIMDThreeSameVectorBHS<1,0b01100,"umax", umax>;
58315831defm UMINP : SIMDThreeSameVectorBHS<1,0b10101,"uminp", int_aarch64_neon_uminp>;
58325832defm UMIN : SIMDThreeSameVectorBHS<1,0b01101,"umin", umin>;
5833- defm UQADD : SIMDThreeSameVector<1,0b00001,"uqadd", int_aarch64_neon_uqadd >;
5833+ defm UQADD : SIMDThreeSameVector<1,0b00001,"uqadd", uaddsat >;
58345834defm UQRSHL : SIMDThreeSameVector<1,0b01011,"uqrshl", int_aarch64_neon_uqrshl>;
58355835defm UQSHL : SIMDThreeSameVector<1,0b01001,"uqshl", int_aarch64_neon_uqshl>;
5836- defm UQSUB : SIMDThreeSameVector<1,0b00101,"uqsub", int_aarch64_neon_uqsub >;
5836+ defm UQSUB : SIMDThreeSameVector<1,0b00101,"uqsub", usubsat >;
58375837defm URHADD : SIMDThreeSameVectorBHS<1,0b00010,"urhadd", avgceilu>;
58385838defm URSHL : SIMDThreeSameVector<1,0b01010,"urshl", int_aarch64_neon_urshl>;
58395839defm USHL : SIMDThreeSameVector<1,0b01000,"ushl", int_aarch64_neon_ushl>;
@@ -5842,12 +5842,6 @@ defm SQRDMLAH : SIMDThreeSameVectorSQRDMLxHTiedHS<1,0b10000,"sqrdmlah",
58425842defm SQRDMLSH : SIMDThreeSameVectorSQRDMLxHTiedHS<1,0b10001,"sqrdmlsh",
58435843 int_aarch64_neon_sqrdmlsh>;
58445844
5845- // Extra saturate patterns, other than the intrinsics matches above
5846- defm : SIMDThreeSameVectorExtraPatterns<"SQADD", saddsat>;
5847- defm : SIMDThreeSameVectorExtraPatterns<"UQADD", uaddsat>;
5848- defm : SIMDThreeSameVectorExtraPatterns<"SQSUB", ssubsat>;
5849- defm : SIMDThreeSameVectorExtraPatterns<"UQSUB", usubsat>;
5850-
58515845defm AND : SIMDLogicalThreeVector<0, 0b00, "and", and>;
58525846defm BIC : SIMDLogicalThreeVector<0, 0b01, "bic",
58535847 BinOpFrag<(and node:$LHS, (vnot node:$RHS))> >;
@@ -6563,10 +6557,8 @@ defm SMLAL : SIMDLongThreeVectorTiedBHS<0, 0b1000, "smlal",
65636557defm SMLSL : SIMDLongThreeVectorTiedBHS<0, 0b1010, "smlsl",
65646558 TriOpFrag<(sub node:$LHS, (AArch64smull node:$MHS, node:$RHS))>>;
65656559defm SMULL : SIMDLongThreeVectorBHS<0, 0b1100, "smull", AArch64smull>;
6566- defm SQDMLAL : SIMDLongThreeVectorSQDMLXTiedHS<0, 0b1001, "sqdmlal",
6567- int_aarch64_neon_sqadd>;
6568- defm SQDMLSL : SIMDLongThreeVectorSQDMLXTiedHS<0, 0b1011, "sqdmlsl",
6569- int_aarch64_neon_sqsub>;
6560+ defm SQDMLAL : SIMDLongThreeVectorSQDMLXTiedHS<0, 0b1001, "sqdmlal", saddsat>;
6561+ defm SQDMLSL : SIMDLongThreeVectorSQDMLXTiedHS<0, 0b1011, "sqdmlsl", ssubsat>;
65706562defm SQDMULL : SIMDLongThreeVectorHS<0, 0b1101, "sqdmull",
65716563 int_aarch64_neon_sqdmull>;
65726564defm SSUBL : SIMDLongThreeVectorBHS<0, 0b0010, "ssubl",
@@ -8125,9 +8117,9 @@ defm SMLAL : SIMDVectorIndexedLongSDTied<0, 0b0010, "smlal",
81258117defm SMLSL : SIMDVectorIndexedLongSDTied<0, 0b0110, "smlsl",
81268118 TriOpFrag<(sub node:$LHS, (AArch64smull node:$MHS, node:$RHS))>>;
81278119defm SMULL : SIMDVectorIndexedLongSD<0, 0b1010, "smull", AArch64smull>;
8128- defm SQDMLAL : SIMDIndexedLongSQDMLXSDTied<0, 0b0011, "sqdmlal",
8120+ defm SQDMLAL : SIMDIndexedLongSQDMLXSDTied<0, 0b0011, "sqdmlal", saddsat,
81298121 int_aarch64_neon_sqadd>;
8130- defm SQDMLSL : SIMDIndexedLongSQDMLXSDTied<0, 0b0111, "sqdmlsl",
8122+ defm SQDMLSL : SIMDIndexedLongSQDMLXSDTied<0, 0b0111, "sqdmlsl", ssubsat,
81318123 int_aarch64_neon_sqsub>;
81328124defm SQRDMLAH : SIMDIndexedSQRDMLxHSDTied<1, 0b1101, "sqrdmlah",
81338125 int_aarch64_neon_sqrdmlah>;
0 commit comments