44 lines · plain
1; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -codegenprepare %s | FileCheck %s2 3define internal fastcc void @callee(ptr nocapture %p, i32 %a) #0 {4 store volatile i32 %a, ptr %p, align 45 ret void6}7 8; CHECK-LABEL: @func_caller(9; CHECK: tail call fastcc void @callee(10; CHECK-NEXT: ret void11; CHECK: ret void12define void @func_caller(ptr nocapture %p, i32 %a, i32 %b) #0 {13entry:14 %cmp = icmp eq i32 %b, 015 br i1 %cmp, label %bb, label %ret16 17bb:18 tail call fastcc void @callee(ptr %p, i32 %a)19 br label %ret20 21ret:22 ret void23}24 25; CHECK-LABEL: @kernel_caller(26; CHECK: tail call fastcc void @callee(27; CHECK-NEXT: br label %ret28 29; CHECK: ret void30define amdgpu_kernel void @kernel_caller(ptr nocapture %p, i32 %a, i32 %b) #0 {31entry:32 %cmp = icmp eq i32 %b, 033 br i1 %cmp, label %bb, label %ret34 35bb:36 tail call fastcc void @callee(ptr %p, i32 %a)37 br label %ret38 39ret:40 ret void41}42 43attributes #0 = { nounwind }44