75 lines · plain
1; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s2 3; Make sure all regs are spilled4define anyregcc void @anyregcc1() {5entry:6;CHECK-LABEL: anyregcc17;CHECK: stmg %r2, %r15, 16(%r15)8;CHECK: aghi %r15, -969;CHECK: std %f0, 224(%r15)10;CHECK: std %f1,11;CHECK: std %f2, 232(%r15)12;CHECK: std %f3,13;CHECK: std %f4, 240(%r15)14;CHECK: std %f5,15;CHECK: std %f6, 248(%r15)16;CHECK: std %f7,17;CHECK: std %f8,18;CHECK: std %f9,19;CHECK: std %f10,20;CHECK: std %f11,21;CHECK: std %f12,22;CHECK: std %f13,23;CHECK: std %f14,24;CHECK: std %f15,25;CHECK: .cfi_offset %f0, -3226;CHECK: .cfi_offset %f2, -2427;CHECK: .cfi_offset %f4, -1628;CHECK: .cfi_offset %f6, -829;CHECK: ld %f0, 224(%r15)30;CHECK: ld %f2, 232(%r15)31;CHECK: ld %f4, 240(%r15)32;CHECK: ld %f6, 248(%r15)33 call void asm sideeffect "", "~{r0},~{r1},~{r2},~{r3},~{r4},~{r5},~{r6},~{r7},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{f0},~{f1},~{f2},~{f3},~{f4},~{f5},~{f6},~{f7},~{f8},~{f9},~{f10},~{f11},~{f12},~{f13},~{f14},~{f15}"() nounwind34 ret void35}36 37; Make sure we don't spill any FPs38declare anyregcc void @foo()39define void @anyregcc2() {40entry:41;CHECK-LABEL: anyregcc242;CHECK-NOT: std43;CHECK: std %f8,44;CHECK-NEXT: std %f9,45;CHECK-NEXT: std %f10,46;CHECK-NEXT: std %f11,47;CHECK-NEXT: std %f12,48;CHECK-NEXT: std %f13,49;CHECK-NEXT: std %f14,50;CHECK-NEXT: std %f15,51;CHECK-NOT: std52 %a0 = call double asm sideeffect "", "={f0}"() nounwind53 %a1 = call double asm sideeffect "", "={f1}"() nounwind54 %a2 = call double asm sideeffect "", "={f2}"() nounwind55 %a3 = call double asm sideeffect "", "={f3}"() nounwind56 %a4 = call double asm sideeffect "", "={f4}"() nounwind57 %a5 = call double asm sideeffect "", "={f5}"() nounwind58 %a6 = call double asm sideeffect "", "={f6}"() nounwind59 %a7 = call double asm sideeffect "", "={f7}"() nounwind60 %a8 = call double asm sideeffect "", "={f8}"() nounwind61 %a9 = call double asm sideeffect "", "={f9}"() nounwind62 %a10 = call double asm sideeffect "", "={f10}"() nounwind63 %a11 = call double asm sideeffect "", "={f11}"() nounwind64 %a12 = call double asm sideeffect "", "={f12}"() nounwind65 %a13 = call double asm sideeffect "", "={f13}"() nounwind66 %a14 = call double asm sideeffect "", "={f14}"() nounwind67 %a15 = call double asm sideeffect "", "={f15}"() nounwind68 call anyregcc void @foo()69 call void asm sideeffect "", "{f0},{f1},{f2},{f3},{f4},{f5},{f6},{f7},{f8},{f9},{f10},{f11},{f12},{f13},{f14},{f15}"(double %a0, double %a1, double %a2, double %a3, double %a4, double %a5, double %a6, double %a7, double %a8, double %a9, double %a10, double %a11, double %a12, double %a13, double %a14, double %a15)70 ret void71}72 73declare void @llvm.experimental.patchpoint.void(i64, i32, ptr, i32, ...)74declare i64 @llvm.experimental.patchpoint.i64(i64, i32, ptr, i32, ...)75