77 lines · plain
1; Test the padding of unextended integer stack parameters. These are used2; to pass structures.3;4; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s5 6define i8 @f1(i8 %a, i8 %b, i8 %c, i8 %d, i8 %e, i8 %f, i8 %g) {7; CHECK-LABEL: f1:8; CHECK: lb {{%r[0-5]}}, 175(%r15)9; CHECK: lb {{%r[0-5]}}, 167(%r15)10; CHECK: ar %r2, %r311; CHECK: ar %r2, %r412; CHECK: ar %r2, %r513; CHECK: ar %r2, %r614; CHECK: br %r1415 %addb = add i8 %a, %b16 %addc = add i8 %addb, %c17 %addd = add i8 %addc, %d18 %adde = add i8 %addd, %e19 %addf = add i8 %adde, %f20 %addg = add i8 %addf, %g21 ret i8 %addg22}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, %r327; CHECK: ar %r2, %r428; CHECK: ar %r2, %r529; CHECK: ar %r2, %r630; CHECK: ah %r2, 166(%r15)31; CHECK: ah %r2, 174(%r15)32; CHECK: br %r1433 %addb = add i16 %a, %b34 %addc = add i16 %addb, %c35 %addd = add i16 %addc, %d36 %adde = add i16 %addd, %e37 %addf = add i16 %adde, %f38 %addg = add i16 %addf, %g39 ret i16 %addg40}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, %r345; CHECK: ar %r2, %r446; CHECK: ar %r2, %r547; CHECK: ar %r2, %r648; CHECK: a %r2, 164(%r15)49; CHECK: a %r2, 172(%r15)50; CHECK: br %r1451 %addb = add i32 %a, %b52 %addc = add i32 %addb, %c53 %addd = add i32 %addc, %d54 %adde = add i32 %addd, %e55 %addf = add i32 %adde, %f56 %addg = add i32 %addf, %g57 ret i32 %addg58}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, %r363; CHECK: agr %r2, %r464; CHECK: agr %r2, %r565; CHECK: agr %r2, %r666; CHECK: ag %r2, 160(%r15)67; CHECK: ag %r2, 168(%r15)68; CHECK: br %r1469 %addb = add i64 %a, %b70 %addc = add i64 %addb, %c71 %addd = add i64 %addc, %d72 %adde = add i64 %addd, %e73 %addf = add i64 %adde, %f74 %addg = add i64 %addf, %g75 ret i64 %addg76}77