diff options
author | Marcin Koscielnicki <koriakin@0x04.net> | 2016-04-19 20:51:05 +0000 |
---|---|---|
committer | Marcin Koscielnicki <koriakin@0x04.net> | 2016-04-19 20:51:05 +0000 |
commit | 3fdc257d6a5d6e7a1851d9c78dc49d516ee488be (patch) | |
tree | c233d3f54b6a3d79301636604e1ff7d4ac2c8e9c /llvm/test/Assembler/autoupgrade-thread-pointer.ll | |
parent | 4005070e1bad88113f45cb843635206050fe62e2 (diff) | |
download | bcm5719-llvm-3fdc257d6a5d6e7a1851d9c78dc49d516ee488be.tar.gz bcm5719-llvm-3fdc257d6a5d6e7a1851d9c78dc49d516ee488be.zip |
[AArch64] [ARM] Make a target-independent llvm.thread.pointer intrinsic.
Both AArch64 and ARM support llvm.<arch>.thread.pointer intrinsics that
just return the thread pointer. I have a pending patch that does the same
for SystemZ (D19054), and there are many more targets that could benefit
from one.
This patch merges the ARM and AArch64 intrinsics into a single target
independent one that will also be used by subsequent targets.
Differential Revision: http://reviews.llvm.org/D19098
llvm-svn: 266818
Diffstat (limited to 'llvm/test/Assembler/autoupgrade-thread-pointer.ll')
-rw-r--r-- | llvm/test/Assembler/autoupgrade-thread-pointer.ll | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/test/Assembler/autoupgrade-thread-pointer.ll b/llvm/test/Assembler/autoupgrade-thread-pointer.ll new file mode 100644 index 00000000000..a96829d9b2e --- /dev/null +++ b/llvm/test/Assembler/autoupgrade-thread-pointer.ll @@ -0,0 +1,19 @@ +; Test autoupgrade of arch-specific thread pointer intrinsics +; RUN: llvm-as < %s | llvm-dis | FileCheck %s + +declare i8* @llvm.aarch64.thread.pointer() +declare i8* @llvm.arm.thread.pointer() + +define i8* @test1() { +; CHECK: test1() +; CHECK: call i8* @llvm.thread.pointer() + %1 = call i8* @llvm.aarch64.thread.pointer() + ret i8 *%1 +} + +define i8* @test2() { +; CHECK: test2() +; CHECK: call i8* @llvm.thread.pointer() + %1 = call i8* @llvm.arm.thread.pointer() + ret i8 *%1 +} |