This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/40446] New: [4.4/4.5 Regression] ICE in gen_lowpart_general


#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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]