|
| 1 | +; RUN: llc -mtriple=aarch64-windows-msvc -mattr=+sve -pass-remarks-analysis=stack-frame-layout < %s 2>&1 -o /dev/null | FileCheck %s |
| 2 | + |
| 3 | +; CHECK: Function: f10 |
| 4 | +; CHECK: Offset: [SP+0-16 x vscale], Type: Spill, Align: 16, Size: vscale x 16 |
| 5 | +; CHECK: Offset: [SP+0-32 x vscale], Type: Spill, Align: 16, Size: vscale x 16 |
| 6 | +; CHECK: Offset: [SP+0-48 x vscale], Type: Spill, Align: 16, Size: vscale x 16 |
| 7 | +; CHECK: Offset: [SP+0-64 x vscale], Type: Spill, Align: 16, Size: vscale x 16 |
| 8 | +; CHECK: Offset: [SP+0-80 x vscale], Type: Spill, Align: 16, Size: vscale x 16 |
| 9 | +; CHECK: Offset: [SP+0-96 x vscale], Type: Spill, Align: 16, Size: vscale x 16 |
| 10 | +; CHECK: Offset: [SP+0-112 x vscale], Type: Spill, Align: 16, Size: vscale x 16 |
| 11 | +; CHECK: Offset: [SP+0-128 x vscale], Type: Spill, Align: 16, Size: vscale x 16 |
| 12 | +; CHECK: Offset: [SP+0-144 x vscale], Type: Spill, Align: 16, Size: vscale x 16 |
| 13 | +; CHECK: Offset: [SP+0-160 x vscale], Type: Spill, Align: 16, Size: vscale x 16 |
| 14 | +; CHECK: Offset: [SP+0-176 x vscale], Type: Spill, Align: 16, Size: vscale x 16 |
| 15 | +; CHECK: Offset: [SP+0-192 x vscale], Type: Spill, Align: 16, Size: vscale x 16 |
| 16 | +; CHECK: Offset: [SP+0-208 x vscale], Type: Spill, Align: 16, Size: vscale x 16 |
| 17 | +; CHECK: Offset: [SP+0-224 x vscale], Type: Spill, Align: 16, Size: vscale x 16 |
| 18 | +; CHECK: Offset: [SP+0-240 x vscale], Type: Spill, Align: 16, Size: vscale x 16 |
| 19 | +; CHECK: Offset: [SP+0-256 x vscale], Type: Spill, Align: 16, Size: vscale x 16 |
| 20 | +; CHECK: Offset: [SP+0-258 x vscale], Type: Spill, Align: 2, Size: vscale x 2 |
| 21 | +; CHECK: Offset: [SP+0-260 x vscale], Type: Spill, Align: 2, Size: vscale x 2 |
| 22 | +; CHECK: Offset: [SP+0-262 x vscale], Type: Spill, Align: 2, Size: vscale x 2 |
| 23 | +; CHECK: Offset: [SP+0-264 x vscale], Type: Spill, Align: 2, Size: vscale x 2 |
| 24 | +; CHECK: Offset: [SP+0-266 x vscale], Type: Spill, Align: 2, Size: vscale x 2 |
| 25 | +; CHECK: Offset: [SP+0-268 x vscale], Type: Spill, Align: 2, Size: vscale x 2 |
| 26 | +; CHECK: Offset: [SP+0-270 x vscale], Type: Spill, Align: 2, Size: vscale x 2 |
| 27 | +; CHECK: Offset: [SP+0-272 x vscale], Type: Spill, Align: 2, Size: vscale x 2 |
| 28 | +; CHECK: Offset: [SP-16-272 x vscale], Type: Spill, Align: 16, Size: 8 |
| 29 | +; CHECK: Offset: [SP-24-272 x vscale], Type: Spill, Align: 8, Size: 8 |
| 30 | +; CHECK: Offset: [SP-32-272 x vscale], Type: Spill, Align: 8, Size: 8 |
| 31 | +; CHECK: Offset: [SP-32-288 x vscale], Type: Variable, Align: 16, Size: vscale x 16 |
| 32 | +; CHECK: Offset: [SP-48-288 x vscale], Type: Variable, Align: 8, Size: 16 |
| 33 | + |
| 34 | +declare void @g10(ptr,ptr) |
| 35 | +define void @f10(i64 %n, <vscale x 2 x i64> %x) "frame-pointer"="all" { |
| 36 | + %p1 = alloca [2 x i64] |
| 37 | + %p2 = alloca <vscale x 2 x i64> |
| 38 | + call void @g10(ptr %p1, ptr %p2) |
| 39 | + ret void |
| 40 | +} |
0 commit comments