+2005-02-06 Roger Sayle <roger@eyesopen.com>
+
+ PR rtl-optimization/19800
+ * simplify_rtx.c (simplify_relational_operaration_1): Explicitly
+ call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
+ gen_lowpart.
+
2005-02-07 Ralf Corsepius <ralf.corsepius@rtems.org>
* config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
&& cmp_mode != VOIDmode
&& nonzero_bits (op0, cmp_mode) == 1
&& STORE_FLAG_VALUE == 1)
- return GET_MODE_SIZE (mode) > GET_MODE_SIZE (cmp_mode)
- ? simplify_gen_unary (ZERO_EXTEND, mode, op0, cmp_mode)
- : gen_lowpart (mode, op0);
+ {
+ rtx tmp;
+ if (GET_MODE_SIZE (mode) > GET_MODE_SIZE (cmp_mode))
+ return simplify_gen_unary (ZERO_EXTEND, mode, op0, cmp_mode);
+ tmp = gen_lowpart_common (mode, op0);
+ if (tmp)
+ return tmp;
+ if (GET_MODE (op0) != mode)
+ return gen_lowpart_SUBREG (mode, op0);
+ return op0;
+ }
return NULL_RTX;
}