(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
riscv/
shrink-wrap-1.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-fshrink-wrap" } */
       3  /* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Oz" } } */
       4  
       5  void g(void);
       6  
       7  void f(int x)
       8  {
       9    if (x)
      10      {
      11        /* Force saving of some callee-saved registers. With shrink wrapping
      12  	 enabled these only need to be saved if x is non-zero.  */
      13        register int s2 asm("18") = x;
      14        register int s3 asm("19") = x;
      15        register int s4 asm("20") = x;
      16        asm("" : : "r"(s2));
      17        asm("" : : "r"(s3));
      18        asm("" : : "r"(s4));
      19        g();
      20      }
      21  }
      22  
      23  /* The resulting code should do nothing if X is 0.  */
      24  /* { dg-final { scan-assembler "bne\ta0,zero,.*\n.*ret" } } */