aboutsummaryrefslogtreecommitdiff
path: root/gcc/optabs.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/optabs.cc')
-rw-r--r--gcc/optabs.cc8
1 files changed, 3 insertions, 5 deletions
diff --git a/gcc/optabs.cc b/gcc/optabs.cc
index 165f8d1..c2a6f97 100644
--- a/gcc/optabs.cc
+++ b/gcc/optabs.cc
@@ -4384,7 +4384,6 @@ prepare_cmp_insn (rtx x, rtx y, enum rtx_code comparison, rtx size,
machine_mode mode = *pmode;
rtx libfunc, test;
machine_mode cmp_mode;
- enum mode_class mclass;
/* The other methods are not needed. */
gcc_assert (methods == OPTAB_DIRECT || methods == OPTAB_WIDEN
@@ -4490,9 +4489,8 @@ prepare_cmp_insn (rtx x, rtx y, enum rtx_code comparison, rtx size,
return;
}
- mclass = GET_MODE_CLASS (mode);
test = gen_rtx_fmt_ee (comparison, VOIDmode, x, y);
- FOR_EACH_MODE_FROM (cmp_mode, mode)
+ FOR_EACH_WIDER_MODE_FROM (cmp_mode, mode)
{
enum insn_code icode;
icode = optab_handler (cbranch_optab, cmp_mode);
@@ -4515,7 +4513,7 @@ prepare_cmp_insn (rtx x, rtx y, enum rtx_code comparison, rtx size,
delete_insns_since (last);
}
- if (methods == OPTAB_DIRECT || !CLASS_HAS_WIDER_MODES_P (mclass))
+ if (methods == OPTAB_DIRECT)
break;
}
@@ -4711,7 +4709,7 @@ prepare_float_lib_cmp (rtx x, rtx y, enum rtx_code comparison,
bool reversed_p = false;
scalar_int_mode cmp_mode = targetm.libgcc_cmp_return_mode ();
- FOR_EACH_MODE_FROM (mode, orig_mode)
+ FOR_EACH_WIDER_MODE_FROM (mode, orig_mode)
{
if (code_to_optab (comparison)
&& (libfunc = optab_libfunc (code_to_optab (comparison), mode)))