The bug is in Low <-> High boundaries calculation. The High boundary should be "last memory access pointer + element size".
(It may be "last memory access pointer + element size -1", since we use "<=" in bounds condition)
Differential D23176
[LoopVectorizer] Fixed a bug in memory conflict run-time check delena on Aug 4 2016, 1:15 PM. Authored by
Details The bug is in Low <-> High boundaries calculation. The High boundary should be "last memory access pointer + element size". (It may be "last memory access pointer + element size -1", since we use "<=" in bounds condition)
Diff Detail
Event Timeline
Comment Actions Did you forget to add the test?
Comment Actions No, I didn't. I fixed the existing lit tests that explore the change. Do you want one more lit test? Comment Actions Yes, please. I would certainly like to have the testcase included in the patch that triggers the bug with an explanation why. You should be able to construct a testcase by checking the memcheck part of the output of LAA. Once the other bug is fixed you can add an additional RUN line for -loop-vectorize and then check the compares directly. Comment Actions
Comment Actions I am happy with this now with the comments addressed as long as Ayal also likes it. Thanks for the fix!
|