simplify-rtx.c (simplify_relational_operation_1): Avoid creating zero extensions of BImode operands.
* simplify-rtx.c (simplify_relational_operation_1): Avoid creating zero extensions of BImode operands. Call lowpart_subreg instead of gen_lowpart_common and gen_lowpart_SUBREG. From-SVN: r94730
This commit is contained in:
parent
6a8c830d8d
commit
f8eacd975b
@ -1,3 +1,9 @@
|
||||
2005-02-07 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* simplify-rtx.c (simplify_relational_operation_1): Avoid creating
|
||||
zero extensions of BImode operands. Call lowpart_subreg instead
|
||||
of gen_lowpart_common and gen_lowpart_SUBREG.
|
||||
|
||||
2005-02-07 Nathanael Nerode <neroden@gcc.gnu.org>
|
||||
|
||||
PR ada/19489
|
||||
|
@ -2886,19 +2886,12 @@ simplify_relational_operation_1 (enum rtx_code code, enum machine_mode mode,
|
||||
&& op1 == const0_rtx
|
||||
&& GET_MODE_CLASS (mode) == MODE_INT
|
||||
&& cmp_mode != VOIDmode
|
||||
&& cmp_mode != BImode
|
||||
&& nonzero_bits (op0, cmp_mode) == 1
|
||||
&& STORE_FLAG_VALUE == 1)
|
||||
{
|
||||
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 GET_MODE_SIZE (mode) > GET_MODE_SIZE (cmp_mode)
|
||||
? simplify_gen_unary (ZERO_EXTEND, mode, op0, cmp_mode)
|
||||
: lowpart_subreg (mode, op0, cmp_mode);
|
||||
|
||||
return NULL_RTX;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user