llvm-project
71150f23 - [AArch64] Use SVE2 bit-sel instructions for some binary patterns. (#147544)

Commit
87 days ago
[AArch64] Use SVE2 bit-sel instructions for some binary patterns. (#147544) We can use NBSL/BSL2N to implement the following operations via the corresponding identities: * EON(a, b) = BSL2N(a, a, b) = BSL2N(b, b, a) * NAND(a, b) = NBSL(a, b, b) = NBSL(b, a, a) * NOR(a, b) = NBSL(a, b, a) = NBSL(b, a, b) * ORN(a, b) = BSL2N(a, b, a) Most of these operations are currently lowered into at least two instructions because we don't have dedicated Neon/SVE instructions for them. With the appropriate pattern of NBSL/BSL2N we can lower them in a single instruction. We could also use NBSL to implement an unpredicated NOT(a) = NBSL(a, a, a), but because of the tied register constraint, this may not always be profitable.
Author
Parents
Loading