xref: /llvm-project/llvm/test/tools/llvm-split/AMDGPU/indirect-call-inline-asm-debug.ll (revision d656b2063262d59c3565e63095104c01d1f6a5a3)
1*d656b206SPierre van Houtryve; REQUIRES: asserts
2*d656b206SPierre van Houtryve
3*d656b206SPierre van Houtryve; RUN: llvm-split -o %t %s -j 2 -mtriple amdgcn-amd-amdhsa -amdgpu-module-splitting-no-externalize-address-taken -debug-only=amdgpu-split-module 2>&1 | FileCheck %s
4*d656b206SPierre van Houtryve
5*d656b206SPierre van Houtryve; CHECK:      [!] callgraph is incomplete for ptr @A  - analyzing function
6*d656b206SPierre van Houtryve; CHECK-NEXT:     found inline assembly
7*d656b206SPierre van Houtryve; CHECK-NOT:      indirect call found
8*d656b206SPierre van Houtryve
9*d656b206SPierre van Houtryve@addrthief = global [2 x ptr] [ptr @HelperA, ptr @HelperB]
10*d656b206SPierre van Houtryve
11*d656b206SPierre van Houtryvedefine internal void @HelperA() {
12*d656b206SPierre van Houtryve  ret void
13*d656b206SPierre van Houtryve}
14*d656b206SPierre van Houtryve
15*d656b206SPierre van Houtryvedefine internal void @HelperB() {
16*d656b206SPierre van Houtryve  ret void
17*d656b206SPierre van Houtryve}
18*d656b206SPierre van Houtryve
19*d656b206SPierre van Houtryvedefine amdgpu_kernel void @A() {
20*d656b206SPierre van Houtryve  call void asm sideeffect "v_mov_b32 v0, 7", "~{v0}"()
21*d656b206SPierre van Houtryve  call void @HelperA()
22*d656b206SPierre van Houtryve  ret void
23*d656b206SPierre van Houtryve}
24*d656b206SPierre van Houtryve
25*d656b206SPierre van Houtryvedefine amdgpu_kernel void @B(ptr %out) {
26*d656b206SPierre van Houtryve  call void @HelperB()
27*d656b206SPierre van Houtryve  ret void
28*d656b206SPierre van Houtryve}
29