[PATCH] D109963: [AArch64] Split bitmask immediate of bitwise AND operation

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 22 02:22:59 PDT 2021


dmgreen added a comment.

I guess there are three options:

- Ignore it, because we believe it will not come up enough in practice enough or will be dealt with elsewhere  (I'm not sure this is always true).
- Teach ISel lowering that the BB is a loop and pick different strategies based on it.
- Do it post-sel in a peephole optimization pass or machine combining pass, that knows about being in a loop or critical patch latencies.

For point 1, the question probably becomes will these cases always be vectorized/unrolled at high optimization levels, in which case it will either be a different (vector) instruction doing most of the work, or the constant would be hoisted by constant hoisting. And when optimizing for size the smaller codesize is probably OK.



================
Comment at: llvm/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h:386
+
+  // Creat a mask which is filled with one from the position of lowest bit set
+  // to the position of highest bit set.
----------------
"Create"


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

https://reviews.llvm.org/D109963



More information about the llvm-commits mailing list