[RISCV] Support 'f' Inline Assembly Constraint
[llvm-core.git] / test / CodeGen / SystemZ / anyregcc-novec.ll
blob72bf00c22658d5c77632996d7b5ea60d8b0f9bf6
1 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
3 ; Make sure all regs are spilled
4 define anyregcc void @anyregcc1() {
5 entry:
6 ;CHECK-LABEL: anyregcc1
7 ;CHECK: stmg %r2, %r15, 16(%r15)
8 ;CHECK: std %f0,
9 ;CHECK: std %f1,
10 ;CHECK: std %f2,
11 ;CHECK: std %f3,
12 ;CHECK: std %f4,
13 ;CHECK: std %f5,
14 ;CHECK: std %f6,
15 ;CHECK: std %f7,
16 ;CHECK: std %f8,
17 ;CHECK: std %f9,
18 ;CHECK: std %f10,
19 ;CHECK: std %f11,
20 ;CHECK: std %f12,
21 ;CHECK: std %f13,
22 ;CHECK: std %f14,
23 ;CHECK: std %f15,
24   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}"() nounwind
25   ret void
28 ; Make sure we don't spill any FPs
29 declare anyregcc void @foo()
30 define void @anyregcc2() {
31 entry:
32 ;CHECK-LABEL: anyregcc2
33 ;CHECK-NOT: std
34 ;CHECK: std %f8,
35 ;CHECK-NEXT: std %f9,
36 ;CHECK-NEXT: std %f10,
37 ;CHECK-NEXT: std %f11,
38 ;CHECK-NEXT: std %f12,
39 ;CHECK-NEXT: std %f13,
40 ;CHECK-NEXT: std %f14,
41 ;CHECK-NEXT: std %f15,
42 ;CHECK-NOT: std
43   %a0 = call double asm sideeffect "", "={f0}"() nounwind
44   %a1 = call double asm sideeffect "", "={f1}"() nounwind
45   %a2 = call double asm sideeffect "", "={f2}"() nounwind
46   %a3 = call double asm sideeffect "", "={f3}"() nounwind
47   %a4 = call double asm sideeffect "", "={f4}"() nounwind
48   %a5 = call double asm sideeffect "", "={f5}"() nounwind
49   %a6 = call double asm sideeffect "", "={f6}"() nounwind
50   %a7 = call double asm sideeffect "", "={f7}"() nounwind
51   %a8 = call double asm sideeffect "", "={f8}"() nounwind
52   %a9 = call double asm sideeffect "", "={f9}"() nounwind
53   %a10 = call double asm sideeffect "", "={f10}"() nounwind
54   %a11 = call double asm sideeffect "", "={f11}"() nounwind
55   %a12 = call double asm sideeffect "", "={f12}"() nounwind
56   %a13 = call double asm sideeffect "", "={f13}"() nounwind
57   %a14 = call double asm sideeffect "", "={f14}"() nounwind
58   %a15 = call double asm sideeffect "", "={f15}"() nounwind
59   call anyregcc void @foo()
60   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)
61   ret void
64 declare void @llvm.experimental.patchpoint.void(i64, i32, i8*, i32, ...)
65 declare i64 @llvm.experimental.patchpoint.i64(i64, i32, i8*, i32, ...)