diff options
author | Arnold Schwaighofer <aschwaighofer@apple.com> | 2014-01-10 18:20:32 +0000 |
---|---|---|
committer | Arnold Schwaighofer <aschwaighofer@apple.com> | 2014-01-10 18:20:32 +0000 |
commit | ee3f7de62e5616242441a76a8e92260d7b0f10e5 (patch) | |
tree | a747ef919609000d0dbfca52d43e1bdcbbc341b3 /test/Transforms/LoopVectorize/runtime-check-readonly.ll | |
parent | db81071b34eb4f5a9a27b4b5f8d32cc9f989db96 (diff) | |
download | llvm-ee3f7de62e5616242441a76a8e92260d7b0f10e5.tar.gz llvm-ee3f7de62e5616242441a76a8e92260d7b0f10e5.tar.bz2 llvm-ee3f7de62e5616242441a76a8e92260d7b0f10e5.tar.xz |
LoopVectorizer: Handle strided memory accesses by versioning
for (i = 0; i < N; ++i)
A[i * Stride1] += B[i * Stride2];
We take loops like this and check that the symbolic strides 'Strided1/2' are one
and drop to the scalar loop if they are not.
This is currently disabled by default and hidden behind the flag
'enable-mem-access-versioning'.
radar://13075509
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198950 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/LoopVectorize/runtime-check-readonly.ll')
-rw-r--r-- | test/Transforms/LoopVectorize/runtime-check-readonly.ll | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/test/Transforms/LoopVectorize/runtime-check-readonly.ll b/test/Transforms/LoopVectorize/runtime-check-readonly.ll index a2b9ad94c8..e7b1e2a6b7 100644 --- a/test/Transforms/LoopVectorize/runtime-check-readonly.ll +++ b/test/Transforms/LoopVectorize/runtime-check-readonly.ll @@ -7,11 +7,13 @@ target triple = "x86_64-apple-macosx10.8.0" ;CHECK: br ;CHECK: getelementptr ;CHECK-NEXT: getelementptr -;CHECK-NEXT: icmp uge -;CHECK-NEXT: icmp uge -;CHECK-NEXT: icmp uge -;CHECK-NEXT: icmp uge -;CHECK-NEXT: and +;CHECK-DAG: icmp uge +;CHECK-DAG: icmp uge +;CHECK-DAG: icmp uge +;CHECK-DAG: icmp uge +;CHECK-DAG: and +;CHECK-DAG: and +;CHECK: br ;CHECK: ret define void @add_ints(i32* nocapture %A, i32* nocapture %B, i32* nocapture %C) { entry: |