From: "Martin Liška" <mliska@suse.cz>
To: gcc-patches@gcc.gnu.org
Cc: kazu@gcc.gnu.org, Jan Hubicka <hubicka@ucw.cz>
Subject: [PATCH] Add if-chain to switch conversion pass.
Date: Mon, 04 Nov 2019 14:23:00 -0000 [thread overview]
Message-ID: <2c3db526-cac6-4eeb-4afb-12024f8d5af2@suse.cz> (raw)
[-- Attachment #1: Type: text/plain, Size: 4375 bytes --]
Hello.
The patch adds a new pass that identifies a series of if-elseif
statements and transform then into a GIMPLE switch (if possible).
The pass runs right after tree-ssa pass and I decided to implement
matching of various forms that are introduced by folder (fold_range_test):
1) if condition with equal operation:
<bb 2> :
if (argc_8(D) == 1)
goto <bb 3>; [INV]
else
goto <bb 4>; [INV]
2) if condition with a range check:
<bb 3> :
_4 = c_13(D) + 198;
if (_4 <= 1)
goto <bb 7>; [INV]
else
goto <bb 4>; [INV]
3) mixture of 1) and 2) with a or condition:
<bb 2> :
_1 = aChar_8(D) == 1;
_2 = aChar_8(D) == 10;
_3 = _1 | _2;
if (_3 != 0)
goto <bb 5>; [INV]
else
goto <bb 3>; [INV]
or:
<bb 2> :
aChar.1_1 = (unsigned int) aChar_10(D);
_2 = aChar.1_1 + 4294967287;
_3 = _2 <= 1;
_4 = aChar_10(D) == 12;
_5 = _3 | _4;
if (_5 != 0)
goto <bb 5>; [INV]
else
goto <bb 3>; [INV]
The motivation example in PR88702 is transformed now into:
IsHTMLWhitespace (int aChar)
{
int iftmp.0_1;
<bb 2> [local count: 1073741824]:
switch (aChar_2(D)) <default: <L6> [50.00%], case 9 ... 10: <L7> [50.00%], case 12 ... 13: <L7> [50.00%], case 32: <L7> [50.00%]>
<bb 3> [local count: 536870913]:
<L6>:
<bb 4> [local count: 1073741824]:
# iftmp.0_1 = PHI <1(2), 0(3)>
<L7>:
return iftmp.0_1;
}
I'm also attaching if-elseif chains that are transformed in make all-host of the GCC compiler.
There are ~800 such transformations. The most beautiful transformation is this one:
$ cat -n gcc/c-family/c-common.c
...
2895 /* This used to be a switch, but Genix compiler can't handle that. */
2896 if (code == NE_EXPR)
2897 {
2898 if (max_lt || min_gt)
2899 val = truthvalue_true_node;
2900 }
2901 else if (code == EQ_EXPR)
2902 {
2903 if (max_lt || min_gt)
2904 val = truthvalue_false_node;
2905 }
...
Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
Thoughts?
Thanks,
Martin
gcc/ChangeLog:
2019-11-04 Martin Liska <mliska@suse.cz>
PR tree-optimization/14799
PR ipa/88702
* Makefile.in: Include new tree-if-to-switch.o.
* common.opt: Document -ftree-if-to-switch.
* doc/invoke.texi: Likewise.
* opts.c: Enable the pass with -O2+.
* passes.def: Add ne pass.
* timevar.def (TV_TREE_IF_TO_SWITCH): Add new
timevar.
* tree-if-to-switch.c: New file.
* tree-pass.h (make_pass_if_to_switch): New.
gcc/testsuite/ChangeLog:
2019-11-04 Martin Liska <mliska@suse.cz>
PR tree-optimization/14799
PR ipa/88702
* gcc.dg/tree-ssa/if-to-switch-1.c: New test.
* gcc.dg/tree-ssa/if-to-switch-2.c: New test.
* gcc.dg/tree-ssa/if-to-switch-3.c: New test.
* gcc.dg/tree-ssa/if-to-switch-4.c: New test.
* gcc.dg/tree-ssa/if-to-switch-5.c: New test.
* gcc.dg/tree-ssa/reassoc-32.c: Disable tree-if-to-switch
in order to transform the range test.
* gcc.dg/tree-ssa/reassoc-33.c: Likewise.
---
gcc/Makefile.in | 1 +
gcc/common.opt | 4 +
gcc/doc/invoke.texi | 10 +-
gcc/opts.c | 1 +
gcc/passes.def | 1 +
.../gcc.dg/tree-ssa/if-to-switch-1.c | 35 +
.../gcc.dg/tree-ssa/if-to-switch-2.c | 11 +
.../gcc.dg/tree-ssa/if-to-switch-3.c | 11 +
.../gcc.dg/tree-ssa/if-to-switch-4.c | 35 +
.../gcc.dg/tree-ssa/if-to-switch-5.c | 12 +
gcc/testsuite/gcc.dg/tree-ssa/reassoc-32.c | 2 +-
gcc/testsuite/gcc.dg/tree-ssa/reassoc-33.c | 2 +-
gcc/timevar.def | 1 +
gcc/tree-if-to-switch.c | 611 ++++++++++++++++++
gcc/tree-pass.h | 1 +
15 files changed, 735 insertions(+), 3 deletions(-)
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-1.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-2.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-3.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-4.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-5.c
create mode 100644 gcc/tree-if-to-switch.c
[-- Attachment #2: 0001-Add-if-chain-to-switch-conversion-pass.patch --]
[-- Type: text/x-patch, Size: 26913 bytes --]
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 035b58f50c0..0d92347ad9b 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -1525,6 +1525,7 @@ OBJS = \
tree-eh.o \
tree-emutls.o \
tree-if-conv.o \
+ tree-if-to-switch.o \
tree-inline.o \
tree-into-ssa.o \
tree-iterator.o \
diff --git a/gcc/common.opt b/gcc/common.opt
index cc279f411d7..671b2a99391 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -2649,6 +2649,10 @@ ftree-switch-conversion
Common Report Var(flag_tree_switch_conversion) Optimization
Perform conversions of switch initializations.
+ftree-if-to-switch
+Common Report Var(flag_tree_if_to_switch) Optimization
+Perform conversions of if-elseif chain into a switch statement.
+
ftree-dce
Common Report Var(flag_tree_dce) Optimization
Enable SSA dead code elimination optimization on trees.
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index faa7fa95a0e..125b34e7f43 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -478,7 +478,7 @@ Objective-C and Objective-C++ Dialects}.
-fthread-jumps -ftracer -ftree-bit-ccp @gol
-ftree-builtin-call-dce -ftree-ccp -ftree-ch @gol
-ftree-coalesce-vars -ftree-copy-prop -ftree-dce -ftree-dominator-opts @gol
--ftree-dse -ftree-forwprop -ftree-fre -fcode-hoisting @gol
+-ftree-dse -ftree-forwprop -ftree-fre -ftree-if-to-switch -fcode-hoisting @gol
-ftree-loop-if-convert -ftree-loop-im @gol
-ftree-phiprop -ftree-loop-distribution -ftree-loop-distribute-patterns @gol
-ftree-loop-ivcanon -ftree-loop-linear -ftree-loop-optimize @gol
@@ -8443,6 +8443,7 @@ also turns on the following optimization flags:
-fstrict-aliasing @gol
-fthread-jumps @gol
-ftree-builtin-call-dce @gol
+-ftree-if-to-switch @gol
-ftree-pre @gol
-ftree-switch-conversion -ftree-tail-merge @gol
-ftree-vrp}
@@ -9628,6 +9629,13 @@ Perform conversion of simple initializations in a switch to
initializations from a scalar array. This flag is enabled by default
at @option{-O2} and higher.
+@item -ftree-if-to-switch
+@opindex ftree-if-to-switch
+Perform conversion of an if cascade into a switch statement.
+The transformation can help to produce a faster code for
+the switch statement. This flag is enabled by default
+at @option{-O2} and higher.
+
@item -ftree-tail-merge
@opindex ftree-tail-merge
Look for identical code sequences. When found, replace one with a jump to the
diff --git a/gcc/opts.c b/gcc/opts.c
index 10b9f108f8d..f781cfd5709 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -524,6 +524,7 @@ static const struct default_options default_options_table[] =
{ OPT_LEVELS_2_PLUS, OPT_fthread_jumps, NULL, 1 },
{ OPT_LEVELS_2_PLUS, OPT_ftree_pre, NULL, 1 },
{ OPT_LEVELS_2_PLUS, OPT_ftree_switch_conversion, NULL, 1 },
+ { OPT_LEVELS_2_PLUS, OPT_ftree_if_to_switch, NULL, 1 },
{ OPT_LEVELS_2_PLUS, OPT_ftree_tail_merge, NULL, 1 },
{ OPT_LEVELS_2_PLUS, OPT_ftree_vrp, NULL, 1 },
{ OPT_LEVELS_2_PLUS, OPT_fvect_cost_model_, NULL, VECT_COST_MODEL_CHEAP },
diff --git a/gcc/passes.def b/gcc/passes.def
index 798a391bd35..2bd2c348fb3 100644
--- a/gcc/passes.def
+++ b/gcc/passes.def
@@ -59,6 +59,7 @@ along with GCC; see the file COPYING3. If not see
NEXT_PASS (pass_early_warn_uninitialized);
NEXT_PASS (pass_ubsan);
NEXT_PASS (pass_nothrow);
+ NEXT_PASS (pass_if_to_switch);
NEXT_PASS (pass_rebuild_cgraph_edges);
POP_INSERT_PASSES ()
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-1.c b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-1.c
new file mode 100644
index 00000000000..bcb8ef2a160
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-1.c
@@ -0,0 +1,35 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-iftoswitch" } */
+
+int global;
+int foo ();
+
+int main(int argc, char **argv)
+{
+ if (argc == 1)
+ foo ();
+ else if (argc == 2)
+ {
+ global += 1;
+ }
+ else if (argc == 3)
+ {
+ foo ();
+ foo ();
+ }
+ else if (argc == 4)
+ {
+ foo ();
+ }
+ else if (argc == 5)
+ {
+ global = 2;
+ }
+ else
+ global -= 123;
+
+ global -= 12;
+ return 0;
+}
+
+/* { dg-final { scan-tree-dump "Condition chain \\(at .*if-to-switch-1.c:9\\) with 5 conditions \\(5 BBs\\) transformed into a switch statement." "iftoswitch" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-2.c b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-2.c
new file mode 100644
index 00000000000..316e772ec29
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-2.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-iftoswitch" } */
+
+int IsHTMLWhitespaceNoRange(int aChar)
+{
+ return aChar == 0x0001 || aChar == 0x000A ||
+ aChar == 0x000C || aChar == 0x000E ||
+ aChar == 0x0020;
+}
+
+/* { dg-final { scan-tree-dump "Condition chain \\(at .*if-to-switch-2.c:7\\) with 5 conditions \\(3 BBs\\) transformed into a switch statement." "iftoswitch" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-3.c b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-3.c
new file mode 100644
index 00000000000..fd07d909a3c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-3.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-iftoswitch" } */
+
+int IsHTMLWhitespace(int aChar)
+{
+ return aChar == 0x0009 || aChar == 0x000A ||
+ aChar == 0x000C || aChar == 0x000D ||
+ aChar == 0x0020 || aChar == 0x0030;
+}
+
+/* { dg-final { scan-tree-dump "Condition chain \\(at .*if-to-switch-3.c:8\\) with 5 conditions \\(3 BBs\\) transformed into a switch statement." "iftoswitch" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-4.c b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-4.c
new file mode 100644
index 00000000000..4e047505a2b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-4.c
@@ -0,0 +1,35 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-iftoswitch" } */
+
+int global;
+int foo ();
+
+int main(int argc, char **argv)
+{
+ if (argc == 1)
+ foo ();
+ else if (argc == 2)
+ {
+ global += 1;
+ }
+ else if (argc == 3)
+ {
+ foo ();
+ foo ();
+ }
+ else if (argc == 4)
+ {
+ foo ();
+ }
+ else if (argc == 1)
+ {
+ global = 2;
+ }
+ else
+ global -= 123;
+
+ global -= 12;
+ return 0;
+}
+
+/* { dg-final { scan-tree-dump-not "Condition chain " "iftoswitch" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-5.c b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-5.c
new file mode 100644
index 00000000000..acb8b4b1211
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-5.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-iftoswitch" } */
+
+int crud (unsigned char c)
+{
+ return (((((((((((int) c == 46) || (int) c == 44)
+ || (int) c == 58) || (int) c == 59) || (int) c == 60)
+ || (int) c == 62) || (int) c == 34) || (int) c == 92)
+ || (int) c == 39) != 0);
+}
+
+/* { dg-final { scan-tree-dump "Condition chain \\(at .*if-to-switch-5.c:9\\) with 8 conditions \\(5 BBs\\) transformed into a switch statement." "iftoswitch" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-32.c b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-32.c
index 944362ad076..0d4411fecf7 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-32.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-32.c
@@ -1,6 +1,6 @@
/* { dg-do run { target { ! "m68k*-*-* mmix*-*-* bfin*-*-* v850*-*-* moxie*-*-* cris*-*-* m32c*-*-* fr30*-*-* mcore*-*-* powerpc*-*-* xtensa*-*-*"} } } */
-/* { dg-options "-O2 -fno-inline -fdump-tree-reassoc1-details --param logical-op-non-short-circuit=1" } */
+/* { dg-options "-O2 -fno-inline -fdump-tree-reassoc1-details --param logical-op-non-short-circuit=1 -fno-tree-if-to-switch" } */
/* { dg-additional-options "-mbranch-cost=2" { target branch_cost } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-33.c b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-33.c
index db0ce4c8463..d52860fa2f4 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-33.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-33.c
@@ -1,6 +1,6 @@
/* { dg-do run { target { ! "m68k*-*-* mmix*-*-* bfin*-*-* v850*-*-* moxie*-*-* cris*-*-* m32c*-*-* fr30*-*-* mcore*-*-* powerpc*-*-* xtensa*-*-* hppa*-*-* nios2*-*-* or1k-*-*-* pru*-*-*"} } } */
-/* { dg-options "-O2 -fno-inline -fdump-tree-reassoc1-details --param logical-op-non-short-circuit=1" } */
+/* { dg-options "-O2 -fno-inline -fdump-tree-reassoc1-details --param logical-op-non-short-circuit=1 -fno-tree-if-to-switch" } */
/* { dg-additional-options "-mbranch-cost=2" { target branch_cost } } */
int test (int a, int b, int c)
diff --git a/gcc/timevar.def b/gcc/timevar.def
index 357fcfd65c5..20ea20a6178 100644
--- a/gcc/timevar.def
+++ b/gcc/timevar.def
@@ -290,6 +290,7 @@ DEFTIMEVAR (TV_VAR_TRACKING , "variable tracking")
DEFTIMEVAR (TV_VAR_TRACKING_DATAFLOW , "var-tracking dataflow")
DEFTIMEVAR (TV_VAR_TRACKING_EMIT , "var-tracking emit")
DEFTIMEVAR (TV_TREE_IFCOMBINE , "tree if-combine")
+DEFTIMEVAR (TV_TREE_IF_TO_SWITCH , "if to switch conversion")
DEFTIMEVAR (TV_TREE_UNINIT , "uninit var analysis")
DEFTIMEVAR (TV_PLUGIN_INIT , "plugin initialization")
DEFTIMEVAR (TV_PLUGIN_RUN , "plugin execution")
diff --git a/gcc/tree-if-to-switch.c b/gcc/tree-if-to-switch.c
new file mode 100644
index 00000000000..43984b6b7e4
--- /dev/null
+++ b/gcc/tree-if-to-switch.c
@@ -0,0 +1,611 @@
+/* If-elseif-else to switch conversion pass
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#include "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include "backend.h"
+#include "rtl.h"
+#include "tree.h"
+#include "gimple.h"
+#include "tree-pass.h"
+#include "ssa.h"
+#include "gimple-pretty-print.h"
+#include "fold-const.h"
+#include "gimple-iterator.h"
+#include "tree-cfg.h"
+#include "tree-dfa.h"
+#include "domwalk.h"
+#include "tree-cfgcleanup.h"
+#include "params.h"
+#include "alias.h"
+#include "tree-ssa-loop.h"
+#include "diagnostic.h"
+#include "cfghooks.h"
+#include "tree-into-ssa.h"
+#include "cfganal.h"
+
+/* Tuple that holds minimum and maximum values in a case. */
+
+struct case_range
+{
+ /* Default constructor. */
+ case_range ():
+ m_min (NULL_TREE), m_max (NULL_TREE)
+ {}
+
+ /* Minimum case value. */
+ tree m_min;
+ /* Maximum case value. */
+ tree m_max;
+};
+
+/* One entry of a if chain. */
+
+struct if_chain_entry
+{
+ /* Constructor. */
+ if_chain_entry (basic_block bb, edge true_edge, edge false_edge)
+ : m_case_values (), m_bb (bb),
+ m_true_edge (true_edge), m_false_edge (false_edge)
+ {
+ m_case_values.create (2);
+ }
+
+ /* Vector of at maximum 2 case ranges. */
+ vec<case_range> m_case_values;
+ /* Basic block of the original condition. */
+ basic_block m_bb;
+ /* True edge of the gimple condition. */
+ edge m_true_edge;
+ /* False edge of the gimple condition. */
+ edge m_false_edge;
+};
+
+/* Master structure for one if to switch conversion candidate. */
+
+struct if_chain
+{
+ /* Default constructor. */
+ if_chain():
+ m_first_condition (NULL), m_index (NULL_TREE), m_entries ()
+ {
+ m_entries.create (2);
+ }
+
+ /* Set index and check that it is not a different one. */
+ bool set_and_check_index (tree index);
+
+ /* Verify that all case ranges do not overlap. */
+ bool check_non_overlapping_cases ();
+
+ /* First condition of the chain. */
+ gcond *m_first_condition;
+ /* Switch index. */
+ tree m_index;
+ /* If chain entries. */
+ vec<if_chain_entry> m_entries;
+};
+
+bool
+if_chain::set_and_check_index (tree index)
+{
+ if (TREE_CODE (index) != SSA_NAME || !INTEGRAL_TYPE_P (TREE_TYPE (index)))
+ return false;
+
+ if (m_index == NULL)
+ m_index = index;
+
+ return index == m_index;
+}
+
+/* Compare two case ranges by minimum value. */
+
+static int
+range_cmp (const void *a, const void *b)
+{
+ const case_range *cr1 = *(const case_range * const *) a;
+ const case_range *cr2 = *(const case_range * const *) b;
+
+ return tree_int_cst_compare (cr1->m_min, cr2->m_min);
+}
+
+bool
+if_chain::check_non_overlapping_cases ()
+{
+ auto_vec<case_range *> all_ranges;
+ for (unsigned i = 0; i < m_entries.length (); i++)
+ for (unsigned j =0; j < m_entries[i].m_case_values.length (); j++)
+ all_ranges.safe_push (&m_entries[i].m_case_values[j]);
+
+ all_ranges.qsort (range_cmp);
+
+ for (unsigned i = 0; i < all_ranges.length () - 1; i++)
+ {
+ case_range *left = all_ranges[i];
+ case_range *right = all_ranges[i + 1];
+ if (tree_int_cst_le (left->m_min, right->m_min)
+ && tree_int_cst_le (right->m_min, left->m_max))
+ return false;
+ }
+
+ return true;
+}
+
+/* DOM walker for if to switch conversion. */
+
+class if_dom_walker : public dom_walker
+{
+public:
+ if_dom_walker (cdi_direction direction)
+ : dom_walker (direction), all_candidates (), m_visited_bbs ()
+ {}
+
+ virtual edge before_dom_children (basic_block);
+
+ /* List of all found candidates. */
+ auto_vec<if_chain> all_candidates;
+
+private:
+ /* Bitmap of all visited basic blocks. */
+ auto_bitmap m_visited_bbs;
+};
+
+/* Build case label with MIN and MAX values of a given basic block DEST. */
+
+static tree
+build_case_label (tree min, tree max, basic_block dest)
+{
+ tree label = gimple_block_label (dest);
+ return build_case_label (min, min == max ? NULL_TREE : max, label);
+}
+
+/* Compare two integer constants. */
+
+static int
+label_cmp (const void *a, const void *b)
+{
+ const_tree l1 = *(const const_tree *) a;
+ const_tree l2 = *(const const_tree *) b;
+
+ return tree_int_cst_compare (CASE_LOW (l1), CASE_LOW (l2));
+}
+
+/* Record all original phi arguments into PHI_MAX. Do it for
+ a given edge E. */
+
+static void
+record_phi_arguments (hash_map<basic_block, vec<tree> > *phi_map, edge e)
+{
+ if (phi_map->get (e->dest) == NULL)
+ {
+ vec<tree> phi_arguments;
+ phi_arguments.create (4);
+ for (gphi_iterator gsi = gsi_start_phis (e->dest); !gsi_end_p (gsi);
+ gsi_next (&gsi))
+ {
+ gphi *phi = gsi.phi ();
+ if (!virtual_operand_p (gimple_phi_result (phi)))
+ phi_arguments.safe_push (PHI_ARG_DEF_FROM_EDGE (phi, e));
+ }
+
+ phi_map->put (e->dest, phi_arguments);
+ }
+}
+
+/* Convert a given if CHAIN into a switch GIMPLE statement. */
+
+static void
+convert_if_conditions_to_switch (if_chain &chain)
+{
+ auto_vec<tree> labels;
+ if_chain_entry first_cond = chain.m_entries[0];
+
+ unsigned entries = chain.m_entries.length ();
+ edge default_edge = chain.m_entries[entries - 1].m_false_edge;
+ basic_block default_bb = default_edge->dest;
+
+ /* Recond all PHI nodes that will later be fixed. */
+ hash_map<basic_block, vec<tree> > phi_map;
+ for (unsigned i = 0; i < chain.m_entries.length (); i++)
+ record_phi_arguments (&phi_map, chain.m_entries[i].m_true_edge);
+ record_phi_arguments (&phi_map, chain.m_entries[entries - 1].m_false_edge);
+
+ for (unsigned i = 0; i < chain.m_entries.length (); i++)
+ {
+ if_chain_entry entry = chain.m_entries[i];
+
+ basic_block case_bb = entry.m_true_edge->dest;
+
+ for (unsigned j = 0; j < entry.m_case_values.length (); j++)
+ labels.safe_push (build_case_label (entry.m_case_values[j].m_min,
+ entry.m_case_values[j].m_max,
+ case_bb));
+ default_bb = entry.m_false_edge->dest;
+
+ if (i == 0)
+ {
+ remove_edge (first_cond.m_true_edge);
+ remove_edge (first_cond.m_false_edge);
+ }
+ else
+ delete_basic_block (entry.m_bb);
+
+ make_edge (first_cond.m_bb, case_bb, 0);
+ }
+
+ labels.qsort (label_cmp);
+
+ edge e = find_edge (first_cond.m_bb, default_bb);
+ if (e == NULL)
+ e = make_edge (first_cond.m_bb, default_bb, 0);
+ gswitch *s
+ = gimple_build_switch (chain.m_index,
+ build_case_label (NULL_TREE, NULL_TREE, default_bb),
+ labels);
+
+ gimple_stmt_iterator gsi = gsi_for_stmt (chain.m_first_condition);
+ gsi_remove (&gsi, true);
+ gsi_insert_before (&gsi, s, GSI_NEW_STMT);
+
+ /* Fill up missing PHI node arguments. */
+ for (hash_map<basic_block, vec<tree> >::iterator it = phi_map.begin ();
+ it != phi_map.end (); ++it)
+ {
+ edge e = find_edge (first_cond.m_bb, (*it).first);
+ unsigned i = 0;
+ for (gphi_iterator gsi = gsi_start_phis ((*it).first); !gsi_end_p (gsi);
+ gsi_next (&gsi))
+ {
+ gphi *phi = gsi.phi ();
+ if (!virtual_operand_p (gimple_phi_result (phi)))
+ add_phi_arg (phi, (*it).second[i++], e, UNKNOWN_LOCATION);
+ }
+ }
+}
+
+static bool
+extract_case_from_stmt (tree rhs1, tree rhs2, tree_code code, tree *index,
+ case_range *range, unsigned *visited_stmt_count)
+{
+ if (code == EQ_EXPR)
+ {
+ /* Handle situation 2a:
+ _1 = aChar_8(D) == 1; */
+ *index = rhs1;
+ range->m_min = rhs2;
+ range->m_max = range->m_min;
+
+ if (TREE_CODE (rhs2) != INTEGER_CST)
+ return false;
+
+ *visited_stmt_count += 1;
+ return true;
+ }
+ else if (code == LE_EXPR)
+ {
+ /* Handle situation 2b:
+ aChar.1_1 = (unsigned int) aChar_10(D);
+ _2 = aChar.1_1 + 4294967287;
+ _3 = _2 <= 1; */
+ tree ssa = rhs1;
+ tree range_size = rhs2;
+ if (TREE_CODE (ssa) != SSA_NAME
+ || TREE_CODE (range_size) != INTEGER_CST)
+ return false;
+
+ gassign *subtraction = dyn_cast<gassign *> (SSA_NAME_DEF_STMT (ssa));
+ if (subtraction == NULL
+ || gimple_assign_rhs_code (subtraction) != PLUS_EXPR)
+ return false;
+
+ tree casted = gimple_assign_rhs1 (subtraction);
+ tree min = gimple_assign_rhs2 (subtraction);
+ if (TREE_CODE (casted) != SSA_NAME
+ || TREE_CODE (min) != INTEGER_CST)
+ return false;
+
+ if (!SSA_NAME_IS_DEFAULT_DEF (casted))
+ {
+ gassign *to_unsigned
+ = dyn_cast<gassign *> (SSA_NAME_DEF_STMT (casted));
+ if (to_unsigned == NULL
+ || !gimple_assign_unary_nop_p (to_unsigned)
+ || !TYPE_UNSIGNED (TREE_TYPE (casted)))
+ return false;
+ *index = gimple_assign_rhs1 (to_unsigned);
+ ++(*visited_stmt_count);
+ }
+ else
+ *index = casted;
+
+ tree type = TREE_TYPE (*index);
+ tree range_min = fold_convert (type, const_unop (NEGATE_EXPR, type, min));
+
+ range->m_min = range_min;
+ range->m_max = const_binop (PLUS_EXPR, TREE_TYPE (*index),
+ range_min, fold_convert (type, range_size));
+ *visited_stmt_count += 2;
+ return true;
+ }
+ else
+ return false;
+}
+
+edge
+if_dom_walker::before_dom_children (basic_block bb)
+{
+ if_chain chain;
+ unsigned total_case_values = 0;
+
+ while (true)
+ {
+ bool first = chain.m_entries.is_empty ();
+ if (bitmap_bit_p (m_visited_bbs, bb->index))
+ break;
+ bitmap_set_bit (m_visited_bbs, bb->index);
+
+ gimple_stmt_iterator gsi = gsi_last_nondebug_bb (bb);
+ if (gsi_end_p (gsi))
+ break;
+
+ if (!chain.m_entries.is_empty () && EDGE_COUNT (bb->preds) != 1)
+ break;
+
+ gcond *cond = dyn_cast<gcond *> (gsi_stmt (gsi));
+ if (cond == NULL)
+ break;
+
+ if (first)
+ chain.m_first_condition = cond;
+
+ edge true_edge, false_edge;
+ extract_true_false_edges_from_block (bb, &true_edge, &false_edge);
+
+ if_chain_entry entry (bb, true_edge, false_edge);
+
+ /* Current we support following patterns (situations):
+
+ 1) if condition with equal operation:
+
+ <bb 2> :
+ if (argc_8(D) == 1)
+ goto <bb 3>; [INV]
+ else
+ goto <bb 4>; [INV]
+
+ 2) if condition with a range check:
+
+ <bb 3> :
+ _4 = c_13(D) + 198;
+ if (_4 <= 1)
+ goto <bb 7>; [INV]
+ else
+ goto <bb 4>; [INV]
+
+ 3) mixture of 1) and 2) with a or condition:
+
+ <bb 2> :
+ _1 = aChar_8(D) == 1;
+ _2 = aChar_8(D) == 10;
+ _3 = _1 | _2;
+ if (_3 != 0)
+ goto <bb 5>; [INV]
+ else
+ goto <bb 3>; [INV]
+
+ or:
+
+ <bb 2> :
+ aChar.1_1 = (unsigned int) aChar_10(D);
+ _2 = aChar.1_1 + 4294967287;
+ _3 = _2 <= 1;
+ _4 = aChar_10(D) == 12;
+ _5 = _3 | _4;
+ if (_5 != 0)
+ goto <bb 5>; [INV]
+ else
+ goto <bb 3>; [INV]
+ */
+
+ tree lhs = gimple_cond_lhs (cond);
+ tree rhs = gimple_cond_rhs (cond);
+ tree_code code = gimple_cond_code (cond);
+ unsigned visited_stmt_count = 0;
+ unsigned case_values = 0;
+ tree index;
+
+ /* Situation 1. */
+ if (code == EQ_EXPR)
+ {
+ case_range range;
+ if (!extract_case_from_stmt (lhs, rhs, code, &index, &range,
+ &visited_stmt_count))
+ break;
+ if (!chain.set_and_check_index (index))
+ break;
+ entry.m_case_values.safe_push (range);
+ case_values = 1;
+ }
+ /* Situation 2. */
+ else if (code == LE_EXPR)
+ {
+ case_range range;
+ if (!extract_case_from_stmt (lhs, rhs, code, &index, &range,
+ &visited_stmt_count))
+ break;
+ if (!chain.set_and_check_index (index))
+ break;
+ entry.m_case_values.safe_push (range);
+ case_values = 1;
+ }
+ /* Situation 3. */
+ else if (code == NE_EXPR
+ && integer_zerop (rhs)
+ && TREE_CODE (lhs) == SSA_NAME
+ && TREE_CODE (TREE_TYPE (lhs)) == BOOLEAN_TYPE)
+ {
+ gassign *def = dyn_cast<gassign *> (SSA_NAME_DEF_STMT (lhs));
+ if (def == NULL
+ || gimple_assign_rhs_code (def) != BIT_IOR_EXPR
+ || gimple_bb (def) != bb)
+ break;
+
+ tree rhs1 = gimple_assign_rhs1 (def);
+ tree rhs2 = gimple_assign_rhs2 (def);
+ if (TREE_CODE (rhs1) != SSA_NAME || TREE_CODE (rhs2) != SSA_NAME)
+ break;
+
+ gassign *def1 = dyn_cast<gassign *> (SSA_NAME_DEF_STMT (rhs1));
+ gassign *def2 = dyn_cast<gassign *> (SSA_NAME_DEF_STMT (rhs2));
+ if (def1 == NULL
+ || def2 == NULL
+ || def1 == def2
+ || gimple_bb (def1) != bb
+ || gimple_bb (def2) != bb)
+ break;
+
+ case_range range1;
+ if (!extract_case_from_stmt (gimple_assign_rhs1 (def1),
+ gimple_assign_rhs2 (def1),
+ gimple_assign_rhs_code (def1),
+ &index, &range1,
+ &visited_stmt_count))
+ break;
+ rhs = gimple_assign_rhs2 (def1);
+ if (!chain.set_and_check_index (index))
+ break;
+ entry.m_case_values.safe_push (range1);
+
+ case_range range2;
+ if (!extract_case_from_stmt (gimple_assign_rhs1 (def2),
+ gimple_assign_rhs2 (def2),
+ gimple_assign_rhs_code (def2),
+ &index, &range2,
+ &visited_stmt_count))
+ break;
+ rhs = gimple_assign_rhs2 (def2);
+ if (!chain.set_and_check_index (index))
+ break;
+ entry.m_case_values.safe_push (range2);
+ case_values = 2;
+ visited_stmt_count += 2;
+ }
+ else
+ break;
+
+ /* If it's not the first condition, then we need a BB without
+ any statements. */
+ if (!first)
+ {
+ unsigned stmt_count = 0;
+ for (gimple_stmt_iterator gsi = gsi_start_nondebug_bb (bb);
+ !gsi_end_p (gsi); gsi_next_nondebug (&gsi))
+ ++stmt_count;
+
+ if (stmt_count - visited_stmt_count != 0)
+ break;
+ }
+
+ total_case_values += case_values;
+ chain.m_entries.safe_push (entry);
+
+ /* Follow if-elseif-elseif chain. */
+ bb = false_edge->dest;
+ }
+
+ if (total_case_values >= 3
+ && chain.check_non_overlapping_cases ())
+ {
+ if (dump_file)
+ {
+ expanded_location loc
+ = expand_location (gimple_location (chain.m_first_condition));
+ fprintf (dump_file, "Condition chain (at %s:%d) with %d conditions "
+ "(%d BBs) transformed into a switch statement.\n",
+ loc.file, loc.line, total_case_values,
+ chain.m_entries.length ());
+ }
+
+ all_candidates.safe_push (chain);
+ }
+
+ return NULL;
+}
+
+namespace {
+
+const pass_data pass_data_if_to_switch =
+{
+ GIMPLE_PASS, /* type */
+ "iftoswitch", /* name */
+ OPTGROUP_NONE, /* optinfo_flags */
+ TV_TREE_IF_TO_SWITCH, /* tv_id */
+ ( PROP_cfg | PROP_ssa ), /* properties_required */
+ 0, /* properties_provided */
+ 0, /* properties_destroyed */
+ 0, /* todo_flags_start */
+ TODO_cleanup_cfg | TODO_update_ssa /* todo_flags_finish */
+};
+
+class pass_if_to_switch : public gimple_opt_pass
+{
+public:
+ pass_if_to_switch (gcc::context *ctxt)
+ : gimple_opt_pass (pass_data_if_to_switch, ctxt)
+ {}
+
+ /* opt_pass methods: */
+ virtual bool gate (function *) { return flag_tree_if_to_switch != 0; }
+ virtual unsigned int execute (function *);
+
+}; // class pass_if_to_switch
+
+unsigned int
+pass_if_to_switch::execute (function *fun)
+{
+ /* We might consider making this a property of each pass so that it
+ can be [re]computed on an as-needed basis. Particularly since
+ this pass could be seen as an extension of DCE which needs post
+ dominators. */
+ calculate_dominance_info (CDI_DOMINATORS);
+
+ /* Dead store elimination is fundamentally a walk of the post-dominator
+ tree and a backwards walk of statements within each block. */
+ if_dom_walker walker (CDI_DOMINATORS);
+ walker.walk (fun->cfg->x_entry_block_ptr);
+
+ for (unsigned i = 0; i < walker.all_candidates.length (); i++)
+ convert_if_conditions_to_switch (walker.all_candidates[i]);
+
+ /* For now, just wipe the dominator information. */
+ free_dominance_info (CDI_DOMINATORS);
+
+ mark_virtual_operands_for_renaming (cfun);
+
+ return 0;
+}
+
+} // anon namespace
+
+gimple_opt_pass *
+make_pass_if_to_switch (gcc::context *ctxt)
+{
+ return new pass_if_to_switch (ctxt);
+}
diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h
index a987661530e..84c498cb26e 100644
--- a/gcc/tree-pass.h
+++ b/gcc/tree-pass.h
@@ -374,6 +374,7 @@ extern gimple_opt_pass *make_pass_empty_loop (gcc::context *ctxt);
extern gimple_opt_pass *make_pass_graphite (gcc::context *ctxt);
extern gimple_opt_pass *make_pass_graphite_transforms (gcc::context *ctxt);
extern gimple_opt_pass *make_pass_if_conversion (gcc::context *ctxt);
+extern gimple_opt_pass *make_pass_if_to_switch (gcc::context *ctxt);
extern gimple_opt_pass *make_pass_loop_distribution (gcc::context *ctxt);
extern gimple_opt_pass *make_pass_vectorize (gcc::context *ctxt);
extern gimple_opt_pass *make_pass_simduid_cleanup (gcc::context *ctxt);
[-- Attachment #3: if-to-switch-in-gcc.txt --]
[-- Type: text/plain, Size: 92959 bytes --]
Condition chain (at ../../gcc/asan.h:166) with 12 conditions (9 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/asan.h:166) with 12 conditions (9 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/calls.c:1530) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c/c-decl.c:6085) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c/c-decl.c:6436) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c/c-parser.c:11688) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c/c-parser.c:344) with 8 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c/c-typeck.c:11725) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c/c-typeck.c:11728) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c/c-typeck.c:11794) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c/c-typeck.c:11853) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c/c-typeck.c:4627) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c/c-typeck.c:6813) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c/c-typeck.c:6817) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c/c-typeck.c:7951) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c-family/c-common.c:2235) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c-family/c-common.c:2376) with 18 conditions (18 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c-family/c-common.c:2896) with 6 conditions (6 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c-family/c-common.c:3637) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c-family/c-common.c:6104) with 10 conditions (10 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c-family/c-common.c:6652) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c-family/c-omp.c:1563) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c-family/c-omp.c:1757) with 6 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c-family/c-pragma.c:142) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c-family/c-pretty-print.c:1759) with 5 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c-family/c-pretty-print.c:1952) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c-family/c-pretty-print.c:401) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c-family/c-warn.c:1917) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c-family/c-warn.c:1941) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/c-family/c-warn.c:510) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cgraph.h:2617) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cgraph.h:2617) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cgraph.h:2617) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cgraph.h:2617) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cgraph.h:2617) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cgraph.h:2617) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cgraph.h:2617) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cgraph.h:2617) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/combine.c:10660) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/combine.c:11866) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/combine.c:11882) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/combine.c:11886) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/combine.c:6780) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/combine.c:8726) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/combine.c:9391) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/constraints.md:233) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/constraints.md:234) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/constraints.md:234) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.c:12074) with 8 conditions (8 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.c:12095) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.c:12838) with 7 conditions (7 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.c:12965) with 6 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.c:1857) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.c:18715) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.c:18743) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.c:18750) with 8 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.c:18799) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.c:19368) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.c:19384) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.c:3325) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.c:3850) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386-expand.c:10779) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386-expand.c:11421) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386-expand.c:14125) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386-expand.c:1868) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386-expand.c:2713) with 7 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386-expand.c:3134) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386-expand.c:6855) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:1119) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:13676) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:13707) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:13747) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:14258) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:14260) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:14270) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:14272) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:14757) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:14761) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:14765) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:14781) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:14785) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:14789) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:14909) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:14913) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:14917) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:14933) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:14937) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:14941) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15068) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15068) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15108) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15108) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15112) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15112) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15172) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15172) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15260) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15296) with 6 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15304) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15304) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15308) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15308) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15344) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15344) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15348) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15348) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15352) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15352) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15356) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15356) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15380) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15380) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15384) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15384) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15388) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15388) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15392) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15392) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15435) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15435) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15448) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15448) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15548) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15548) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15555) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15555) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15576) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15588) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15588) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15595) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15595) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15608) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15608) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15612) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15612) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15615) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15615) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15616) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15616) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15619) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15619) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15623) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15623) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15636) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15636) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15640) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15640) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15643) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15643) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15647) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15647) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15648) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15648) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15655) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15655) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15700) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15756) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15772) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15776) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15787) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15787) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15791) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15791) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15795) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15795) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15796) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15796) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15796) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15799) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15799) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15800) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15800) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15800) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15804) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15804) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15808) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15808) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15820) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15824) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15849) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15849) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15852) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15856) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15889) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15889) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15893) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15893) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15969) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15969) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15995) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:15995) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16035) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16035) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16039) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16039) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16115) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16115) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16135) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16135) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16173) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16173) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16177) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16177) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16181) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16181) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16185) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16185) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16188) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16188) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16240) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16255) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16255) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16288) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16288) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16289) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16295) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16295) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16300) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16315) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16315) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16319) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16319) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16319) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16319) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16323) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16323) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16323) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16323) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16327) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16327) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16328) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16328) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16328) with 6 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16331) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16331) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16343) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16343) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16347) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16347) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16347) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16347) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16348) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16348) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16352) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16352) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16353) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16355) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16355) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16356) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16356) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16376) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16376) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16380) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16380) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16387) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16387) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16387) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16388) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16388) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16391) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16391) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16408) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16408) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16412) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16413) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16433) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16451) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16451) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16451) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16452) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16469) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16477) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16485) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16487) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16487) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16489) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16491) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16491) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16491) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16495) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16495) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16499) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16499) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16509) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16513) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16533) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16536) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16536) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16537) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16540) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16540) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16544) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16544) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16548) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16548) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16565) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16569) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16583) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16583) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16587) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16587) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16623) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16623) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16627) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16627) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16631) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16631) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16635) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16635) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16640) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16644) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16659) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16659) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16663) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16663) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16667) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16667) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16671) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16671) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16770) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16776) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16780) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16800) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16830) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16892) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16938) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:16942) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:17170) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:17174) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:17306) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:17310) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:17330) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:17357) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:17374) with 6 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:17418) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:17422) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:17437) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:17454) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:17481) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:17482) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:17498) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:17522) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:1897) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19703) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19727) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19815) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19839) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19867) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19883) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19887) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19891) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19907) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19911) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19915) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19919) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19939) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19939) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19943) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19943) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19963) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19963) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19967) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19967) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19987) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19991) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19995) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:19999) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:20019) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:20023) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:2247) with 8 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:2251) with 6 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:2265) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:22662) with 11 conditions (6 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:22666) with 11 conditions (6 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:22670) with 9 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:22674) with 9 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:22678) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:22738) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:22794) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:22801) with 11 conditions (6 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:22805) with 11 conditions (6 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:22809) with 9 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:22813) with 9 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:22817) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:22826) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:22877) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:2291) with 6 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:22933) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:22965) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:2302) with 8 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:2303) with 7 conditions (6 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:2306) with 6 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:2346) with 6 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:2358) with 7 conditions (6 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:24826) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:24890) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:24946) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:24998) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25010) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25010) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25014) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25022) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25026) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25054) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25058) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25062) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25074) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25078) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25078) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25082) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25086) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25090) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25102) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25106) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25118) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25122) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25134) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25138) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25142) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25146) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25166) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25170) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25198) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:25202) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28547) with 11 conditions (6 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28551) with 11 conditions (6 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28555) with 9 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28559) with 9 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28563) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28618) with 11 conditions (6 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28622) with 11 conditions (6 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28623) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28626) with 9 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28630) with 9 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28634) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28679) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28694) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28750) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28803) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28819) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:2884) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28859) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28863) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28874) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:2888) with 9 conditions (7 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28890) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28930) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:28934) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:2933) with 6 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:2977) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:2997) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:3142) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:3161) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:3170) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:3174) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:3189) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:3193) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:3238) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:3257) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:3454) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:3458) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:3462) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:3466) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:3473) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:3477) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:3481) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:3485) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:471) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:493) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:493) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:499) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:499) with 5 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:499) with 5 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:499) with 5 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:542) with 13 conditions (7 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:547) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:561) with 29 conditions (29 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:561) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:561) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:675) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:675) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:827) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:831) with 7 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:853) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:885) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:885) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:910) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:910) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:912) with 6 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/i386.md:912) with 6 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/predicates.md:795) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/predicates.md:811) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/predicates.md:819) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/predicates.md:827) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/sse.md:17117) with 13 conditions (7 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/sync.md:2662) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/sync.md:2689) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/sync.md:2785) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/sync.md:2810) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/x86-tune-sched-bd.c:167) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/x86-tune-sched-bd.c:460) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/config/i386/x86-tune-sched-bd.c:593) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/cvt.c:861) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/cxx-pretty-print.c:641) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/decl2.c:1204) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/decl.c:10845) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/decl.c:11691) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/decl.c:14212) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/decl.c:5668) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/decl.c:8970) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/mangle.c:2848) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/mangle.c:3121) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/method.c:1339) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/method.c:1452) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/method.c:1486) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/method.c:1587) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/parser.c:31586) with 12 conditions (7 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/parser.c:42835) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/pt.c:14927) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/semantics.c:4323) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/typeck.c:4471) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/typeck.c:6430) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cp/type-utils.h:44) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cse.c:3634) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/cselib.c:1634) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/diagnostic-show-locus.c:1312) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/diagnostic-show-locus.c:700) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/dwarf2out.c:5410) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/dwarf2out.c:7125) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/expr.c:8509) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/expr.c:9890) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/final.c:3922) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fold-const.c:1682) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fold-const.c:1849) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fold-const.c:1914) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fold-const.c:8141) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fold-const.c:8220) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fold-const.c:8608) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fold-const.c:9761) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/arith.c:1565) with 11 conditions (6 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/check.c:184) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/check.c:324) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/check.c:413) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/convert.c:103) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/convert.c:112) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/decl.c:4724) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/decl.c:5378) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/dependency.c:1686) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/dependency.c:1738) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/dependency.c:1761) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/dump-parse-tree.c:1205) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/frontend-passes.c:406) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/interface.c:1025) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/interface.c:1058) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/interface.c:1058) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/interface.c:2100) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/intrinsic.c:953) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/io.c:455) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/io.c:476) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/io.c:664) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/match.c:2184) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/match.c:2998) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/openmp.c:588) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/parse.c:1369) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/parse.c:4193) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/parse.c:4357) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/primary.c:1155) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/resolve.c:4155) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/resolve.c:7750) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/scanner.c:1038) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/scanner.c:1101) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/scanner.c:1537) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/scanner.c:1785) with 5 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/scanner.c:1823) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/scanner.c:1896) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/scanner.c:2360) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/scanner.c:844) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/scanner.c:950) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/scanner.c:979) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/symbol.c:1765) with 7 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/trans-array.c:5003) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/trans-intrinsic.c:4532) with 5 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/fortran/trans-types.c:821) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/function.c:382) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gcc.c:5592) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gcc.c:5613) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/genautomata.c:951) with 8 conditions (8 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/genflags.c:61) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gengtype.c:288) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gengtype.c:288) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gengtype.h:344) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gengtype.h:344) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gengtype.h:344) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gengtype.h:344) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gengtype-state.c:378) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gengtype-state.c:378) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gengtype-state.c:422) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gengtype-state.c:422) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/genoutput.c:763) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gensupport.c:829) with 7 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gensupport.c:932) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.c:1796) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:2822) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:2822) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:2822) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:2822) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:2822) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:2822) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:2822) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:2822) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:2822) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:2822) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:2822) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:2822) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:2822) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:2822) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:6546) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:6546) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:6546) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:6546) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:6546) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:6546) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:6546) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:6546) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:6546) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:6546) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:6546) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:6546) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:6546) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:6546) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple.h:6546) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple-loop-versioning.cc:1235) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple-pretty-print.c:391) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple-ssa-isolate-paths.c:238) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple-ssa-isolate-paths.c:480) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple-ssa-isolate-paths.c:511) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple-ssa-split-paths.c:135) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple-ssa-strength-reduction.c:2138) with 7 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimple-streamer-in.c:216) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimplify.c:14262) with 17 conditions (9 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimplify.c:14262) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimplify.c:14262) with 6 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/gimplify.c:868) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/hsa-gen.c:3106) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/ifcvt.c:1701) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/ipa-fnsummary.c:1087) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/ipa-icf-gimple.c:150) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/ipa-prop.c:316) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/ira-build.c:1840) with 8 conditions (6 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/ira.c:1938) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/ira-costs.c:1154) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/jump.c:709) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/jump.c:720) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/jump.c:730) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/jump.c:756) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/jump.c:899) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/jump.c:901) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/lra-constraints.c:4213) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/lra-eliminations.c:759) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/lto-cgraph.c:1505) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/lto-cgraph.c:1758) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/lto/lto-common.c:1173) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/lto/lto-common.c:1404) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/lto/lto-lang.c:1109) with 18 conditions (18 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/lto/lto-lang.c:978) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/lto-streamer-in.c:1459) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/lto-streamer-in.c:1495) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/lto-streamer-out.c:1075) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/mcf.c:151) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/multiple_target.c:275) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/omp-expand.c:8872) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/omp-low.c:4495) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/omp-low.c:8292) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/omp-low.c:8521) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/optabs.c:1098) with 7 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/optabs.c:1277) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/optabs.c:1339) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/optabs.c:1444) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/optabs.c:1890) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/optabs.c:2783) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/optabs.c:3098) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/optabs-query.h:89) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/optabs-query.h:89) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/opts.c:169) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/print-rtl.c:511) with 6 conditions (6 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/print-tree.c:491) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/read-md.c:272) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/read-md.c:272) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/read-md.c:467) with 6 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/read-md.c:467) with 6 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/read-md.c:472) with 7 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/read-md.c:472) with 7 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/read-md.c:605) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/read-md.c:605) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/read-md.c:638) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/read-md.c:638) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/read-rtl-function.c:1400) with 10 conditions (10 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/recog.c:1870) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/regcprop.c:554) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/regcprop.c:561) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/reginfo.c:368) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/regrename.c:1311) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/regrename.c:1318) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/reload1.c:1359) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/reload1.c:3020) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/reload1.c:5625) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/reload1.c:5647) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/reload.c:2864) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/reload.c:329) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/reload.c:4660) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/reload.c:5551) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/reload.c:5562) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/rtlanal.c:1726) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/rtlanal.c:3524) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/rtlanal.c:3540) with 5 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/rtlanal.c:6242) with 5 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/sched-deps.c:2962) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/sched-deps.c:4277) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/sel-sched.c:2457) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/simplify-rtx.c:5334) with 6 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/simplify-rtx.c:5412) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/simplify-rtx.c:5527) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/targhooks.c:417) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/toplev.c:2083) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/trans-mem.c:1420) with 6 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/trans-mem.c:376) with 10 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/trans-mem.c:422) with 10 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree.c:10018) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree.c:10032) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree.c:4479) with 8 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree.c:5078) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree.c:7430) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree.c:7432) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree.c:9950) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree.c:9981) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree.c:9995) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-data-ref.c:714) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree.h:5104) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree.h:5104) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree.h:5104) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree.h:5104) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree.h:5104) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree.h:5104) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree.h:5104) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-inline.c:5406) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-inline.c:5422) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-ssa-ccp.c:1791) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-ssa-dom.c:1925) with 4 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-ssa-dse.c:998) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-ssa-forwprop.c:1211) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-ssa-forwprop.c:1933) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-ssa-forwprop.c:2376) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-ssa-forwprop.c:2748) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-ssa-forwprop.c:2750) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-ssa-loop-manip.c:1025) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-ssa-operands.c:870) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-ssa-reassoc.c:1984) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-ssa-reassoc.c:6303) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-ssa-structalias.c:4984) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-ssa-threadbackward.c:752) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-ssa-threadbackward.c:85) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-ssa-threadedge.c:446) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-vect-generic.c:1961) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-vect-patterns.c:4060) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-vect-stmts.c:10437) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-vect-stmts.c:11554) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-vect-stmts.c:5330) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-vect-stmts.c:5364) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-vect-stmts.c:5383) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-vect-stmts.c:5421) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/tree-vrp.c:2374) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/varasm.c:7093) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/varasm.c:7108) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/vr-values.c:1525) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/vr-values.c:1652) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/vr-values.c:1665) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/vr-values.c:1672) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/vr-values.c:2251) with 3 conditions (2 BBs) transformed into a switch statement.
Condition chain (at ../../gcc/vr-values.c:572) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at generic-match.c:11350) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at generic-match.c:13676) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at generic-match.c:13743) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at generic-match.c:2238) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at generic-match.c:3464) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at generic-match.c:3533) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at generic-match.c:4637) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at generic-match.c:6091) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at gimple-match.c:12730) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at gimple-match.c:15379) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at gimple-match.c:15440) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at gimple-match.c:2515) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at gimple-match.c:3886) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at gimple-match.c:3947) with 4 conditions (4 BBs) transformed into a switch statement.
Condition chain (at gimple-match.c:6163) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at gimple-match.c:8404) with 4 conditions (3 BBs) transformed into a switch statement.
Condition chain (at insn-dfatab.c:2697) with 3 conditions (3 BBs) transformed into a switch statement.
Condition chain (at insn-dfatab.c:2733) with 6 conditions (5 BBs) transformed into a switch statement.
Condition chain (at ./tm-preds.h:304) with 3 conditions (3 BBs) transformed into a switch statement.
next reply other threads:[~2019-11-04 14:23 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-04 14:23 Martin Liška [this message]
2019-11-04 14:49 ` Jakub Jelinek
2019-11-05 12:38 ` Richard Biener
2019-11-06 21:03 ` Bernhard Reutner-Fischer
2019-11-14 9:44 ` Martin Liška
2019-11-14 12:35 ` Bernhard Reutner-Fischer
2019-11-14 9:41 ` Martin Liška
2019-11-14 10:48 ` Richard Biener
2019-11-15 13:56 ` Martin Liška
2020-09-01 11:47 ` Martin Liška
2020-09-01 14:50 ` David Malcolm
2020-09-02 11:53 ` Martin Liška
2020-09-21 8:55 ` Martin Liška
2020-09-24 12:41 ` Richard Biener
2020-09-25 14:05 ` Martin Liška
2020-09-29 8:46 ` Richard Biener
2020-10-02 13:26 ` Martin Liška
2020-10-02 14:19 ` Andrew MacLeod
2020-10-06 12:09 ` Martin Liška
2020-10-06 12:56 ` Andrew MacLeod
2020-10-06 13:09 ` Martin Liška
2020-10-06 13:23 ` Andrew MacLeod
2020-10-06 13:41 ` Richard Biener
2020-10-02 13:23 ` Martin Liška
2020-10-06 7:47 ` Richard Biener
2020-10-06 13:48 ` Martin Liška
2020-10-06 14:12 ` Jakub Jelinek
2020-10-12 12:39 ` Martin Liška
2020-10-12 13:00 ` Jakub Jelinek
2020-10-14 18:09 ` Andrew MacLeod
2020-10-07 8:00 ` Richard Biener
2020-10-12 12:44 ` Martin Liška
2020-10-12 13:01 ` Martin Liška
2020-10-15 12:38 ` Richard Biener
2020-10-16 14:04 ` [PATCH v2] " Martin Liška
2020-11-06 12:31 ` Richard Biener
2020-11-09 12:26 ` Martin Liška
2020-11-16 12:21 ` Richard Biener
2020-11-18 12:25 ` Martin Liška
2020-11-19 14:46 ` Richard Biener
2020-11-20 8:57 ` Martin Liška
2020-11-20 14:37 ` Richard Biener
2020-11-27 15:07 ` Martin Liška
2020-12-01 10:34 ` Richard Biener
2020-12-01 13:57 ` [PATCH] if-to-switch: Support chain with 2 BBs Martin Liška
2020-12-01 22:14 ` Jeff Law
2019-11-13 11:32 ` [PATCH] Add if-chain to switch conversion pass Martin Liška
2019-11-13 16:14 ` Michael Matz
2019-11-14 10:07 ` Martin Liška
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2c3db526-cac6-4eeb-4afb-12024f8d5af2@suse.cz \
--to=mliska@suse.cz \
--cc=gcc-patches@gcc.gnu.org \
--cc=hubicka@ucw.cz \
--cc=kazu@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).