[PATCH] D100527: [AArch64][SVE] More unpredicated ld1/st1 patterns for reg+reg addressing modes

Paul Walker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 30 03:12:22 PDT 2021


paulwalker-arm added a comment.

Are we concerned about the reduced code quality shown by the splice tests? Is there a way to know if the basic block is, or within, a loop body? so that we can restrict the patterns to instances where we're confident the extra instructions are likely to be hoisted.  I guess for the `PTRUE` case we already know there is a need for some kind of machine pass to remove larger element `PTRUE`s when a smaller element one is safe to use.



================
Comment at: llvm/test/CodeGen/AArch64/named-vector-shuffles-sve.ll:1166-1168
 ; CHECK-NEXT:    addvl x8, x8, #2
+; CHECK-NEXT:    ld1b { z0.b }, p1/z, [x8, x9]
 ; CHECK-NEXT:    sub x8, x8, #32 // =32
----------------
This suggest we should limit the usage to only when there's a single use of the address? or more precisely not kick in unless we can guarantee the add/sub will be omitted.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D100527



More information about the llvm-commits mailing list