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