llvm/lib
Simon Pilgrim 2f401854a1 [X86][SSE] Add general lowering of nontemporal vector loads (fixed bad merge)
Currently the only way to use the (V)MOVNTDQA nontemporal vector loads instructions is through the int_x86_sse41_movntdqa style builtins.

This patch adds support for lowering nontemporal loads from general IR, allowing us to remove the movntdqa builtins in a future patch.

We currently still fold nontemporal loads into suitable instructions, we should probably look at removing this (and nontemporal stores as well) or at least make the target's folding implementation aware that its dealing with a nontemporal memory transaction.

There is also an issue that VMOVNTDQA only acts on 128-bit vectors on pre-AVX2 hardware - so currently a normal ymm load is still used on AVX1 targets.

Differential Review: http://reviews.llvm.org/D20965

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272011 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-07 13:47:23 +00:00
..
Analysis [LoopUnrollAnalyzer] Fix a crash in analyzeLoopUnrollCost. 2016-06-06 19:21:40 +00:00
AsmParser [ASMParser] Parse FP constants in non-C locales 2016-06-02 20:04:44 +00:00
Bitcode [BitCode] Make sure atomicrmw's argument is an actual PointerType 2016-06-05 18:43:40 +00:00
CodeGen Re-land "[codeview] Emit information about global variables" 2016-06-07 00:02:03 +00:00
DebugInfo [pdb] Use MappedBlockStream to parse the PDB directory. 2016-06-07 05:28:55 +00:00
ExecutionEngine [Orc] Add conversion to/from RuntimeDyld::SymbolInfo for JITSymbol. 2016-05-31 23:14:26 +00:00
Fuzzer [LibFuzzer] s/dataflow sanitizer/DataflowSanitizer/ 2016-06-07 04:44:49 +00:00
IR Verifier: Simplify and fix issue where we were not verifying unmaterialized functions. 2016-06-06 23:21:27 +00:00
IRReader Remove autoconf support 2016-01-26 21:29:08 +00:00
LibDriver LibDriver: Silently do nothing when provided no inputs. 2016-04-13 19:36:04 +00:00
LineEditor Fix Clang-tidy modernize-deprecated-headers warnings in some files; other minor fixes. 2016-03-28 17:40:08 +00:00
Linker Apply clang-tidy's misc-move-constructor-init throughout LLVM. 2016-05-27 14:27:24 +00:00
LTO [ThinLTO] Resolve LinkOnceAny 2016-05-26 14:16:52 +00:00
MC [MC] Check the upper bound in truncate assertion 2016-06-04 04:02:18 +00:00
Object [Symbolize] Check if the PE file has a PDB and emit an error if we can't load it 2016-06-03 20:25:09 +00:00
ObjectYAML [obj2yaml] [yaml2obj] Support for MachO nlist and string table 2016-06-02 22:54:06 +00:00
Option Option parser: class for consuming a joined arg in addition to all remaining args 2016-04-15 00:23:30 +00:00
Passes [PM] Port IndVarSimplify to the new pass manager 2016-06-05 18:01:19 +00:00
ProfileData Change llvm-objdump, llvm-nm and llvm-size when reporting an object file error 2016-05-31 20:35:34 +00:00
Support [cpu-detection] Substantial refactor of Host CPU detection code (x86) 2016-06-06 18:29:59 +00:00
TableGen [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
Target [X86][SSE] Add general lowering of nontemporal vector loads (fixed bad merge) 2016-06-07 13:47:23 +00:00
Transforms [PM] Preserve GlobalsAA for SROA. 2016-06-07 13:21:17 +00:00
CMakeLists.txt Move ObjectYAML code to a new library. 2016-03-01 19:15:06 +00:00
LLVMBuild.txt Add LLVMBuild for ObjectYAML. 2016-03-01 21:29:33 +00:00