| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py |
| ; RUN: llc -mtriple=hexagon < %s | FileCheck %s |
| ; |
| ; This test verifies the thread pointer intrinsic implementation for Hexagon. |
| ; The thread pointer (UGP register) is used to access thread-local storage. |
| |
| declare ptr @llvm.thread.pointer() nounwind readnone |
| |
| define ptr @thread_pointer() nounwind { |
| ; CHECK-LABEL: thread_pointer: |
| ; CHECK: // %bb.0: |
| ; CHECK: r0 = ugp |
| ; CHECK-NEXT: jumpr r31 |
| %1 = tail call ptr @llvm.thread.pointer() |
| ret ptr %1 |
| } |