/* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-optimized" } */ /* From PR21485. */ long NumSift (long *array, int b, unsigned long k) { if (b) if (array[k] < array[k + 1L]) ++k; return array[k]; } /* There should be only two loads left. And the final value in the if (b) arm should be if-converted: tem1 = array[k]; if (b) tem1 = MAX (array[k+1], tem1) return tem1; */ /* { dg-final { scan-tree-dump-times "= \\*" 2 "optimized" } } */ /* { dg-final { scan-tree-dump-times "MAX_EXPR" 1 "optimized" } } */ /* { dg-final { scan-tree-dump-times "= PHI" 1 "optimized" } } */