Skip to content

Commit c3249de

Browse files
committed
Do it in tblgen instead
1 parent 2ac2716 commit c3249de

File tree

3 files changed

+164
-202
lines changed

3 files changed

+164
-202
lines changed

llvm/lib/Target/AArch64/AArch64InstrInfo.td

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8303,6 +8303,29 @@ def MVNIv4s_msl : SIMDModifiedImmMoveMSL<1, 1, {1,1,0,?}, V128, "mvni", ".4s",
83038303
(AArch64mvni_msl imm0_255:$imm8, (i32 imm:$shift)))]>;
83048304
}
83058305

8306+
// SABA patterns for add(x, abs(y)) -> saba(x, y, 0)
8307+
def : Pat<(v8i8 (add V64:$Vn, (abs V64:$Vm))),
8308+
(SABAv8i8 V64:$Vn, V64:$Vm, (EXTRACT_SUBREG (MOVIv2d_ns (i32 0)), dsub))>;
8309+
def : Pat<(v4i16 (add V64:$Vn, (abs V64:$Vm))),
8310+
(SABAv4i16 V64:$Vn, V64:$Vm, (EXTRACT_SUBREG (MOVIv2d_ns (i32 0)), dsub))>;
8311+
def : Pat<(v2i32 (add V64:$Vn, (abs V64:$Vm))),
8312+
(SABAv2i32 V64:$Vn, V64:$Vm, (EXTRACT_SUBREG (MOVIv2d_ns (i32 0)), dsub))>;
8313+
def : Pat<(v16i8 (add V128:$Vn, (abs V128:$Vm))),
8314+
(SABAv16i8 V128:$Vn, V128:$Vm, (MOVIv2d_ns (i32 0)))>;
8315+
def : Pat<(v8i16 (add V128:$Vn, (abs V128:$Vm))),
8316+
(SABAv8i16 V128:$Vn, V128:$Vm, (MOVIv2d_ns (i32 0)))>;
8317+
def : Pat<(v4i32 (add V128:$Vn, (abs V128:$Vm))),
8318+
(SABAv4i32 V128:$Vn, V128:$Vm, (MOVIv2d_ns (i32 0)))>;
8319+
8320+
// SABAL patterns for add(x, zext(abs(y))) -> sabal(x, y, 0)
8321+
def : Pat<(v8i16 (add V128:$Vn, (zext (abs (v8i8 V64:$Vm))))),
8322+
(SABALv8i8_v8i16 V128:$Vn, V64:$Vm, (EXTRACT_SUBREG (MOVIv2d_ns (i32 0)), dsub))>;
8323+
def : Pat<(v4i32 (add V128:$Vn, (zext (abs (v4i16 V64:$Vm))))),
8324+
(SABALv4i16_v4i32 V128:$Vn, V64:$Vm, (EXTRACT_SUBREG (MOVIv2d_ns (i32 0)), dsub))>;
8325+
def : Pat<(v2i64 (add V128:$Vn, (zext (abs (v2i32 V64:$Vm))))),
8326+
(SABALv2i32_v2i64 V128:$Vn, V64:$Vm, (EXTRACT_SUBREG (MOVIv2d_ns (i32 0)), dsub))>;
8327+
8328+
83068329
//----------------------------------------------------------------------------
83078330
// AdvSIMD indexed element
83088331
//----------------------------------------------------------------------------

0 commit comments

Comments
 (0)