[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,

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