| ; 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 |
| } |