diff options
author | Mehdi Amini <mehdi.amini@apple.com> | 2016-08-13 23:31:24 +0000 |
---|---|---|
committer | Mehdi Amini <mehdi.amini@apple.com> | 2016-08-13 23:31:24 +0000 |
commit | 8c629ecf3af5bc2717ceb62b73e4dda98fdfe82d (patch) | |
tree | d1ff68a6b1c249867ab65dd8800fe56595cc9ebb /llvm/test/Transforms/InstCombine/invariant.ll | |
parent | 164ac651dad386a91bb745f13260100b7856693d (diff) | |
download | bcm5719-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.ll | 18 |
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 +} |