Bug 47665 - [4.6 Regression] ICE in trunc_int_for_mode
Summary: [4.6 Regression] ICE in trunc_int_for_mode
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 4.6.0
: P3 normal
Target Milestone: 4.6.0
Assignee: Jakub Jelinek
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2011-02-09 16:21 UTC by Jakub Jelinek
Modified: 2011-02-11 14:19 UTC (History)
0 users

See Also:
Host:
Target: i686-linux
Build:
Known to work:
Known to fail:
Last reconfirmed: 2011-02-09 16:27:40


Attachments
gcc46-pr47665.patch (606 bytes, patch)
2011-02-09 17:33 UTC, Jakub Jelinek
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jakub Jelinek 2011-02-09 16:21:06 UTC
#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)));
}

ICEs on i686-linux with -O2 -m32 -msse2, starting in between r166288 and r166429.
Comment 1 Richard Biener 2011-02-09 16:27:40 UTC
Confirmed.
Comment 2 Jakub Jelinek 2011-02-09 17:33:42 UTC
Created attachment 23284 [details]
gcc46-pr47665.patch

Untested patch.
Comment 3 Jakub Jelinek 2011-02-10 11:15:28 UTC
Author: jakub
Date: Thu Feb 10 11:15:23 2011
New Revision: 170000

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=170000
Log:
	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.

Added:
    trunk/gcc/testsuite/gcc.target/i386/pr47665.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/combine.c
    trunk/gcc/testsuite/ChangeLog
Comment 4 Jakub Jelinek 2011-02-10 11:17:42 UTC
Fixed.
Comment 5 Jakub Jelinek 2011-02-11 14:19:49 UTC
Author: jakub
Date: Fri Feb 11 14:19:44 2011
New Revision: 170050

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=170050
Log:
	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.

Added:
    trunk/gcc/testsuite/gcc.dg/pr47684.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-predcom.c