Commit 827f4079 by Adam Nemet Committed by Adam Nemet

combine.c (make_compound_operation): If force_to_mode re-expanded the compound…

combine.c (make_compound_operation): If force_to_mode re-expanded the compound use gen_lowpart instead to convert to...

	* combine.c (make_compound_operation) <SUBREG>: If force_to_mode
	re-expanded the compound use gen_lowpart instead to convert to the
	desired mode.

testsuite/
	* gcc.target/mips/ext-2.c: New test.

From-SVN: r149781
parent f3ce1088
2009-07-18 Adam Nemet <anemet@caviumnetworks.com>
* combine.c (make_compound_operation) <SUBREG>: If force_to_mode
re-expanded the compound use gen_lowpart instead to convert to the
desired mode.
2009-07-18 Adam Nemet <anemet@caviumnetworks.com>
* combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
OUTER_CONST arguments.
<LSHIFTRT>: Use them to allow widening if the bits shifted in from
......
......@@ -7061,6 +7061,12 @@ make_compound_operation (rtx x, enum rtx_code in_code)
if (GET_CODE (newer) != SUBREG)
newer = make_compound_operation (newer, in_code);
/* force_to_mode can expand compounds. If it just re-expanded the
compound use gen_lowpart instead to convert to the desired
mode. */
if (rtx_equal_p (newer, x))
return gen_lowpart (GET_MODE (x), tem);
return newer;
}
......
2009-07-18 Adam Nemet <anemet@caviumnetworks.com>
* gcc.target/mips/ext-2.c: New test.
2009-07-18 Adam Nemet <anemet@caviumnetworks.com>
* gcc.target/mips/octeon-exts-7.c: New test.
* gcc.target/mips/octeon-exts-2.c: Revert previous change.
* gcc.target/mips/octeon-exts-5.c: Likewise.
......
/* Turn the truncate,zero_extend,lshiftrt sequence before the or into a
zero_extract. The truncate is due to TARGET_PROMOTE_PROTOTYPES, the
zero_extend to PROMOTE_MODE. */
/* { dg-do compile } */
/* { dg-options "-O isa_rev>=2 -mgp64" } */
/* { dg-final { scan-assembler "\tdext\t" } } */
/* { dg-final { scan-assembler-not "and" } } */
/* { dg-final { scan-assembler-not "srl" } } */
void
f (unsigned char x, unsigned char *r)
{
*r = 0x50 | (x >> 4);
}
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