diff options
author | Tom Stellard <tstellar@redhat.com> | 2018-12-06 22:36:26 +0000 |
---|---|---|
committer | Tom Stellard <tstellar@redhat.com> | 2018-12-06 22:36:26 +0000 |
commit | b7096f761a7264c4156b6704ad5317eda1632816 (patch) | |
tree | c09d14aa4a345798b30e400de3cd00a92dd2a182 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 9e856fabe0db15ee134a572c9525d27af015cd05 (diff) | |
download | bcm5719-llvm-b7096f761a7264c4156b6704ad5317eda1632816.tar.gz bcm5719-llvm-b7096f761a7264c4156b6704ad5317eda1632816.zip |
Merging r348462:
------------------------------------------------------------------------
r348462 | lebedevri | 2018-12-06 00:14:24 -0800 (Thu, 06 Dec 2018) | 13 lines
[InstCombine] foldICmpWithLowBitMaskedVal(): don't miscompile -1 vector elts
I was finally able to quantify what i thought was missing in the fix,
it was vector constants. If we have a scalar (and %x, -1),
it will be instsimplified before we reach this code,
but if it is a vector, we may still have a -1 element.
Thus, we want to avoid the fold if *at least one* element is -1.
Or in other words, ignoring the undef elements, no sign bits
should be set. Thus, m_NonNegative().
A follow-up for rL348181
https://bugs.llvm.org/show_bug.cgi?id=39861
------------------------------------------------------------------------
llvm-svn: 348538
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions