[llvm-dev] [AVX512] KNL 1-byte mask spills/reloads are too wide

Demikhovsky, Elena via llvm-dev llvm-dev at lists.llvm.org
Wed Feb 10 06:14:28 PST 2016

Hi Cameron,

Send me, please, the whole test case, if you can. Or open a bug in Bugzilla with attachment.
> Is this a known problem in 3.7? 
Nobody complained yet. I suppose that we don't have too many clients for AVX-512 right now.

> Has a fix been submitted already?
No, the bug is still there. We'll fix it.

Thank you.

-  Elena

-----Original Message-----
From: Cameron McInally [mailto:cameron.mcinally at nyu.edu] 
Sent: Friday, February 05, 2016 18:17
To: llvm-dev at lists.llvm.org
Cc: Demikhovsky, Elena <elena.demikhovsky at intel.com>; Badouh, Asaf <asaf.badouh at intel.com>; Breger, Igor <igor.breger at intel.com>; Zuckerman, Michael <michael.zuckerman at intel.com>
Subject: [AVX512] KNL 1-byte mask spills/reloads are too wide

Hey guys,

I'm working off an older post LLVM 3.7 snapshot and noticed that KNL 1-byte mask spills+reloads are spilling too wide. The spiller reserves 1-byte for the stack slot, but the move instruction is moving 2-bytes of data around. This obviously clobbers neighboring stack slots.

kmovw %k1, 767(%rsp)         # [scrubbed]:[scrubbed]
                                               # 1-byte Folded Spill

We only have the KMOVW instruction on KNL to load/store mask registers, which is why we're moving 2-bytes of data. Seems like the spilling code should be updated to compensate for the extra byte.

Is this a known problem in 3.7? Has a fix been submitted already?

Thanks guys,
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

More information about the llvm-dev mailing list