llvm-project/llvm/lib
Simon Pilgrim b4ba3cbda0 [X86][AVX] Access a scalar float/double as a free extract from a broadcast load (PR43217)
If a fp scalar is loaded and then used as both a scalar and a vector broadcast, perform the load as a broadcast and then extract the scalar for 'free' from the 0th element.

This involved switching the order of the X86ISD::BROADCAST combines so we only convert to X86ISD::BROADCAST_LOAD once all other canonicalizations have been attempted.

Adds a DAGCombinerInfo::recursivelyDeleteUnusedNodes wrapper.

Fixes PR43217

Differential Revision: https://reviews.llvm.org/D68544

llvm-svn: 373871
2019-10-06 21:11:45 +00:00
..
Analysis [LOOPGUARD] Remove asserts in getLoopGuardBranch 2019-10-06 16:39:43 +00:00
AsmParser [IR] allow fast-math-flags on phi of FP values (2nd try) 2019-09-25 14:35:02 +00:00
BinaryFormat [BinaryFormat] Teach identify_magic about Tapi files. 2019-08-21 21:00:16 +00:00
Bitcode MetadataLoader upgradeCUVariables() - silence static analyzer dyn_cast_or_null<> null dereference warning. NFCI. 2019-10-02 11:48:17 +00:00
Bitstream [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00
CodeGen [X86][AVX] Access a scalar float/double as a free extract from a broadcast load (PR43217) 2019-10-06 21:11:45 +00:00
DebugInfo Revert "[Symbolize] Use the local MSVC C++ demangler instead of relying on dbghelp. NFC." 2019-10-04 07:22:37 +00:00
Demangle Fix uninitialized variable warning. NFCI. 2019-10-02 11:48:45 +00:00
ExecutionEngine [JITLink] Silence GCC warnings. NFC. 2019-10-04 19:47:42 +00:00
FuzzMutate [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Fuzzer
IR [Alignment][NFC] Remove StoreInst::setAlignment(unsigned) 2019-10-03 13:17:21 +00:00
IRReader
LTO [ThinLTO/WPD] Ensure devirtualized targets use promoted symbol when necessary 2019-10-02 16:36:59 +00:00
LineEditor [CMake] Delete redundant DEPENDS/LINK_LIBS from LineEditor/XRay 2019-06-22 01:50:21 +00:00
Linker [IRMover] Don't map globals if their types are the same 2019-09-11 18:35:49 +00:00
MC Revert "[MC] Emit unused undefined symbol even if its binding is not set" 2019-09-30 18:13:48 +00:00
MCA [MCA] Use references to LSUnitBase in class Scheduler and add helper methods to acquire/release LS queue entries. NFCI 2019-09-30 17:24:25 +00:00
Object ObjectFile makeTriple - silence static analyzer dyn_cast<COFFObjectFile> null dereference warning. NFCI. 2019-10-01 11:25:17 +00:00
ObjectYAML [yaml2obj] - Add a Size tag support for SHT_LLVM_ADDRSIG sections. 2019-10-03 15:02:18 +00:00
Option [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Passes [NewPM] Port MachineModuleInfo to the new pass manager. 2019-09-30 17:54:50 +00:00
ProfileData [PGO] Fix typos from r359612. NFC. 2019-10-01 18:06:50 +00:00
Remarks [Remarks] Allow remarks::Format::YAML to take a string table 2019-09-16 22:45:17 +00:00
Support Expose ProvidePositionalOption as a public API 2019-10-05 01:37:04 +00:00
TableGen Reland r349624: Let TableGen write output only if it changed, instead of doing so in cmake 2019-10-03 21:22:28 +00:00
Target [X86][AVX] Access a scalar float/double as a free extract from a broadcast load (PR43217) 2019-10-06 21:11:45 +00:00
Testing
TextAPI [TextAPI] Remove redundant checking causing warnings. NFC. 2019-09-24 14:52:13 +00:00
ToolDrivers [llvm-lib] Detect duplicate input files 2019-10-02 06:41:52 +00:00
Transforms [InstCombine] fold fneg disguised as select+fmul (PR43497) 2019-10-06 14:15:48 +00:00
WindowsManifest Fight a bit against global initializers. NFC. 2019-08-22 19:43:27 +00:00
XRay [XRay] Silence static analyzer dyn_cast<BufferExtents> null dereference warning. NFCI. 2019-09-22 18:47:00 +00:00
CMakeLists.txt Fix build errors LLVM tests are disabled. 2019-07-11 22:08:35 +00:00
LLVMBuild.txt [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00