]> granicus.if.org Git - llvm/commit
[Clang] New loop pragma vectorize_predicate
authorSjoerd Meijer <sjoerd.meijer@arm.com>
Thu, 25 Jul 2019 07:33:13 +0000 (07:33 +0000)
committerSjoerd Meijer <sjoerd.meijer@arm.com>
Thu, 25 Jul 2019 07:33:13 +0000 (07:33 +0000)
commit3c372e3b77efc0403ffd066c3fa59ca9a1566baa
tree5d7e307d031d1a0b992282f433fb7737f3f889b3
parent8a53c05b3f20f9052fbe93c2d06c6fe3f103f3bd
[Clang] New loop pragma vectorize_predicate

This adds a new vectorize predication loop hint:

  #pragma clang loop vectorize_predicate(enable)

that can be used to indicate to the vectoriser that all (load/store)
instructions should be predicated (masked). This allows, for example, folding
of the remainder loop into the main loop.

This patch will be followed up with D64916 and D65197. The former is a
refactoring in the loopvectorizer and the groundwork to make tail loop folding
a more general concept, and in the latter the actual tail loop folding
transformation will be implemented.

Differential Revision: https://reviews.llvm.org/D64744

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@366989 91177308-0d34-0410-b5e6-96231b3b80d8
docs/LangRef.rst