/* { dg-do compile } */ | |
/* { dg-options "-O1 -funswitch-loops -fdump-tree-unswitch-details -fdump-tree-optimized" } */ | |
int ch; | |
int a[100]; | |
void xxx(void) | |
{ | |
int i; | |
for (i = 0; i < 100; i++) | |
{ | |
if (ch) | |
a[i] = ch; | |
else | |
a[i] = i; | |
} | |
} | |
/* Loop should be unswitched. */ | |
/* { dg-final { scan-tree-dump-times "Unswitching loop" 1 "unswitch" } } */ | |
/* In effect there should be exactly three conditional jumps in the final program. */ | |
/* { dg-final { scan-tree-dump-times "else" 3 "optimized" } } */ |