This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/40446] New: [4.4/4.5 Regression] ICE in gen_lowpart_general
- From: "jakub at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 15 Jun 2009 13:34:25 -0000
- Subject: [Bug middle-end/40446] New: [4.4/4.5 Regression] ICE in gen_lowpart_general
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
#include <emmintrin.h>
#include <complex>
#include <cstdlib>
int
main ()
{
union { __m128d vec; double val[2]; } u;
std::complex<double> c = std::complex<double>(0, 1);
u.vec = _mm_load_pd ((double*)&c);
if (u.val[0] != 0 || u.val[1] != 1)
abort ();
}
ICEs with -O1 and above in g++ 4.4 and above. More reduced testcase:
struct S
{
S (double r, double i) { __real__ s = r; __imag__ s = i; }
__complex__ double s;
};
double __attribute__((vector_size (16)))
foo ()
{
S c (0, 1);
return *(double __attribute__((vector_size (16))) *) &c;
}
--
Summary: [4.4/4.5 Regression] ICE in gen_lowpart_general
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jakub at gcc dot gnu dot org
GCC target triplet: x86_64-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40446