aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/tree-ssa/minmax-21.c
blob: 5f2b8afc0de9c8557f841392b68562275edce67a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* PR tree-optimization/109424 */
/* { dg-do compile } */
/* Need -O2 for early non-zero bits */
/* { dg-options "-O2 -fdump-tree-forwprop1-raw -fdump-tree-optimized-raw" } */


int maxbool(int ab, int bb)
{
  int a = ab & 1;
  int b = bb & 1;
  int c;
  c = (a > b)?a : b;
  return c;
}
int minbool(int ab, int bb)
{
  int a = ab & 1;
  int b = bb & 1;
  int c;
  c = (a < b)?a : b;
  return c;
}

/* { dg-final { scan-tree-dump-not "max_expr, " "forwprop1"} } */
/* { dg-final { scan-tree-dump-not "min_expr, " "forwprop1"} } */
/* There should only be 3 total bit_and_expr, one &1 for each function and one & for minbool. */
/* { dg-final { scan-tree-dump-times "bit_and_expr, " 3 "optimized"} } */
/* { dg-final { scan-tree-dump-times "bit_ior_expr, " 1 "optimized"} } */