[Bug middle-end/40446] New: [4.4/4.5 Regression] ICE in gen_lowpart_general
jakub at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Mon Jun 15 13:35:00 GMT 2009
#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
More information about the Gcc-bugs
mailing list