https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126619
Filip Kastl <pheeck at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|ASSIGNED |RESOLVED
--- Comment #8 from Filip Kastl <pheeck at gcc dot gnu.org> ---
All the graphs went back to the original values or better. Also, the testcases
from Hongtao Liu look ok now: https://godbolt.org/z/dMcYb1Th4
typedef float v4sf __attribute__((vector_size(16)));
v4sf fab00 (float a, float b) { return (v4sf){a,b,0,0}; }
v4sf fm0m0 (float* a, float* b) { return (v4sf) { *a, 0, *b, 0};}
->
"fab00":
unpcklps xmm0, xmm1
xorps xmm1, xmm1
movlhps xmm0, xmm1
ret
"fm0m0":
movss xmm0, DWORD PTR [rdi]
movss xmm1, DWORD PTR [rsi]
movlhps xmm0, xmm1
ret
Thus, I'm closing this. Thanks, Roger and Hongtao.