summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorJustin Lebar <jlebar@google.com>2016-09-11 01:39:08 +0000
committerJustin Lebar <jlebar@google.com>2016-09-11 01:39:08 +0000
commit11a32043550759e86e7c0538927531c1f8651f12 (patch)
tree06677db58e42172d954b0485afdc22375410a1ca /llvm/test
parent6d6b11a4a6a418956ac963bb9a7d9b1fd2966e3d (diff)
downloadbcm5719-llvm-11a32043550759e86e7c0538927531c1f8651f12.tar.gz
bcm5719-llvm-11a32043550759e86e7c0538927531c1f8651f12.zip
Add handling of !invariant.load to PropagateMetadata.
Summary: This will let e.g. the load/store vectorizer propagate this metadata appropriately. Reviewers: arsenm Subscribers: tra, jholewinski, hfinkel, mzolotukhin Differential Revision: https://reviews.llvm.org/D23479 llvm-svn: 281153
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/Transforms/LoadStoreVectorizer/NVPTX/propagate-invariance-metadata.ll17
1 files changed, 17 insertions, 0 deletions
diff --git a/llvm/test/Transforms/LoadStoreVectorizer/NVPTX/propagate-invariance-metadata.ll b/llvm/test/Transforms/LoadStoreVectorizer/NVPTX/propagate-invariance-metadata.ll
new file mode 100644
index 00000000000..ac0660e7833
--- /dev/null
+++ b/llvm/test/Transforms/LoadStoreVectorizer/NVPTX/propagate-invariance-metadata.ll
@@ -0,0 +1,17 @@
+; RUN: opt -load-store-vectorizer -march=nvptx64 -mcpu=sm_35 -S < %s | FileCheck %s
+
+target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v16:16:16-v32:32:32-v64:64:64-v128:128:128-n16:32:64"
+target triple = "nvptx64-nvidia-cuda"
+
+; CHECK-LABEL: @foo
+define i32 @foo(i32* %ptr) {
+ %ptr1 = getelementptr i32, i32* %ptr, i32 1
+ %p1 = addrspacecast i32* %ptr1 to i32 addrspace(1)*
+ ; CHECK: load <2 x i32>, <2 x i32>* %{{[0-9]+}}, align 8, !invariant.load !0
+ %v0 = load i32, i32* %ptr, align 8, !invariant.load !0
+ %v1 = load i32, i32* %ptr1, align 4, !invariant.load !0
+ %sum = add i32 %v0, %v1
+ ret i32 %sum
+}
+
+!0 = !{}
OpenPOWER on IntegriCloud