1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; Test outgoing promoted arguments that are split (and passed by reference).
4 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
6 ; The i96 arg is promoted to i128 and should get the full stack space.
11 ; CHECK-NEXT: stmg %r14, %r15, 112(%r15)
12 ; CHECK-NEXT: .cfi_offset %r14, -48
13 ; CHECK-NEXT: .cfi_offset %r15, -40
14 ; CHECK-NEXT: aghi %r15, -184
15 ; CHECK-NEXT: .cfi_def_cfa_offset 344
16 ; CHECK-NEXT: mvhi 164(%r15), -1
17 ; CHECK-NEXT: mvghi 176(%r15), 0
18 ; CHECK-NEXT: la %r2, 168(%r15)
19 ; CHECK-NEXT: mvghi 168(%r15), 0
20 ; CHECK-NEXT: brasl %r14, fn1@PLT
21 ; CHECK-NEXT: l %r2, 164(%r15)
22 ; CHECK-NEXT: lmg %r14, %r15, 296(%r15)
31 declare void @fn3(i136)
35 ; CHECK-NEXT: stmg %r14, %r15, 112(%r15)
36 ; CHECK-NEXT: .cfi_offset %r14, -48
37 ; CHECK-NEXT: .cfi_offset %r15, -40
38 ; CHECK-NEXT: aghi %r15, -192
39 ; CHECK-NEXT: .cfi_def_cfa_offset 352
40 ; CHECK-NEXT: mvhi 164(%r15), -1
41 ; CHECK-NEXT: mvghi 184(%r15), 0
42 ; CHECK-NEXT: mvghi 176(%r15), 0
43 ; CHECK-NEXT: la %r2, 168(%r15)
44 ; CHECK-NEXT: mvghi 168(%r15), 0
45 ; CHECK-NEXT: brasl %r14, fn3@PLT
46 ; CHECK-NEXT: l %r2, 164(%r15)
47 ; CHECK-NEXT: lmg %r14, %r15, 304(%r15)
51 call void @fn3(i136 0)