/* PR tree-optimization/19105 */
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-reassoc1-details" } */

enum e
{
  a, b, c, d, e, f, g, h
};

int range1 (enum e v, int x)
{
  return x && v != c && v != d && v != e;
}

int range2 (enum e v, int x)
{
  return x && (v != c && v != d && v != e);
}

/* { dg-final { scan-tree-dump-times "Optimizing range tests v_\[0-9\]*.D. -.2, 2. and -.3, 4.\[\n\r\]* into|Optimizing range tests v_\[0-9\]*.D. -.2, 2. and -.3, 3. and -.4, 4.\[\n\r\]* into" 1 "reassoc1" } } */

