Commit d08633b4 by Marc Glisse Committed by Marc Glisse

simplify-rtx.c (simplify_binary_operation_1): Restrict the transformation to equal modes.

2013-03-21  Marc Glisse  <marc.glisse@inria.fr>

	* simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
	Restrict the transformation to equal modes.

From-SVN: r196882
parent bc5faa5b
2013-03-21 Marc Glisse <marc.glisse@inria.fr>
* simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
Restrict the transformation to equal modes.
2013-03-21 Richard Biener <rguenther@suse.de>
PR tree-optimization/39326
......
......@@ -3623,10 +3623,13 @@ simplify_binary_operation_1 (enum rtx_code code, enum machine_mode mode,
return gen_rtx_CONST_VECTOR (mode, v);
}
/* Try to merge VEC_SELECTs from the same vector into a single one. */
/* Try to merge two VEC_SELECTs from the same vector into a single one.
Restrict the transformation to avoid generating a VEC_SELECT with a
mode unrelated to its operand. */
if (GET_CODE (trueop0) == VEC_SELECT
&& GET_CODE (trueop1) == VEC_SELECT
&& rtx_equal_p (XEXP (trueop0, 0), XEXP (trueop1, 0)))
&& rtx_equal_p (XEXP (trueop0, 0), XEXP (trueop1, 0))
&& GET_MODE (XEXP (trueop0, 0)) == mode)
{
rtx par0 = XEXP (trueop0, 1);
rtx par1 = XEXP (trueop1, 1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment