[PATCH] D124325: [WIP][AArch64][SVE] Support logical operation BIC with DestructiveBinary patterns

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Oct 15 18:22:47 PDT 2022


efriedma added a comment.

The sequence `movprfx z0.b, p0/z, z0.b; add z0.b, z0.b, #0;` zeros the lanes in z0 that aren't active in p0.  (It's a slightly weird way to write it, but as far as I know there isn't any single instruction with equivalent semantics.)  Then we can just use the regular instruction that leaves the lanes we just zeroed unmodified.  This works regardless of the operation (as long as it doesn't do cross-lane processing).

The "identity" thing is just noting that if the two operands to bic are identical, the result is always zero.  But as noted before, that doesn't generalize to other operations.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D124325/new/

https://reviews.llvm.org/D124325



More information about the llvm-commits mailing list