Hi. With my rapid simplification of balanced tree emission we regressed on number of tests needed (PR 86847). Apart from that profile info was missing (INV) for jump tables and bit tests. That's fixed in another 2 patches. I'm explaining details of the patches in corresponding emails.
Patch can bootstrap on ppc64le-redhat-linux and survives regression tests. marxin (3): Fix probabilities for jump table (PR tree-optimization/86702). Fix probability for bit-tests. Improve switch code emission for a balanced tree (PR tree-optimization/86847). gcc/testsuite/gcc.dg/tree-ssa/switch-2.c | 25 ++ gcc/testsuite/gcc.dg/tree-ssa/switch-3.c | 20 ++ gcc/testsuite/gcc.dg/tree-ssa/vrp105.c | 37 --- gcc/tree-switch-conversion.c | 329 +++++++++++++++++++---- gcc/tree-switch-conversion.h | 47 +++- 5 files changed, 366 insertions(+), 92 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/switch-2.c create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/switch-3.c delete mode 100644 gcc/testsuite/gcc.dg/tree-ssa/vrp105.c -- 2.18.0