llvm-project/llvm/lib
Craig Topper 0e561437c5 [X86] Use packusdw+vpmovuswb to implement v16i32->V16i8 that clamps signed inputs to be between 0 and 255 when zmm registers are disabled on SKX.
If we've disable zmm registers, the v16i32 will need to be split. This split will propagate through min/max the truncate. This creates two sequences that need to be concatenated back to v16i8. We can instead use packusdw to do part of the clamping, truncating, and concatenating all at once. Then we can use a vpmovuswb to finish off the clamp.

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

llvm-svn: 374431
2019-10-10 19:40:44 +00:00
..
Analysis [Alignment][NFC] Make VectorUtils uas llvm::Align 2019-10-10 12:35:04 +00:00
AsmParser [X86] Add new calling convention that guarantees tail call optimization 2019-10-07 22:28:58 +00:00
BinaryFormat DebugInfo: Move LLE enum handling to .def to match RLE handling 2019-10-08 21:48:46 +00:00
Bitcode [Bitcode] Update naming of UNOP_NEG to UNOP_FNEG 2019-10-07 20:41:25 +00:00
Bitstream [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00
CodeGen [DAGCombiner] fold select-of-constants to shift 2019-10-10 17:52:02 +00:00
DebugInfo Fix Windows build after r374381 2019-10-10 18:20:16 +00:00
Demangle Fix uninitialized variable warning. NFCI. 2019-10-02 11:48:45 +00:00
ExecutionEngine Second attempt to add iterator_range::empty() 2019-10-07 18:14:24 +00:00
FuzzMutate [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Fuzzer
IR [SVE][IR] Scalable Vector size queries and IR instruction support 2019-10-08 12:53:54 +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 [System Model] [TTI] Update cache and prefetch TTI interfaces 2019-10-09 19:51:48 +00:00
MCA [MCA][LSUnit] Track loads and stores until retirement. 2019-10-08 10:46:01 +00:00
Object Object/minidump: Add support for the MemoryInfoList stream 2019-10-08 14:15:32 +00:00
ObjectYAML MinidumpYAML: Add support for the memory info list stream 2019-10-10 13:05:46 +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 [SampleFDO] Add indexing for function profiles so they can be loaded on demand 2019-10-09 21:36:03 +00:00
Remarks [Remarks] Pass StringBlockValue as StringRef. 2019-10-07 17:05:09 +00:00
Support win: Move Parallel.h off concrt to cross-platform code 2019-10-10 18:57:23 +00:00
TableGen [tblgen] Add getOperatorAsDef() to Record 2019-10-08 18:41:32 +00:00
Target [X86] Use packusdw+vpmovuswb to implement v16i32->V16i8 that clamps signed inputs to be between 0 and 255 when zmm registers are disabled on SKX. 2019-10-10 19:40:44 +00:00
Testing [Testing] Move clangd::Annotations to llvm testing support 2019-04-25 10:08:31 +00:00
TextAPI Reland "[TextAPI] Introduce TBDv4" 2019-10-10 04:24:44 +00:00
ToolDrivers [llvm-lib] Detect duplicate input files 2019-10-02 06:41:52 +00:00
Transforms Fix Wdocumentation warnings. NFCI. 2019-10-10 15:25:16 +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