------- Comment #1 from rguenth at gcc dot gnu dot org  2009-05-12 15:00 -------
The union copy confuses GCC:

  r.v = VIEW_CONVERT_EXPR<vector long long int>({1, 1, 1, 1});
  D.6990 = r;
  x = D.6990;
  D.6997 = VIEW_CONVERT_EXPR<vector int>(x.v);
  D.6994 = __builtin_ia32_pcmpeqd128 (D.6997, D.6997);
  D.7000 = __builtin_ia32_pmovmskb128 (VIEW_CONVERT_EXPR<vector
char>(VIEW_CONVERT_EXPR<vector long long int>(D.6994)));
  return D.7000 != 65535;

this will likely be fixed with the new SRA or is a duplicate of PR36327.

Martin, can you check this (and maybe add a testcase)?


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rguenth at gcc dot gnu dot
                   |                            |org, mjambor at suse dot cz
           Severity|normal                      |enhancement
           Keywords|                            |missed-optimization


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

Reply via email to