Nadav Rotem
3c90b3d5fd
Remove the -licm pass from the loop vectorizer test because the loop vectorizer does it now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171930 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-09 01:20:59 +00:00
Nadav Rotem
f7737b5baa
Force a fixed unroll count on the target independent tests.
...
This should fix clang-native-arm-cortex-a9. Thanks Renato.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171582 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-05 00:58:48 +00:00
Nadav Rotem
e57b2cbce6
LoopVectorize: Preserve NSW, NUW and IsExact flags.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167174 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-31 21:40:39 +00:00
Nadav Rotem
50bec6f8c4
LoopVectorizer: Add a basic cost model which uses the VTTI interface.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166620 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24 20:36:32 +00:00
Nadav Rotem
bf8772ed2c
Vectorize: teach cavVectorizeMemory to distinguish between A[i]+=x and A[B[i]]+=x.
...
If the pointer is consecutive then it is safe to read and write. If the pointer is non-loop-consecutive then
it is unsafe to vectorize it because we may hit an ordering issue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166371 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-20 08:26:33 +00:00
Nadav Rotem
5dbe64e2bc
Vectorizer: Add support for loop reductions.
...
For example:
for (i=0; i<n; i++)
sum += A[i] + B[i] + i;
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166351 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-19 23:05:40 +00:00
Nadav Rotem
89e7b356f2
vectorizer: Add support for reading and writing from the same memory location.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166255 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-19 01:24:18 +00:00