--- Comment #5 from rguenth at gcc dot gnu dot org 2009-05-25 15:59 ---
I have some CCP / fold_stmt patches that produce
movdqa .LC1(%rip), %xmm0
pcmpeqd %xmm0, %xmm0
pmovmskb%xmm0, %eax
cmpl$65535, %eax
setne %al
movzbl %a
--- Comment #4 from jamborm at gcc dot gnu dot org 2009-05-25 15:20 ---
...hm, when I wanted to make such a testcase I realized that the SSE
code is not very portable. So I changed my mind and won't use it.
I'll be adding different union scalarization checks, though.
--
http:
--- Comment #3 from jamborm at gcc dot gnu dot org 2009-05-21 16:02 ---
With he new SRA, the optimized dump looks like:
D.6886_10 = {1, 1, 1, 1};
D.6887_11 = VIEW_CONVERT_EXPR(D.6886_10);
D.6893_12 = VIEW_CONVERT_EXPR(D.6887_11);
D.6891_14 = __builtin_ia32_pcmpeqd128 (D.6893_12,
--- Comment #2 from pinskia at gcc dot gnu dot org 2009-05-12 15:24 ---
This is a dup of bug 36327.
*** This bug has been marked as a duplicate of 36327 ***
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
---
--- 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({1, 1, 1, 1});
D.6990 = r;
x = D.6990;
D.6997 = VIEW_CONVERT_EXPR(x.v);
D.6994 = __builtin_ia32_pcmpeqd128 (D.6997, D.6997);
D.7000 = __builtin_ia32_p