This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: loading of zeros into {x,y,z}mm registers


Jan,
In case of AVX512 we need to support higher vector registers. We have to work with xmm16-xmm31 in this case. 
Sergey

-----Original Message-----
From: gcc-owner@gcc.gnu.org [mailto:gcc-owner@gcc.gnu.org] On Behalf Of Jan Beulich
Sent: Wednesday, November 29, 2017 5:00 PM
To: Kirill Yukhin <kirill.yukhin@gmail.com>
Cc: gcc@gcc.gnu.org
Subject: loading of zeros into {x,y,z}mm registers

Kirill,

in an unrelated context I've stumbled across a change of yours from Aug 2014 (revision 213847) where you "extend" the ways of loading zeros into registers. I don't understand why this was done, and the patch submission mail also doesn't give any reason.
My point is that simple VEX-encoded vxorps/vxorpd/vpxor with 128-bit register operands ought to be sufficient to zero any width registers, due to the zeroing of the high parts the instructions do.
Hence by using EVEX encoded insns it looks like all you do is grow the instruction length by one or two bytes (besides making the source somewhat more complicated to follow). At the very least the shorter variants should be used for -Os imo.

Thanks for any insight,
Jan


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]