[HLSL] Implement RWBuffer::operator[] via __builtin_hlsl_resource_getpointer (#117017)
[llvm-project.git] / llvm / test / CodeGen / NVPTX / alias.ll
blobcb592ddf7c95baa2f5a25c5e74532c4f69854fcb
1 ; RUN: llc < %s -march=nvptx64 -mcpu=sm_30 -mattr=+ptx64 | FileCheck %s
2 ; RUN: %if ptxas %{ llc < %s -march=nvptx64 -mcpu=sm_30 -mattr=+ptx64 | %ptxas-verify %}
4 define i32 @a() { ret i32 0 }
5 @b = internal alias i32 (), ptr @a
6 @c = internal alias i32 (), ptr @a
7 @d = internal alias i32 (), ptr @c
9 define void @foo(i32 %0, ptr %1) { ret void }
10 @bar = alias i32 (), ptr @foo
12 define void @noreturn() #0 {
13   ret void
15 @noreturn_alias = alias i32 (), ptr @noreturn
17 define i32 @z() {
18   %val = call i32 @b()
19   ret i32 %val
23 attributes #0 = { noreturn }
25 ;      CHECK: .visible .func  (.param .b32 func_retval0) b
26 ; CHECK-NEXT: ()
27 ; CHECK-NEXT: ;
29 ;      CHECK: .visible .func  (.param .b32 func_retval0) c
30 ; CHECK-NEXT: ()
31 ; CHECK-NEXT: ;
33 ;      CHECK: .visible .func  (.param .b32 func_retval0) d
34 ; CHECK-NEXT: ()
35 ; CHECK-NEXT: ;
37 ;      CHECK: .visible .func bar
38 ; CHECK-NEXT: (
39 ; CHECK-NEXT:         .param .b32 foo_param_0,
40 ; CHECK-NEXT:         .param .b64 foo_param_1
41 ; CHECK-NEXT: )
42 ; CHECK-NEXT: ;
44 ;      CHECK: .visible .func noreturn_alias
45 ; CHECK-NEXT: ()
46 ; CHECK-NEXT: .noreturn;
48 ; CHECK: .visible .func  (.param .b32 func_retval0) a()
50 ;      CHECK: .visible .func foo(
51 ; CHECK-NEXT:         .param .b32 foo_param_0,
52 ; CHECK-NEXT:         .param .b64 foo_param_1
53 ; CHECK-NEXT: )
55 ;      CHECK: .visible .func noreturn()
56 ; CHECK-NEXT: .noreturn
58 ;      CHECK: .visible .func  (.param .b32 func_retval0) z()
59 ;      CHECK:      call.uni (retval0), 
60 ; CHECK-NEXT:      b,
63 ; CHECK: .alias b, a;
64 ; CHECK: .alias c, a;
65 ; CHECK: .alias d, a;
66 ; CHECK: .alias bar, foo;
67 ; CHECK: .alias noreturn_alias, noreturn;