Fix up mode confusion in combine_simplify_rtx.

The surrounding code was already fixed back when BImode was added.

	* combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
	also verify that mode is equal to the mode of op0.

From-SVN: r217089
This commit is contained in:
Bernd Schmidt 2014-11-04 15:25:45 +00:00 committed by Bernd Schmidt
parent ed2b2162d0
commit bf42f4fd59
2 changed files with 8 additions and 4 deletions

View File

@ -1,5 +1,8 @@
2014-11-04 Bernd Schmidt <bernds@codesourcery.com>
* combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
also verify that mode is equal to the mode of op0.
* bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
emit into a sequence instead.

View File

@ -5811,10 +5811,11 @@ combine_simplify_rtx (rtx x, machine_mode op0_mode, int in_dest,
;
else if (STORE_FLAG_VALUE == -1
&& new_code == NE && GET_MODE_CLASS (mode) == MODE_INT
&& op1 == const0_rtx
&& (num_sign_bit_copies (op0, mode)
== GET_MODE_PRECISION (mode)))
&& new_code == NE && GET_MODE_CLASS (mode) == MODE_INT
&& op1 == const0_rtx
&& mode == GET_MODE (op0)
&& (num_sign_bit_copies (op0, mode)
== GET_MODE_PRECISION (mode)))
return gen_lowpart (mode,
expand_compound_operation (op0));