@@ -5707,27 +5707,6 @@ let Predicates = [HasFullFP16] in {
5707
5707
// Advanced SIMD two vector instructions.
5708
5708
//===----------------------------------------------------------------------===//
5709
5709
5710
- defm UABDL : SIMDLongThreeVectorBHSabdl<1, 0b0111, "uabdl", abdu>;
5711
- // Match UABDL in log2-shuffle patterns.
5712
- def : Pat<(abs (v8i16 (sub (zext (v8i8 V64:$opA)),
5713
- (zext (v8i8 V64:$opB))))),
5714
- (UABDLv8i8_v8i16 V64:$opA, V64:$opB)>;
5715
- def : Pat<(abs (v8i16 (sub (zext (extract_high_v16i8 (v16i8 V128:$opA))),
5716
- (zext (extract_high_v16i8 (v16i8 V128:$opB)))))),
5717
- (UABDLv16i8_v8i16 V128:$opA, V128:$opB)>;
5718
- def : Pat<(abs (v4i32 (sub (zext (v4i16 V64:$opA)),
5719
- (zext (v4i16 V64:$opB))))),
5720
- (UABDLv4i16_v4i32 V64:$opA, V64:$opB)>;
5721
- def : Pat<(abs (v4i32 (sub (zext (extract_high_v8i16 (v8i16 V128:$opA))),
5722
- (zext (extract_high_v8i16 (v8i16 V128:$opB)))))),
5723
- (UABDLv8i16_v4i32 V128:$opA, V128:$opB)>;
5724
- def : Pat<(abs (v2i64 (sub (zext (v2i32 V64:$opA)),
5725
- (zext (v2i32 V64:$opB))))),
5726
- (UABDLv2i32_v2i64 V64:$opA, V64:$opB)>;
5727
- def : Pat<(abs (v2i64 (sub (zext (extract_high_v4i32 (v4i32 V128:$opA))),
5728
- (zext (extract_high_v4i32 (v4i32 V128:$opB)))))),
5729
- (UABDLv4i32_v2i64 V128:$opA, V128:$opB)>;
5730
-
5731
5710
defm ABS : SIMDTwoVectorBHSD<0, 0b01011, "abs", abs>;
5732
5711
defm CLS : SIMDTwoVectorBHS<0, 0b00100, "cls", int_aarch64_neon_cls>;
5733
5712
defm CLZ : SIMDTwoVectorBHS<1, 0b00100, "clz", ctlz>;
@@ -6810,7 +6789,8 @@ defm RSUBHN : SIMDNarrowThreeVectorBHS<1,0b0110,"rsubhn",int_aarch64_neon_rsubhn
6810
6789
let isCommutable = 1 in
6811
6790
defm PMULL : SIMDDifferentThreeVectorBD<0,0b1110,"pmull", AArch64pmull>;
6812
6791
defm SABAL : SIMDLongThreeVectorTiedBHSabal<0,0b0101,"sabal", abds>;
6813
- defm SABDL : SIMDLongThreeVectorBHSabdl<0, 0b0111, "sabdl", abds>;
6792
+ defm SABDL : SIMDLongThreeVectorBHS<0, 0b0111, "sabdl",
6793
+ BinOpFrag<(zext (abds node:$LHS, node:$RHS))>>;
6814
6794
defm SADDL : SIMDLongThreeVectorBHS< 0, 0b0000, "saddl",
6815
6795
BinOpFrag<(add (sext node:$LHS), (sext node:$RHS))>>;
6816
6796
defm SADDW : SIMDWideThreeVectorBHS< 0, 0b0001, "saddw",
@@ -6830,6 +6810,8 @@ defm SSUBL : SIMDLongThreeVectorBHS<0, 0b0010, "ssubl",
6830
6810
defm SSUBW : SIMDWideThreeVectorBHS<0, 0b0011, "ssubw",
6831
6811
BinOpFrag<(sub node:$LHS, (sext node:$RHS))>>;
6832
6812
defm UABAL : SIMDLongThreeVectorTiedBHSabal<1, 0b0101, "uabal", abdu>;
6813
+ defm UABDL : SIMDLongThreeVectorBHS<1, 0b0111, "uabdl",
6814
+ BinOpFrag<(zext (abdu node:$LHS, node:$RHS))>>;
6833
6815
defm UADDL : SIMDLongThreeVectorBHS<1, 0b0000, "uaddl",
6834
6816
BinOpFrag<(add (zanyext node:$LHS), (zanyext node:$RHS))>>;
6835
6817
defm UADDW : SIMDWideThreeVectorBHS<1, 0b0001, "uaddw",
0 commit comments