blob: a9f4bda12c557afc540eecd81fa9b17e41c9e489 [file] [log] [blame] [edit]
; RUN: llc -mcpu=gfx1200 < %s | FileCheck %s
target triple = "amdgcn--amdpal"
@global = addrspace(1) global i32 poison, align 4
; CHECK-LABEL: amdpal.pipelines:
; Shouldn't report the part of %vgpr_args that's not used
; CHECK-LABEL: entry_point_symbol: cs_calling_chain
; CHECK: .vgpr_count: 0xa
define amdgpu_cs void @cs_calling_chain(i32 %vgpr, i32 inreg %sgpr) {
%vgpr_args = insertvalue {i32, i32, i32, i32} poison, i32 %vgpr, 1
call void (ptr, i32, i32, {i32, i32, i32, i32}, i32, ...) @llvm.amdgcn.cs.chain.p0.i32.i32.s(
ptr @chain_func, i32 0, i32 inreg %sgpr, {i32, i32, i32, i32} %vgpr_args, i32 0)
unreachable
}
; Neither uses not writes a VGPR
; CHECK-LABEL: chain_func:
; CHECK: .vgpr_count: 0x1
define amdgpu_cs_chain void @chain_func([32 x i32] %args) {
entry:
call void (ptr, i32, {}, [32 x i32], i32, ...) @llvm.amdgcn.cs.chain.p0.i32.s.a(
ptr @chain_func, i32 0, {} inreg {}, [32 x i32] %args, i32 0)
unreachable
}