/* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-iftoswitch-optimized" } */ struct f { int len; int arr[4]; }; int test (struct f const *const f) { if (f->arr[3] == 1) { return 12; } else if (f->arr[3] == 2) { return 27; } else if (f->arr[3] == 3) { return 38; } else if (f->arr[3] == 4) { return 18; } else if (f->arr[3] == 5) { return 58; } else if (f->arr[3] == 6) { return 68; } return 0; } /* { dg-final { scan-tree-dump "Canonical GIMPLE case clusters: 1 2 3 4 5 6" "iftoswitch" } } */