1; Test the padding of unextended integer stack parameters. These are used 2; to pass structures. 3; 4; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s 5 6define i8 @f1(i8 %a, i8 %b, i8 %c, i8 %d, i8 %e, i8 %f, i8 %g) { 7; CHECK-LABEL: f1: 8; CHECK: ar %r2, %r3 9; CHECK: ar %r2, %r4 10; CHECK: ar %r2, %r5 11; CHECK: ar %r2, %r6 12; CHECK: lb {{%r[0-5]}}, 167(%r15) 13; CHECK: lb {{%r[0-5]}}, 175(%r15) 14; CHECK: br %r14 15 %addb = add i8 %a, %b 16 %addc = add i8 %addb, %c 17 %addd = add i8 %addc, %d 18 %adde = add i8 %addd, %e 19 %addf = add i8 %adde, %f 20 %addg = add i8 %addf, %g 21 ret i8 %addg 22} 23 24define i16 @f2(i16 %a, i16 %b, i16 %c, i16 %d, i16 %e, i16 %f, i16 %g) { 25; CHECK-LABEL: f2: 26; CHECK: ar %r2, %r3 27; CHECK: ar %r2, %r4 28; CHECK: ar %r2, %r5 29; CHECK: ar %r2, %r6 30; CHECK: ah %r2, 166(%r15) 31; CHECK: ah %r2, 174(%r15) 32; CHECK: br %r14 33 %addb = add i16 %a, %b 34 %addc = add i16 %addb, %c 35 %addd = add i16 %addc, %d 36 %adde = add i16 %addd, %e 37 %addf = add i16 %adde, %f 38 %addg = add i16 %addf, %g 39 ret i16 %addg 40} 41 42define i32 @f3(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f, i32 %g) { 43; CHECK-LABEL: f3: 44; CHECK: ar %r2, %r3 45; CHECK: ar %r2, %r4 46; CHECK: ar %r2, %r5 47; CHECK: ar %r2, %r6 48; CHECK: a %r2, 164(%r15) 49; CHECK: a %r2, 172(%r15) 50; CHECK: br %r14 51 %addb = add i32 %a, %b 52 %addc = add i32 %addb, %c 53 %addd = add i32 %addc, %d 54 %adde = add i32 %addd, %e 55 %addf = add i32 %adde, %f 56 %addg = add i32 %addf, %g 57 ret i32 %addg 58} 59 60define i64 @f4(i64 %a, i64 %b, i64 %c, i64 %d, i64 %e, i64 %f, i64 %g) { 61; CHECK-LABEL: f4: 62; CHECK: agr %r2, %r3 63; CHECK: agr %r2, %r4 64; CHECK: agr %r2, %r5 65; CHECK: agr %r2, %r6 66; CHECK: ag %r2, 160(%r15) 67; CHECK: ag %r2, 168(%r15) 68; CHECK: br %r14 69 %addb = add i64 %a, %b 70 %addc = add i64 %addb, %c 71 %addd = add i64 %addc, %d 72 %adde = add i64 %addd, %e 73 %addf = add i64 %adde, %f 74 %addg = add i64 %addf, %g 75 ret i64 %addg 76} 77