------- 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