1*a699ccbfSJanek van Oirschot; RUN: llc -mtriple=amdgcn-mesa-mesa3d < %s | FileCheck %s 2*a699ccbfSJanek van Oirschot 3*a699ccbfSJanek van Oirschot; CHECK-LABEL: non_kernel_recursion: 4*a699ccbfSJanek van Oirschotdefine void @non_kernel_recursion(i32 %val) #2 { 5*a699ccbfSJanek van Oirschot %cmp = icmp eq i32 %val, 0 6*a699ccbfSJanek van Oirschot br i1 %cmp, label %ret, label %call 7*a699ccbfSJanek van Oirschot 8*a699ccbfSJanek van Oirschotcall: 9*a699ccbfSJanek van Oirschot %val.sub1 = sub i32 %val, 1 10*a699ccbfSJanek van Oirschot call void @non_kernel_recursion(i32 %val.sub1) 11*a699ccbfSJanek van Oirschot br label %ret 12*a699ccbfSJanek van Oirschot 13*a699ccbfSJanek van Oirschotret: 14*a699ccbfSJanek van Oirschot ret void 15*a699ccbfSJanek van Oirschot} 16*a699ccbfSJanek van Oirschot 17*a699ccbfSJanek van Oirschot; CHECK-LABEL: kernel_caller_recursion: 18*a699ccbfSJanek van Oirschot; CHECK: .amd_kernel_code_t 19*a699ccbfSJanek van Oirschot; CHECK: is_dynamic_callstack = 1 20*a699ccbfSJanek van Oirschot; CHECK: .end_amd_kernel_code_t 21*a699ccbfSJanek van Oirschotdefine amdgpu_kernel void @kernel_caller_recursion(i32 %n) #0 { 22*a699ccbfSJanek van Oirschot call void @non_kernel_recursion(i32 %n) 23*a699ccbfSJanek van Oirschot ret void 24*a699ccbfSJanek van Oirschot} 25