This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/15703] New: internal compiler error in push_reload compiling SSE2 instructions
- From: "micis at gmx dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 28 May 2004 10:16:28 -0000
- Subject: [Bug rtl-optimization/15703] New: internal compiler error in push_reload compiling SSE2 instructions
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
error compiling SSE2 code with -O1 or above, but not at -O0
gcc version 3.3.4 20040519 (prerelease)
internal compiler error: in push_reload, at reload.c: 1315
error occurs also with gcc version 3.3.3 (Debian 20040401)
#include <emmintrin.h>
void push_reload_bug () {
__m64 Out;
__m128i R0, R1, R2, R3, R4, R5, R6, R7;
for (unsigned int by=0; by<16; by+=128) {
for (unsigned int bx=0; bx<16; bx+=128) {
for (unsigned int iy=0; iy<16; iy+=4) {
__m64* op = &Out;
for (unsigned int ix=0; ix<16; ix+=8) {
R0 = _mm_add_epi32(_mm_unpacklo_epi32(R0, R1), _mm_unpackhi_epi32(R0,
R1));
R2 = _mm_add_epi32(_mm_unpacklo_epi32(R2, R3), _mm_unpackhi_epi32(R2,
R3));
R1 = _mm_unpackhi_epi32(R0, R2);
R3 = _mm_unpacklo_epi32(R0, R2);
R0 = _mm_add_epi32(R1, R3);
R1 = _mm_cmplt_epi32(_mm_setzero_si128(), R0);
R0 = _mm_and_si128(R1, R0);
R0 = _mm_srli_epi32(R0, 15);
*op = _mm_movepi64_pi64(_mm_slli_epi16(_mm_shufflelo_epi16
(_mm_packs_epi32(R0, _mm_setzero_si128()), _MM_SHUFFLE(3, 1, 2, 0)), 1));
}
}
}
}
}
--
Summary: internal compiler error in push_reload compiling SSE2
instructions
Product: gcc
Version: 3.3.4
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: micis at gmx dot de
CC: gcc-bugs at gcc dot gnu dot org
GCC host triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15703