------- Additional Comments From pinskia at gcc dot gnu dot org  2005-07-04 
16:05 -------
The code does not do what you want it to do:
You want:
#include <xmmintrin.h>

extern "C" double
fadd(double a, double b)
{
        __m128d a1;
        __m128d b1;
        __m128d c;
        double res;

        a1 = _mm_loadl_pd(a1, &a);
        b1 =_mm_loadl_pd(b1, &b);
        c = _mm_add_sd(a1, b1);
        _mm_storel_pd(&res, c);
        return res;
}


But the ICE is a regression from 3.3 so confirming on that

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
           Keywords|ssemmx, wrong-code          |
   Last reconfirmed|0000-00-00 00:00:00         |2005-07-04 16:05:07
               date|                            |
            Summary|ICE and wrong code gen with |[3.4 Regression] ICE with
                   |_mm_loadl_pd/__builtin_ia32_|_mm_loadl_pd/__builtin_ia32_
                   |loadlpd                     |loadlpd
   Target Milestone|---                         |3.4.5


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22292

Reply via email to