From d324c48e5595235996aa2ddb08a331913f2037fd Mon Sep 17 00:00:00 2001
From: Nadav Rotem
Date: Sun, 11 Nov 2012 06:47:51 +0000
Subject: Update the vectorizer docs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167688 91177308-0d34-0410-b5e6-96231b3b80d8
---
docs/ReleaseNotes.html | 24 ++++++++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)
(limited to 'docs')
diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index 45a9cc5..fc3a8b7 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -473,15 +473,31 @@ Release Notes.
-mllvm -force-vector-width=4.
The default value is 0 which means auto-select.
- We can now vectorize this code:
+ We can now vectorize this function:
- for (i=0; i<n; i++) {
- a[i] = b[i+1] + c[i+3] + i;
- sum += d[i];
+ unsigned sum_arrays(int *A, int *B, int start, int end) {
+ unsigned sum = 0;
+ for (int i = start; i < end; ++i)
+ sum += A[i] + B[i] + i;
+
+ return sum;
}
+ We vectorize under the following loops:
+
+ - The inner most loops must have a single basic block.
+ - The number of iterations are known before the loop starts to execute.
+ - The loop counter needs to be incrimented by one.
+ - The loop trip count can be a variable.
+ - Loops do not need to start at zero.
+ - The induction variable can be used inside the loop.
+ - Loop reductions are supported.
+ - Arrays with affine access pattern do not need to be marked as 'noalias' and are checked at runtime.
+ - ...
+
+
SROA - We've re-written SROA to be significantly more powerful.
--
cgit v1.1