[PATCH] D43087: [SelectionDAG][X86] Fix incorrect offset generated for VMASKMOV

Alexander Ivchenko via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 14 04:29:48 PST 2018


aivchenk added a comment.

The problem originated from a miscompare in a benchmark. That appeared to be a machine-scheduler that moved writes after reads of a pointer. It turned out that the scheduler was within its rights to do so, as it checked the offset of the following pointer:

VMASKMOVPSYmr %stack.1.stack_output_vec, 1, $noreg, 32, $noreg, [[AVX_SET0_]], killed [[VMASKMOVPSYrm1]] :: (store 32 into %ir.stack_output_vec, align 4)

.. and it returned '0', instead of '32' I don't have a testcase-ready assembly at this point, but since the problem is local, I believe having MIR test to check that would be a better choice


https://reviews.llvm.org/D43087





More information about the llvm-commits mailing list