1e935f05aSMatt Arsenault; RUN: llc -O0 -march=amdgcn -verify-machineinstrs < %s | FileCheck %s
2e935f05aSMatt Arsenault
3e935f05aSMatt Arsenault; Test that the alignment of kernel arguments does not impact the
4e935f05aSMatt Arsenault; alignment of the stack
5e935f05aSMatt Arsenault
6e935f05aSMatt Arsenault; CHECK-LABEL: {{^}}no_args:
7707780b4SMatt Arsenault; CHECK: ScratchSize: 5{{$}}
83dbeefa9SMatt Arsenaultdefine amdgpu_kernel void @no_args() {
9*2a22c5deSYaxun Liu  %alloca = alloca i8, addrspace(5)
10*2a22c5deSYaxun Liu  store volatile i8 0, i8 addrspace(5)* %alloca
11e935f05aSMatt Arsenault  ret void
12e935f05aSMatt Arsenault}
13e935f05aSMatt Arsenault
14e935f05aSMatt Arsenault; CHECK-LABEL: {{^}}force_align32:
15707780b4SMatt Arsenault; CHECK: ScratchSize: 5{{$}}
163dbeefa9SMatt Arsenaultdefine amdgpu_kernel void @force_align32(<8 x i32>) {
17*2a22c5deSYaxun Liu  %alloca = alloca i8, addrspace(5)
18*2a22c5deSYaxun Liu  store volatile i8 0, i8 addrspace(5)* %alloca
19e935f05aSMatt Arsenault  ret void
20e935f05aSMatt Arsenault}
21e935f05aSMatt Arsenault
22e935f05aSMatt Arsenault; CHECK-LABEL: {{^}}force_align64:
23707780b4SMatt Arsenault; CHECK: ScratchSize: 5{{$}}
243dbeefa9SMatt Arsenaultdefine amdgpu_kernel void @force_align64(<16 x i32>) {
25*2a22c5deSYaxun Liu  %alloca = alloca i8, addrspace(5)
26*2a22c5deSYaxun Liu  store volatile i8 0, i8 addrspace(5)* %alloca
27e935f05aSMatt Arsenault  ret void
28e935f05aSMatt Arsenault}
29e935f05aSMatt Arsenault
30e935f05aSMatt Arsenault; CHECK-LABEL: {{^}}force_align128:
31707780b4SMatt Arsenault; CHECK: ScratchSize: 5{{$}}
323dbeefa9SMatt Arsenaultdefine amdgpu_kernel void @force_align128(<32 x i32>) {
33*2a22c5deSYaxun Liu  %alloca = alloca i8, addrspace(5)
34*2a22c5deSYaxun Liu  store volatile i8 0, i8 addrspace(5)* %alloca
35e935f05aSMatt Arsenault  ret void
36e935f05aSMatt Arsenault}
37e935f05aSMatt Arsenault
38e935f05aSMatt Arsenault; CHECK-LABEL: {{^}}force_align256:
39707780b4SMatt Arsenault; CHECK: ScratchSize: 5{{$}}
403dbeefa9SMatt Arsenaultdefine amdgpu_kernel void @force_align256(<64 x i32>) {
41*2a22c5deSYaxun Liu  %alloca = alloca i8, addrspace(5)
42*2a22c5deSYaxun Liu  store volatile i8 0, i8 addrspace(5)* %alloca
43e935f05aSMatt Arsenault  ret void
44e935f05aSMatt Arsenault}
45