[PATCH] D128606: [AArch64][DAGCombiner] Swap the operations of logical operation AND to match movprfx

Paul Walker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 28 05:19:54 PDT 2022


paulwalker-arm added a comment.

Is this optimisation valid? The merging SVE intrinsics have strict rules about what happens to inactive lanes. For the `llvm.aarch64.sve.and` the inactive lanes are set to the matching lanes of the first operand.  This means that the inactive lanes of the second operand play no role in the operation and thus the example in `and_i64_zero_comm` is not a `zeroing and`.

However, given the inactive lanes of the second operand play no role, this effectively means the `select` is redundant and can be optimised away as an instcombine before it gets to code generation.  So I guess the question is whether you are seeing this issue in real code and thus it's worth implementing the instcombine.


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

https://reviews.llvm.org/D128606



More information about the llvm-commits mailing list