summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/InstCombine/invariant.ll
diff options
context:
space:
mode:
authorMehdi Amini <mehdi.amini@apple.com>2016-08-13 23:31:24 +0000
committerMehdi Amini <mehdi.amini@apple.com>2016-08-13 23:31:24 +0000
commit8c629ecf3af5bc2717ceb62b73e4dda98fdfe82d (patch)
treed1ff68a6b1c249867ab65dd8800fe56595cc9ebb /llvm/test/Transforms/InstCombine/invariant.ll
parent164ac651dad386a91bb745f13260100b7856693d (diff)
downloadbcm5719-llvm-8c629ecf3af5bc2717ceb62b73e4dda98fdfe82d.tar.gz
bcm5719-llvm-8c629ecf3af5bc2717ceb62b73e4dda98fdfe82d.zip
Revert "Revert "Invariant start/end intrinsics overloaded for address space""
This reverts commit 32fc6488e48eafc0ca1bac1bd9cbf0008224d530. llvm-svn: 278609
Diffstat (limited to 'llvm/test/Transforms/InstCombine/invariant.ll')
-rw-r--r--llvm/test/Transforms/InstCombine/invariant.ll18
1 files changed, 15 insertions, 3 deletions
diff --git a/llvm/test/Transforms/InstCombine/invariant.ll b/llvm/test/Transforms/InstCombine/invariant.ll
index 246f9e64041..21e5f0fe858 100644
--- a/llvm/test/Transforms/InstCombine/invariant.ll
+++ b/llvm/test/Transforms/InstCombine/invariant.ll
@@ -2,15 +2,27 @@
; RUN: opt < %s -instcombine -S | FileCheck %s
declare void @g(i8*)
+declare void @g_addr1(i8 addrspace(1)*)
-declare {}* @llvm.invariant.start(i64, i8* nocapture) nounwind readonly
+declare {}* @llvm.invariant.start.p0i8(i64, i8* nocapture) nounwind readonly
+declare {}* @llvm.invariant.start.p1i8(i64, i8 addrspace(1)* nocapture) nounwind readonly
define i8 @f() {
%a = alloca i8 ; <i8*> [#uses=4]
store i8 0, i8* %a
- %i = call {}* @llvm.invariant.start(i64 1, i8* %a) ; <{}*> [#uses=0]
- ; CHECK: call {}* @llvm.invariant.start
+ %i = call {}* @llvm.invariant.start.p0i8(i64 1, i8* %a) ; <{}*> [#uses=0]
+ ; CHECK: call {}* @llvm.invariant.start.p0i8
call void @g(i8* %a)
%r = load i8, i8* %a ; <i8> [#uses=1]
ret i8 %r
}
+
+; make sure llvm.invariant.call in non-default addrspace are also not eliminated.
+define i8 @f_addrspace1(i8 addrspace(1)* %a) {
+ store i8 0, i8 addrspace(1)* %a
+ %i = call {}* @llvm.invariant.start.p1i8(i64 1, i8 addrspace(1)* %a) ; <{}*> [#uses=0]
+ ; CHECK: call {}* @llvm.invariant.start.p1i8
+ call void @g_addr1(i8 addrspace(1)* %a)
+ %r = load i8, i8 addrspace(1)* %a ; <i8> [#uses=1]
+ ret i8 %r
+}
OpenPOWER on IntegriCloud