(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
s390/
zero-scratch-regs-1.c
       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" } } */