1; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_30 -mattr=+ptx64 | FileCheck %s 2; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_30 -mattr=+ptx64 | %ptxas-verify %} 3 4define 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 8 9define void @foo(i32 %0, ptr %1) { ret void } 10@bar = alias i32 (), ptr @foo 11 12define void @noreturn() #0 { 13 ret void 14} 15@noreturn_alias = alias i32 (), ptr @noreturn 16 17define i32 @z() { 18 %val = call i32 @b() 19 ret i32 %val 20} 21 22 23attributes #0 = { noreturn } 24 25; CHECK: .visible .func (.param .b32 func_retval0) b 26; CHECK-NEXT: () 27; CHECK-NEXT: ; 28 29; CHECK: .visible .func (.param .b32 func_retval0) c 30; CHECK-NEXT: () 31; CHECK-NEXT: ; 32 33; CHECK: .visible .func (.param .b32 func_retval0) d 34; CHECK-NEXT: () 35; CHECK-NEXT: ; 36 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: ; 43 44; CHECK: .visible .func noreturn_alias 45; CHECK-NEXT: () 46; CHECK-NEXT: .noreturn; 47 48; CHECK: .visible .func (.param .b32 func_retval0) a() 49 50; CHECK: .visible .func foo( 51; CHECK-NEXT: .param .b32 foo_param_0, 52; CHECK-NEXT: .param .b64 foo_param_1 53; CHECK-NEXT: ) 54 55; CHECK: .visible .func noreturn() 56; CHECK-NEXT: .noreturn 57 58; CHECK: .visible .func (.param .b32 func_retval0) z() 59; CHECK: call.uni (retval0), 60; CHECK-NEXT: b, 61 62 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; 68