(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
riscv/
pr95252.c
       1  /* PR target/95252 */
       2  /* { dg-options "-funroll-loops -msave-restore" } */
       3  /* { dg-do run } */
       4  /* { dg-skip-if "" { *-*-* } { "-O0" } } */
       5  
       6  int a[6], b = 1, d, e;
       7  long long c;
       8  static int f = 1;
       9  
      10  void
      11  fn1 (int p1)
      12  {
      13    b = (b >> 1) & (1 ^ a[(1 ^ p1) & 5]);
      14  }
      15  
      16  void
      17  fn2 ()
      18  {
      19    b = (b >> 1) & (1 ^ a[(b ^ 1) & 1]);
      20    fn1 (c >> 1 & 5);
      21    fn1 (c >> 2 & 5);
      22    fn1 (c >> 4 & 5);
      23    fn1 (c >> 8 & 5);
      24  }
      25  
      26  int
      27  main ()
      28  {
      29    int i, j;
      30    for (; d;)
      31      {
      32        for (; e;)
      33  	fn2 ();
      34        f = 0;
      35      }
      36    for (i = 0; i < 8; i++)
      37      {
      38        if (f)
      39  	i = 9;
      40        for (j = 0; j < 7; j++)
      41  	fn2 ();
      42      }
      43  
      44    if (b != 0)
      45      __builtin_abort ();
      46  
      47    return 0;
      48  }