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

Cameron McInally via llvm-dev llvm-dev at lists.llvm.org
Fri Feb 5 08:16:46 PST 2016

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,

More information about the llvm-dev mailing list