xref: /llvm-project/llvm/test/CodeGen/NVPTX/calling-conv.ll (revision b279f6b098d3849f7f1c1f539b108307d5f8ae2d)
1; RUN: llc < %s -mtriple=nvptx -mcpu=sm_20 | FileCheck %s
2; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 | FileCheck %s
3; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}
4; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 | %ptxas-verify %}
5
6
7;; Kernel function using ptx_kernel calling conv
8
9; CHECK: .entry kernel_func
10define ptx_kernel void @kernel_func(ptr %a) {
11; CHECK: ret
12  ret void
13}
14
15;; Device function
16; CHECK: .func device_func
17define void @device_func(ptr %a) {
18; CHECK: ret
19  ret void
20}
21
22;; Kernel function using NVVM metadata
23; CHECK: .entry metadata_kernel
24define void @metadata_kernel(ptr %a) {
25; CHECK: ret
26  ret void
27}
28
29
30!nvvm.annotations = !{!1}
31
32!1 = !{ptr @metadata_kernel, !"kernel", i32 1}
33