diff options
author | Florian Hahn <flo@fhahn.com> | 2025-07-29 20:32:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-29 20:32:31 +0100 |
commit | 55f9eccee9b5ca6102206d4a1aba9ca21070881d (patch) | |
tree | 997e59742b976061efb4c3ed5ccf40bf8f2c13cb /lldb/unittests/ScriptInterpreter/Python/PythonDataObjectsTests.cpp | |
parent | f3c531c676794b16449fd1548ead9fbd0d36709e (diff) | |
download | llvm-55f9eccee9b5ca6102206d4a1aba9ca21070881d.zip llvm-55f9eccee9b5ca6102206d4a1aba9ca21070881d.tar.gz llvm-55f9eccee9b5ca6102206d4a1aba9ca21070881d.tar.bz2 |
[LV] Revert back to use Loop::isLoopInvariant in isPredicatedInst. (#150828)
This partially reverts https://github.com/llvm/llvm-project/pull/140744,
restoring the original TheLoop->isLoopInvariant check instead the more
powerful Legal->isInvariant, which uses SCEV.
This causes a mis-compile, because SCEV can prove that the stored value
is loop-invariant, which in turn converts the store to a uniform store.
But in VPlan, we aren't yet able to determine that the stored value is
loop-invariant, so we extract the last lane, which is incorrect, because
it does not account for the mask of the store.
Restoring the original code is a safe fix and avoids this subtle
divergence.
Fixes https://github.com/llvm/llvm-project/issues/149347.
PR: https://github.com/llvm/llvm-project/pull/150828
Diffstat (limited to 'lldb/unittests/ScriptInterpreter/Python/PythonDataObjectsTests.cpp')
0 files changed, 0 insertions, 0 deletions