• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc < %s -mtriple=x86_64-linux-gnux32 | FileCheck %s
2
3declare void @bar(i32*, i32*, i32*, i32*, i32*, i64*, i32, i32, i32)
4
5; Function Attrs: nounwind uwtable
6define void @foo() {
7entry:
8  %i1 = alloca i32, align 4
9  %i2 = alloca i32, align 4
10  %i3 = alloca i32, align 4
11  %i4 = alloca i32, align 4
12  %i5 = alloca i32, align 4
13  %i6 = alloca i64, align 8
14  %0 = bitcast i32* %i1 to i8*
15  store i32 1, i32* %i1, align 4
16; CHECK: movl $1, 28(%esp)
17  %1 = bitcast i32* %i2 to i8*
18  store i32 2, i32* %i2, align 4
19; CHECK-NEXT: movl $2, 24(%esp)
20  %2 = bitcast i32* %i3 to i8*
21  store i32 3, i32* %i3, align 4
22; CHECK-NEXT: movl $3, 20(%esp)
23  %3 = bitcast i32* %i4 to i8*
24  store i32 4, i32* %i4, align 4
25; CHECK-NEXT: movl $4, 16(%esp)
26  %4 = bitcast i32* %i5 to i8*
27  store i32 5, i32* %i5, align 4
28; CHECK-NEXT: movl $5, 12(%esp)
29  %5 = bitcast i64* %i6 to i8*
30  store i64 6, i64* %i6, align 8
31; CHECK-NEXT: movq $6, 32(%esp)
32; CHECK-NEXT: subl $8, %esp
33; CHECK: leal 36(%rsp), %edi
34; CHECK-NEXT: leal 32(%rsp), %esi
35; CHECK-NEXT: leal 28(%rsp), %edx
36; CHECK-NEXT: leal 24(%rsp), %ecx
37; CHECK-NEXT: leal 20(%rsp), %r8d
38; CHECK-NEXT: leal 40(%rsp), %r9d
39; CHECK: pushq $0
40; CHECK: pushq $0
41; CHECK: pushq $0
42  call void @bar(i32* nonnull %i1, i32* nonnull %i2, i32* nonnull %i3, i32* nonnull %i4, i32* nonnull %i5, i64* nonnull %i6, i32 0, i32 0, i32 0)
43  ret void
44}
45