Implement iabs in ISLE (AArch64) (#4399)

* Implement `iabs` in ISLE (AArch64)

Converts the existing implementation of `iabs` for AArch64 into ISLE,
and fixes support for `iabs` on scalar values.

Copyright (c) 2022 Arm Limited.

* Improve scalar `iabs` implementation.

Also introduces `CSNeg` instruction.

Copyright (c) 2022 Arm Limited
This commit is contained in:
Damian Heaton
2022-07-18 19:12:34 +01:00
committed by GitHub
parent db7f9ccd2b
commit d792646677
8 changed files with 208 additions and 32 deletions

View File

@@ -2129,6 +2129,16 @@ fn test_aarch64_binemit() {
"8A218E9A",
"csel x10, x12, x14, hs",
));
insns.push((
Inst::CSNeg {
rd: writable_xreg(10),
rn: xreg(12),
rm: xreg(14),
cond: Cond::Hs,
},
"8A258EDA",
"csneg x10, x12, x14, hs",
));
insns.push((
Inst::CSet {
rd: writable_xreg(15),