llvm/lib
Alexey Bataev d6db829b03 [SLP] Fix for PR32036: Vectorized horizontal reduction returning wrong result
Summary:
If the same value is used several times as an extra value, SLP
vectorizer takes it into account only once instead of actual number of
using.
For example:
```
int val = 1;
for (int y = 0; y < 8; y++) {
  for (int x = 0; x < 8; x++) {
    val = val + input[y * 8 + x] + 3;
  }
}
```
We have 2 extra rguments: `1` - initial value of horizontal reduction
and `3`, which is added 8*8 times to the reduction. Before the patch we
added `1` to the reduction value and added once `3`, though it must be
added 64 times.

Reviewers: mkuper, mzolotukhin

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295868 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-22 20:06:40 +00:00
..
Analysis [ModuleSummaryAnalysis] Don't crash when referencing unnamed globals. 2017-02-22 18:53:38 +00:00
AsmParser Change debug-info-for-profiling from a TargetOption to a function attribute. 2017-02-01 22:45:09 +00:00
Bitcode Move symbols from the global namespace into (anonymous) namespaces. NFC. 2017-02-11 11:06:55 +00:00
CodeGen [DAGCombiner] revert r295336 2017-02-22 16:27:33 +00:00
DebugInfo Don't assume little endian in StreamReader / StreamWriter. 2017-02-18 01:35:33 +00:00
Demangle Add support for demangling C++11 thread_local variables. 2017-01-31 15:56:36 +00:00
ExecutionEngine [Orc] Rename ObjectLinkingLayer -> RTDyldObjectLinkingLayer. 2017-02-20 05:45:14 +00:00
Fuzzer [libFuzzer] increase the size of FixedWord from 27 to 64, see PR31950 2017-02-14 23:02:37 +00:00
IR OptDiag: Add const to some interfaces that don't modify anything. NFC 2017-02-22 07:38:17 +00:00
IRReader
LibDriver
LineEditor
Linker IRMover: Merge flags LinkModuleInlineAsm and IsPerformingImport. 2017-02-03 17:01:14 +00:00
LTO [LTO] Add ability to emit assembly to new LTO API 2017-02-15 20:36:36 +00:00
MC [WebAssembly] Implement the wasm binary container header. 2017-02-22 18:50:20 +00:00
Object Move llvm_unreachable out of switch. 2017-02-22 19:42:14 +00:00
ObjectYAML Move symbols from the global namespace into (anonymous) namespaces. NFC. 2017-02-11 11:06:55 +00:00
Option
Passes Increases full-unroll threshold. 2017-02-18 03:46:51 +00:00
ProfileData Fix an obvious bug in SampleProfileReaderGCC. 2017-02-22 17:27:21 +00:00
Support [Support] Provide linux/magic.h fallback for older kernels 2017-02-22 18:09:15 +00:00
TableGen
Target AMDGPU : Update TrapCode based on Trap Handler ABI. 2017-02-22 20:05:06 +00:00
Transforms [SLP] Fix for PR32036: Vectorized horizontal reduction returning wrong result 2017-02-22 20:06:40 +00:00
XRay [XRAY] [x86_64] Adding a Flight Data filetype reader to the llvm-xray Trace implementation. 2017-02-17 01:47:16 +00:00
CMakeLists.txt
LLVMBuild.txt