[PATCH] D118566: [LoopVectorizer] Don't perform interleaving of predicated scalar loops

Sander de Smalen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 31 01:06:58 PST 2022


sdesmalen added a comment.

> This prevents it from making a bit of a mess, that is worse than the original and better left for the unroller to unroll if beneficial

Can you expand a little bit on why this becomes a bit of a mess? The original scalar loop has control-flow for predication as well, so I guess interleaving would just duplicate such control flow for the second scalar iteration. Is the code generated by the LV less efficient or are we missing any folds/simplification? Or is there a fundamental reason this can never be an improvement? I could imagine a scenario where most of the loop body would benefit from interleaving, but one statement in the loop doesn't because of predication, it would still be beneficial to interleave.


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

https://reviews.llvm.org/D118566



More information about the llvm-commits mailing list