1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fzero-call-used-regs=all -march=z13 -mzarch" } */
3
4 /* Ensure that all call clobbered GPRs, FPRs, and VRs are zeroed and all call
5 saved registers are kept. */
6
7 void foo (void) { }
8
9 /* { dg-final { scan-assembler-times "lghi\t" 6 } } */
10 /* { dg-final { scan-assembler "lghi\t%r0,0" } } */
11 /* { dg-final { scan-assembler "lghi\t%r1,0" } } */
12 /* { dg-final { scan-assembler "lghi\t%r2,0" } } */
13 /* { dg-final { scan-assembler "lghi\t%r3,0" } } */
14 /* { dg-final { scan-assembler "lghi\t%r4,0" } } */
15 /* { dg-final { scan-assembler "lghi\t%r5,0" } } */
16
17 /* { dg-final { scan-assembler-times "vzero\t" 30 { target { ! lp64 } } } } */
18 /* { dg-final { scan-assembler-times "vzero\t" 24 { target { lp64 } } } } */
19 /* { dg-final { scan-assembler "vzero\t%v0" } } */
20 /* { dg-final { scan-assembler "vzero\t%v1" } } */
21 /* { dg-final { scan-assembler "vzero\t%v2" } } */
22 /* { dg-final { scan-assembler "vzero\t%v3" } } */
23 /* { dg-final { scan-assembler "vzero\t%v4" { target { lp64 } } } } */
24 /* { dg-final { scan-assembler "vzero\t%v5" } } */
25 /* { dg-final { scan-assembler "vzero\t%v6" { target { lp64 } } } } */
26 /* { dg-final { scan-assembler "vzero\t%v7" } } */
27 /* { dg-final { scan-assembler "vzero\t%v8" { target { ! lp64 } } } } */
28 /* { dg-final { scan-assembler "vzero\t%v9" { target { ! lp64 } } } } */
29 /* { dg-final { scan-assembler "vzero\t%v10" { target { ! lp64 } } } } */
30 /* { dg-final { scan-assembler "vzero\t%v11" { target { ! lp64 } } } } */
31 /* { dg-final { scan-assembler "vzero\t%v12" { target { ! lp64 } } } } */
32 /* { dg-final { scan-assembler "vzero\t%v13" { target { ! lp64 } } } } */
33 /* { dg-final { scan-assembler "vzero\t%v14" { target { ! lp64 } } } } */
34 /* { dg-final { scan-assembler "vzero\t%v15" { target { ! lp64 } } } } */
35 /* { dg-final { scan-assembler "vzero\t%v16" } } */
36 /* { dg-final { scan-assembler "vzero\t%v17" } } */
37 /* { dg-final { scan-assembler "vzero\t%v18" } } */
38 /* { dg-final { scan-assembler "vzero\t%v19" } } */
39 /* { dg-final { scan-assembler "vzero\t%v20" } } */
40 /* { dg-final { scan-assembler "vzero\t%v21" } } */
41 /* { dg-final { scan-assembler "vzero\t%v22" } } */
42 /* { dg-final { scan-assembler "vzero\t%v23" } } */
43 /* { dg-final { scan-assembler "vzero\t%v24" } } */
44 /* { dg-final { scan-assembler "vzero\t%v25" } } */
45 /* { dg-final { scan-assembler "vzero\t%v26" } } */
46 /* { dg-final { scan-assembler "vzero\t%v27" } } */
47 /* { dg-final { scan-assembler "vzero\t%v28" } } */
48 /* { dg-final { scan-assembler "vzero\t%v29" } } */
49 /* { dg-final { scan-assembler "vzero\t%v30" } } */
50 /* { dg-final { scan-assembler "vzero\t%v31" } } */