Commit 525a2d06 by Jakub Jelinek Committed by Jakub Jelinek

re PR target/47665 (ICE in trunc_int_for_mode)

	PR target/47665
	* combine.c (make_compound_operation): Only change shifts into
	multiplication for SCALAR_INT_MODE_P.

	* gcc.target/i386/pr47665.c: New test.

From-SVN: r170000
parent 8ead2223
2011-02-10 Jakub Jelinek <jakub@redhat.com>
PR target/47665
* combine.c (make_compound_operation): Only change shifts into
multiplication for SCALAR_INT_MODE_P.
2011-02-10 Jie Zhang <jie@codesourcery.com>
PR testsuite/47622
......
......@@ -7485,7 +7485,8 @@ make_compound_operation (rtx x, enum rtx_code in_code)
an address. */
if (in_code == MEM && CONST_INT_P (XEXP (x, 1))
&& INTVAL (XEXP (x, 1)) < HOST_BITS_PER_WIDE_INT
&& INTVAL (XEXP (x, 1)) >= 0)
&& INTVAL (XEXP (x, 1)) >= 0
&& SCALAR_INT_MODE_P (mode))
{
HOST_WIDE_INT count = INTVAL (XEXP (x, 1));
HOST_WIDE_INT multval = (HOST_WIDE_INT) 1 << count;
......
2011-02-10 Jakub Jelinek <jakub@redhat.com>
PR target/47665
* gcc.target/i386/pr47665.c: New test.
2011-02-10 Jie Zhang <jie@codesourcery.com>
PR testsuite/47622
......
/* PR target/47665 */
/* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */
#include <emmintrin.h>
__m128d
foo (double *x, __m128i y)
{
return _mm_load_pd (x + _mm_cvtsi128_si32 (_mm_srli_si128 (_mm_slli_epi32 (y, 2), 0)));
}
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