xref: /llvm-project/llvm/test/CodeGen/ARM/thread_pointer.ll (revision 10e42281144ecca019764b554f3f0f709bba0f71)
1; RUN: llc -mtriple arm-linux-gnueabi -o - %s | FileCheck %s -check-prefix=CHECK-SOFT
2; RUN: llc -mtriple arm-linux-gnueabi -mattr=+read-tp-tpidrurw -o - %s | FileCheck %s -check-prefix=CHECK-TPIDRURW
3; RUN: llc -mtriple arm-linux-gnueabi -mattr=+read-tp-tpidruro -o - %s | FileCheck %s -check-prefix=CHECK-TPIDRURO
4; RUN: llc -mtriple arm-linux-gnueabi -mattr=+read-tp-tpidrprw -o - %s | FileCheck %s -check-prefix=CHECK-TPIDRPRW
5; RUN: llc -mtriple thumbv7-linux-gnueabi -o - %s | FileCheck %s -check-prefix=CHECK-SOFT
6; RUN: llc -mtriple thumbv7-linux-gnueabi -mattr=+read-tp-tpidrurw -o - %s | FileCheck %s -check-prefix=CHECK-TPIDRURW
7; RUN: llc -mtriple thumbv7-linux-gnueabi -mattr=+read-tp-tpidruro -o - %s | FileCheck %s -check-prefix=CHECK-TPIDRURO
8; RUN: llc -mtriple thumbv7-linux-gnueabi -mattr=+read-tp-tpidrprw -o - %s | FileCheck %s -check-prefix=CHECK-TPIDRPRW
9
10declare ptr @llvm.thread.pointer()
11
12define ptr @test() {
13entry:
14  %tmp1 = call ptr @llvm.thread.pointer()
15  ret ptr %tmp1
16}
17
18; CHECK-SOFT:     bl __aeabi_read_tp
19; CHECK-TPIDRURW: mrc p15, #0, {{r[0-9]+}}, c13, c0, #2
20; CHECK-TPIDRURO: mrc p15, #0, {{r[0-9]+}}, c13, c0, #3
21; CHECK-TPIDRPRW: mrc p15, #0, {{r[0-9]+}}, c13, c0, #4
22
23