llvm-mirror/lib
Roman Lebedev b6c9370768 [InstCombine] visitMaskedMerge(): when unfolding, sanitize undef constants (PR45955)
We can't leave undef vector element constants as-is,
it is a miscompile, so we need to sanitize them.

We have two vectors (C and ~C):
* We can't replace undef with 0 in both of them
* We can't replace undef with 0 in only one of them
* We could replace undef with -1 in both of them
* We could replace undef with -1 in only one(!) of them
* We could replace undef with -1 in one and 0 in another one of them.

Therefore, it seems best to go with the last option, since otherwise
we'd loose knowledge that C and ~C have no common bits set,
which seems more important than preserving partial undef knowledge.

Fixes https://bugs.llvm.org/show_bug.cgi?id=45955
2020-05-17 22:53:03 +03:00
..
Analysis [LVI] Don't use dominator tree in isValidAssumeForContext() 2020-05-17 21:39:35 +02:00
AsmParser AllocaInst should store Align instead of MaybeAlign. 2020-05-16 14:53:16 -07:00
BinaryFormat XCOFF.h - replace StringRef.h include with forward declaration. NFC. 2020-04-23 13:52:48 +01:00
Bitcode AllocaInst should store Align instead of MaybeAlign. 2020-05-16 14:53:16 -07:00
Bitstream [Bitcode] reserve in front of push_back loops. NFCI. 2020-05-01 15:52:53 +02:00
CodeGen DebugInfo: Reduce long-distance dependence on what will/won't emit a debug_addr section 2020-05-17 12:45:56 -07:00
DebugInfo [DebugInfo] - DWARFDebugFrame: do not call abort() on errors. 2020-05-15 13:05:35 +03:00
Demangle Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
DWARFLinker [Clang] Restore replace_path_prefix instead of startswith 2020-05-13 13:49:14 -04:00
ExecutionEngine [ORC] Share ownership of JITDylibs between ExecutionSession and 2020-05-10 16:37:17 -07:00
Extensions Update compiler extension integration into the build system 2020-04-24 09:40:14 +02:00
Frontend [cmake] LLVMFrontendOpenMP - fix include/llvm/Frontend/OpenMP header path 2020-04-18 12:31:39 +01:00
Fuzzer
FuzzMutate FuzzerCLI.h - reduce StringRef.h include to forward declaration. NFC. 2020-05-12 13:03:50 +01:00
IR AllocaInst should store Align instead of MaybeAlign. 2020-05-16 14:53:16 -07:00
IRReader Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
LineEditor Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Linker [SVE] Add new VectorType subclasses 2020-04-22 08:59:01 -07:00
LTO [LTO] Suppress emission of empty combined module by default 2020-05-04 18:31:09 -07:00
MC [Clang] Restore replace_path_prefix instead of startswith 2020-05-13 13:49:14 -04:00
MCA [MCA][InstrBuilder] Correctly mark reserved resources in initializeUsedResources. 2020-05-10 19:25:54 +01:00
Object [Object] Remove unused variable after D79560. NFC. 2020-05-11 13:03:53 +08:00
ObjectYAML [ObjectYAML][DWARF] Take into account other debug sections in DWARFYAML::Data::isEmpty(). 2020-05-17 22:53:27 +08:00
Option Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Passes [llvm] Add interface to drive inlining decision using ML model 2020-05-13 13:27:29 -07:00
ProfileData [gcov] Emit GCOV_TAG_OBJECT_SUMMARY/GCOV_TAG_PROGRAM_SUMMARY correctly and fix llvm-cov's decoding of runcount 2020-05-11 21:53:53 -07:00
Remarks RemarkStringTable.h - reduce StringRef/Remark includes to forward declarations. NFC 2020-05-08 12:30:49 +01:00
Support Revert rGca18ce1a00cd8b7cb7ce0e130440f5ae1ffe86ee "GlobPattern.h - remove unnecessary BitVector.h/StringRef.h includes. NFC" 2020-05-17 18:51:21 +01:00
TableGen [TableGen] Simplify with TGParser::consume() 2020-04-26 15:26:49 -07:00
Target ImmutableGraph.h - remove unused raw_ostream.h include. NFC 2020-05-17 18:29:41 +01:00
Testing
TextAPI [cmake] Add headers in TextAPI/Elf and TextAPI/MachO subdirectories 2020-04-24 18:42:44 +01:00
ToolDrivers [COFF] Use Expected in COFFObjectFile creation 2020-05-08 14:22:28 -07:00
Transforms [InstCombine] visitMaskedMerge(): when unfolding, sanitize undef constants (PR45955) 2020-05-17 22:53:03 +03:00
WindowsManifest Try to fix WindowsManifest CMake logic on Windows 2020-02-28 17:24:03 -08:00
XRay [llvm-xray] consumeError when trying big-endian 2020-05-16 22:44:48 -07:00
CMakeLists.txt Update compiler extension integration into the build system 2020-04-24 09:40:14 +02:00
LLVMBuild.txt Update compiler extension integration into the build system 2020-04-24 09:40:14 +02:00