/* 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" } } */ /* { dg-final { cleanup-tree-dump "reassoc1" } } */