(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
tree-ssa/
pr86401-2.c
       1  /* PR tree-optimization/86401 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -fdump-tree-optimized" } */
       4  /* { dg-final { scan-tree-dump-not " \\+ 64" "optimized" } } */
       5  /* { dg-final { scan-tree-dump-not "64 - " "optimized" } } */
       6  /* { dg-final { scan-tree-dump-not " \\+ -64" "optimized" } } */
       7  /* { dg-final { scan-tree-dump-not " & 319" "optimized" } } */
       8  /* { dg-final { scan-tree-dump-not " \\| -128" "optimized" } } */
       9  /* { dg-final { scan-tree-dump-not " \\^ -384" "optimized" } } */
      10  
      11  int f1 (int x) { int m = 64; return (m + x) & (m - 1); }
      12  int f2 (int x) { return (64 + x) & 63; }
      13  int f3 (int x) { int m = 64; return (x + m) & (m - 1); }
      14  int f4 (int x) { return (x + 64) & 63; }
      15  int f5 (int x) { int m = 64; return (m - x) & (m - 1); }
      16  int f6 (int x) { return (64 - x) & 63; }
      17  int f7 (int x) { int m = 64; return (x - m) & (m - 1); }
      18  int f8 (int x) { return (x - 64) & 63; }
      19  int f9 (int x, int y) { int m = 64, n = 256 | (m - 1); return ((x & n) + y) & (m - 1); }
      20  int f10 (int x, int y) { return ((x & 319) + y) & 63; }
      21  int f11 (int x, int y) { int m = 64, n = -128; return ((x | n) + y) & (m - 1); }
      22  int f12 (int x, int y) { return ((x | -128) + y) & 63; }
      23  int f13 (int x, int y) { int m = 64, n = -384; return ((x ^ n) + y) & (m - 1); }
      24  int f14 (int x, int y) { return ((x ^ -384) + y) & 63; }
      25  int f15 (int x, int y) { int m = 64, n = 256 | (m - 1); return (y + (x & n)) & (m - 1); }
      26  int f16 (int x, int y) { return (y + (x & 319)) & 63; }
      27  int f17 (int x, int y) { int m = 64, n = -128; return (y + (x | n)) & (m - 1); }
      28  int f18 (int x, int y) { return (y + (x | -128)) & 63; }
      29  int f19 (int x, int y) { int m = 64, n = -384; return (y + (x ^ n)) & (m - 1); }
      30  int f20 (int x, int y) { return (y + (x ^ -384)) & 63; }
      31  int f21 (int x, int y) { int m = 64, n = 256 | (m - 1); return ((x & n) - y) & (m - 1); }
      32  int f22 (int x, int y) { return ((x & 319) - y) & 63; }
      33  int f23 (int x, int y) { int m = 64, n = -128; return ((x | n) - y) & (m - 1); }
      34  int f24 (int x, int y) { return ((x | -128) - y) & 63; }
      35  int f25 (int x, int y) { int m = 64, n = -384; return ((x ^ n) - y) & (m - 1); }
      36  int f26 (int x, int y) { return ((x ^ -384) - y) & 63; }
      37  int f27 (int x, int y) { int m = 64, n = 256 | (m - 1); return (y - (x & n)) & (m - 1); }
      38  int f28 (int x, int y) { return (y - (x & 319)) & 63; }
      39  int f29 (int x, int y) { int m = 64, n = -128; return (y - (x | n)) & (m - 1); }
      40  int f30 (int x, int y) { return (y - (x | -128)) & 63; }
      41  int f31 (int x, int y) { int m = 64, n = -384; return (y - (x ^ n)) & (m - 1); }
      42  int f32 (int x, int y) { return (y - (x ^ -384)) & 63; }
      43  int f33 (int x) { int m = 64, n = 256 | (m - 1); return (-(x & n)) & (m - 1); }
      44  int f34 (int x) { return (-(x & 319)) & 63; }
      45  int f35 (int x) { int m = 64, n = -128; return (-(x | n)) & (m - 1); }
      46  int f36 (int x) { return (-(x | -128)) & 63; }
      47  int f37 (int x) { int m = 64, n = -384; return (-(x ^ n)) & (m - 1); }
      48  int f38 (int x) { return (-(x ^ -384)) & 63; }