public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] Add if-chain to switch conversion pass.
@ 2019-11-04 14:23 Martin Liška
  2019-11-04 14:49 ` Jakub Jelinek
  0 siblings, 1 reply; 49+ messages in thread
From: Martin Liška @ 2019-11-04 14:23 UTC (permalink / raw)
  To: gcc-patches; +Cc: kazu, Jan Hubicka

[-- 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.

^ permalink raw reply	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2020-12-01 22:14 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-04 14:23 [PATCH] Add if-chain to switch conversion pass Martin Liška
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

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).