[llvm] [AArch64] Set MaxInterleaving to 4 for Neoverse V2 (PR #100385)

Sjoerd Meijer via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 22 06:55:41 PDT 2024


sjoerdmeijer wrote:

> Do you need to take interleaving into account when lowering the minimum? The reason I ask is that for large loops we may not interleave at all so you'll have an epilogue even when the main vector loop has IC=1,VF=8. Maybe that's fine, but I can imagine some downsides in terms of increased code size and worse performance for some low trip counts.

Hi @david-arm , thanks for the suggestion, that makes perfect sense. Fixing this generally is going to be a 2-step solution anyway I think. I.e., the first one is to make that single magic number 16 target dependent with a TTI hook, and the second step is coming up with a better heuristic that takes this the minimum epilogue VF into account and other things like VF x UF, which could be implemented in a helper function in the vectoriser, or perhaps in the Subtarget specific TTI hook implementation that also sets this minimum epilogue VF. Either way, I think this is a good heuristic that can be added in the TTI hook that I will start drafting now. 




https://github.com/llvm/llvm-project/pull/100385


More information about the llvm-commits mailing list