| /* { dg-do compile { target { { x86_64-*-* aarch64-*-* ia64-*-* powerpc64-*-* } && lp64 } } } */ |
| /* { dg-options "-O2 -fdump-tree-switchlower1" } */ |
| |
| int f0(); |
| int f1(); |
| int f2(); |
| int f3(); |
| int f4(); |
| |
| int foo(int a) |
| { |
| switch (a) |
| { |
| case 0: |
| case 2: |
| case 4: |
| case 6: |
| return f0(); |
| case 8: |
| return f1(); |
| case 10: |
| case 14: |
| case 16: |
| case 18: |
| return f2(); |
| case 12: |
| return f3(); |
| case 20: |
| return f4(); |
| } |
| return -1; |
| } |
| |
| /* { dg-final { scan-tree-dump ";; GIMPLE switch case clusters: BT:0-8 BT:10-20" "switchlower1" } } */ |
| |
| int bar(int a) |
| { |
| switch (a) |
| { |
| case 20: |
| case 18: |
| case 16: |
| case 14: |
| return f0(); |
| case 12: |
| return f1(); |
| case 10: |
| case 6: |
| case 4: |
| case 2: |
| return f2(); |
| case 8: |
| return f3(); |
| case 0: |
| return f4(); |
| } |
| return -1; |
| } |
| |
| /* { dg-final { scan-tree-dump ";; GIMPLE switch case clusters: BT:0-10 BT:12-20" "switchlower1" } } */ |