xref: /llvm-project/llvm/test/CodeGen/WebAssembly/thread_pointer.ll (revision ea58410d0fd75c9dc6d395bba15e939ed7c35cb1)
1*ea58410dSSam Clegg; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2*ea58410dSSam Clegg; RUN: llc < %s -mtriple=wasm32-unknown-unknown | FileCheck %s --check-prefix=WASM32
3*ea58410dSSam Clegg; RUN: llc < %s -mtriple=wasm64-unknown-unknown | FileCheck %s --check-prefix=WASM64
4*ea58410dSSam Clegg
5*ea58410dSSam Cleggdeclare ptr @llvm.thread.pointer()
6*ea58410dSSam Clegg
7*ea58410dSSam Cleggdefine ptr @thread_pointer() nounwind {
8*ea58410dSSam Clegg; WASM32-LABEL: thread_pointer:
9*ea58410dSSam Clegg; WASM32:         .functype thread_pointer () -> (i32)
10*ea58410dSSam Clegg; WASM32-NEXT:  # %bb.0:
11*ea58410dSSam Clegg; WASM32-NEXT:    global.get __tls_base
12*ea58410dSSam Clegg; WASM32-NEXT:    # fallthrough-return
13*ea58410dSSam Clegg;
14*ea58410dSSam Clegg; WASM64-LABEL: thread_pointer:
15*ea58410dSSam Clegg; WASM64:         .functype thread_pointer () -> (i64)
16*ea58410dSSam Clegg; WASM64-NEXT:  # %bb.0:
17*ea58410dSSam Clegg; WASM64-NEXT:    global.get __tls_base
18*ea58410dSSam Clegg; WASM64-NEXT:    # fallthrough-return
19*ea58410dSSam Clegg  %1 = tail call ptr @llvm.thread.pointer()
20*ea58410dSSam Clegg  ret ptr %1
21*ea58410dSSam Clegg}
22