[Bug target/101464] Replace zveroupper with vpxor

2021-07-16 Thread hjl.tools at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101464

H.J. Lu  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #4 from H.J. Lu  ---
(In reply to Richard Biener from comment #3)
> But in the long discussion involving vzeroupper and HTM aborts in glibc
> memory functions it came up that vpxor is _not_ properly clearing the upper
> state and thus does _not_ remove the penalty that following non-VEX SSE
> instructions get?

From

https://sourceware.org/bugzilla/show_bug.cgi?id=27457

we can't use VPXOR to replace VZEROUPPER.

[Bug target/101464] Replace zveroupper with vpxor

2021-07-16 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101464

--- Comment #3 from Richard Biener  ---
But in the long discussion involving vzeroupper and HTM aborts in glibc memory
functions it came up that vpxor is _not_ properly clearing the upper state and
thus does _not_ remove the penalty that following non-VEX SSE instructions get?

[Bug target/101464] Replace zveroupper with vpxor

2021-07-15 Thread hjl.tools at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101464

--- Comment #2 from H.J. Lu  ---
Created attachment 51159
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51159=edit
A patch

[Bug target/101464] Replace zveroupper with vpxor

2021-07-15 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101464

Hongtao.liu  changed:

   What|Removed |Added

 CC||crazylht at gmail dot com

--- Comment #1 from Hongtao.liu  ---
>From the implementation perspective, we need to record all usage of sse
registers which is AVX_U128_DIRTY and clear them all.