@@ -5968,12 +5968,12 @@ defm SMAXP : SIMDThreeSameVectorBHS<0,0b10100,"smaxp", int_aarch64_neon_smaxp
59685968defm SMAX : SIMDThreeSameVectorBHS<0,0b01100,"smax", smax>;
59695969defm SMINP : SIMDThreeSameVectorBHS<0,0b10101,"sminp", int_aarch64_neon_sminp>;
59705970defm SMIN : SIMDThreeSameVectorBHS<0,0b01101,"smin", smin>;
5971- defm SQADD : SIMDThreeSameVector<0,0b00001,"sqadd", int_aarch64_neon_sqadd >;
5971+ defm SQADD : SIMDThreeSameVector<0,0b00001,"sqadd", saddsat >;
59725972defm SQDMULH : SIMDThreeSameVectorHS<0,0b10110,"sqdmulh",int_aarch64_neon_sqdmulh>;
59735973defm SQRDMULH : SIMDThreeSameVectorHS<1,0b10110,"sqrdmulh",int_aarch64_neon_sqrdmulh>;
59745974defm SQRSHL : SIMDThreeSameVector<0,0b01011,"sqrshl", int_aarch64_neon_sqrshl>;
59755975defm SQSHL : SIMDThreeSameVector<0,0b01001,"sqshl", int_aarch64_neon_sqshl>;
5976- defm SQSUB : SIMDThreeSameVector<0,0b00101,"sqsub", int_aarch64_neon_sqsub >;
5976+ defm SQSUB : SIMDThreeSameVector<0,0b00101,"sqsub", ssubsat >;
59775977defm SRHADD : SIMDThreeSameVectorBHS<0,0b00010,"srhadd", avgceils>;
59785978defm SRSHL : SIMDThreeSameVector<0,0b01010,"srshl", int_aarch64_neon_srshl>;
59795979defm SSHL : SIMDThreeSameVector<0,0b01000,"sshl", int_aarch64_neon_sshl>;
@@ -5987,10 +5987,10 @@ defm UMAXP : SIMDThreeSameVectorBHS<1,0b10100,"umaxp", int_aarch64_neon_umaxp
59875987defm UMAX : SIMDThreeSameVectorBHS<1,0b01100,"umax", umax>;
59885988defm UMINP : SIMDThreeSameVectorBHS<1,0b10101,"uminp", int_aarch64_neon_uminp>;
59895989defm UMIN : SIMDThreeSameVectorBHS<1,0b01101,"umin", umin>;
5990- defm UQADD : SIMDThreeSameVector<1,0b00001,"uqadd", int_aarch64_neon_uqadd >;
5990+ defm UQADD : SIMDThreeSameVector<1,0b00001,"uqadd", uaddsat >;
59915991defm UQRSHL : SIMDThreeSameVector<1,0b01011,"uqrshl", int_aarch64_neon_uqrshl>;
59925992defm UQSHL : SIMDThreeSameVector<1,0b01001,"uqshl", int_aarch64_neon_uqshl>;
5993- defm UQSUB : SIMDThreeSameVector<1,0b00101,"uqsub", int_aarch64_neon_uqsub >;
5993+ defm UQSUB : SIMDThreeSameVector<1,0b00101,"uqsub", usubsat >;
59945994defm URHADD : SIMDThreeSameVectorBHS<1,0b00010,"urhadd", avgceilu>;
59955995defm URSHL : SIMDThreeSameVector<1,0b01010,"urshl", int_aarch64_neon_urshl>;
59965996defm USHL : SIMDThreeSameVector<1,0b01000,"ushl", int_aarch64_neon_ushl>;
@@ -5999,12 +5999,6 @@ defm SQRDMLAH : SIMDThreeSameVectorSQRDMLxHTiedHS<1,0b10000,"sqrdmlah",
59995999defm SQRDMLSH : SIMDThreeSameVectorSQRDMLxHTiedHS<1,0b10001,"sqrdmlsh",
60006000 int_aarch64_neon_sqrdmlsh>;
60016001
6002- // Extra saturate patterns, other than the intrinsics matches above
6003- defm : SIMDThreeSameVectorExtraPatterns<"SQADD", saddsat>;
6004- defm : SIMDThreeSameVectorExtraPatterns<"UQADD", uaddsat>;
6005- defm : SIMDThreeSameVectorExtraPatterns<"SQSUB", ssubsat>;
6006- defm : SIMDThreeSameVectorExtraPatterns<"UQSUB", usubsat>;
6007-
60086002defm AND : SIMDLogicalThreeVector<0, 0b00, "and", and>;
60096003defm BIC : SIMDLogicalThreeVector<0, 0b01, "bic",
60106004 BinOpFrag<(and node:$LHS, (vnot node:$RHS))> >;
@@ -6720,10 +6714,8 @@ defm SMLAL : SIMDLongThreeVectorTiedBHS<0, 0b1000, "smlal",
67206714defm SMLSL : SIMDLongThreeVectorTiedBHS<0, 0b1010, "smlsl",
67216715 TriOpFrag<(sub node:$LHS, (AArch64smull node:$MHS, node:$RHS))>>;
67226716defm SMULL : SIMDLongThreeVectorBHS<0, 0b1100, "smull", AArch64smull>;
6723- defm SQDMLAL : SIMDLongThreeVectorSQDMLXTiedHS<0, 0b1001, "sqdmlal",
6724- int_aarch64_neon_sqadd>;
6725- defm SQDMLSL : SIMDLongThreeVectorSQDMLXTiedHS<0, 0b1011, "sqdmlsl",
6726- int_aarch64_neon_sqsub>;
6717+ defm SQDMLAL : SIMDLongThreeVectorSQDMLXTiedHS<0, 0b1001, "sqdmlal", saddsat>;
6718+ defm SQDMLSL : SIMDLongThreeVectorSQDMLXTiedHS<0, 0b1011, "sqdmlsl", ssubsat>;
67276719defm SQDMULL : SIMDLongThreeVectorHS<0, 0b1101, "sqdmull",
67286720 int_aarch64_neon_sqdmull>;
67296721defm SSUBL : SIMDLongThreeVectorBHS<0, 0b0010, "ssubl",
@@ -8282,9 +8274,9 @@ defm SMLAL : SIMDVectorIndexedLongSDTied<0, 0b0010, "smlal",
82828274defm SMLSL : SIMDVectorIndexedLongSDTied<0, 0b0110, "smlsl",
82838275 TriOpFrag<(sub node:$LHS, (AArch64smull node:$MHS, node:$RHS))>>;
82848276defm SMULL : SIMDVectorIndexedLongSD<0, 0b1010, "smull", AArch64smull>;
8285- defm SQDMLAL : SIMDIndexedLongSQDMLXSDTied<0, 0b0011, "sqdmlal",
8277+ defm SQDMLAL : SIMDIndexedLongSQDMLXSDTied<0, 0b0011, "sqdmlal", saddsat,
82868278 int_aarch64_neon_sqadd>;
8287- defm SQDMLSL : SIMDIndexedLongSQDMLXSDTied<0, 0b0111, "sqdmlsl",
8279+ defm SQDMLSL : SIMDIndexedLongSQDMLXSDTied<0, 0b0111, "sqdmlsl", ssubsat,
82888280 int_aarch64_neon_sqsub>;
82898281defm SQRDMLAH : SIMDIndexedSQRDMLxHSDTied<1, 0b1101, "sqrdmlah",
82908282 int_aarch64_neon_sqrdmlah>;
0 commit comments