------- Comment #11 from hjl dot tools at gmail dot com  2010-09-16 13:21 
-------
This code:

      if (TREE_CODE (srcvar) == ADDR_EXPR
          && var_decl_component_p (TREE_OPERAND (srcvar, 0))
          && tree_int_cst_equal (TYPE_SIZE_UNIT (srctype), len)
          && (!STRICT_ALIGNMENT
              || !destvar
              || src_align >= TYPE_ALIGN (desttype)))
        srcvar = fold_build2 (MEM_REF, destvar ? desttype : srctype,
                              srcvar, off0);

does

float d[4];
__m128 *p = (__m128 *) &d;

and treats p as properly aligned.  I don't see how it can ever
work with SSE. It has nothing to do with stack alignment.


-- 


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

Reply via email to