From 19949d8b867013d8a0ef90ac6d3051c49a92eef5 Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Thu, 28 Feb 2013 19:33:46 +0000 Subject: [PATCH] Brag about function call vectorization in the docs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176292 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/Vectorizers.rst | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/Vectorizers.rst b/docs/Vectorizers.rst index 0894b1eb3f1..e2d3667bc11 100644 --- a/docs/Vectorizers.rst +++ b/docs/Vectorizers.rst @@ -245,6 +245,17 @@ See the table below for a list of these functions. | | | fmuladd | +-----+-----+---------+ +The loop vectorizer knows about special instructions on the target and will +vectorize a loop containing a function call that maps to the instructions. For +example, the loop below will be vectorized on Intel x86 if the SSE4.1 roundps +instruction is available. + +.. code-block:: c++ + + void foo(float *f) { + for (int i = 0; i != 1024; ++i) + f[i] = floorf(f[i]); + } Partial unrolling during vectorization ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^