(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
riscv/
save-restore-1.c
       1  /* { dg-do run } */
       2  /* { dg-options "-msave-restore -fomit-frame-pointer" } */
       3  
       4  #include <stdlib.h>
       5  
       6  __attribute__((noinline)) int g(void) { return 42; }
       7  
       8  __attribute__((noinline)) int f(void) {
       9    asm volatile ("li s0, 0x87654321" ::: "s0");
      10    return g();
      11  }
      12  
      13  int main(void) {
      14    asm volatile ("li s0, 0x12345678" ::: "s0");
      15  
      16    f();
      17  
      18    long s0;
      19    asm volatile ("mv %0, s0" : "=r"(s0));
      20  
      21    if (s0 == 0x12345678)
      22      exit (0);
      23    else
      24      abort();
      25  }