llvm/test
Craig Topper c7cbba03a9 [AVX-512] Add support for commuting VPTERNLOG instructions.
VPTERNLOG is a ternary instruction with an immediate specifying the logical operation to perform. For each bit position in the 3 source vectors the bit from each source is concatenated together and the resulting 3-bit value is used to select a bit in the immediate. This bit value is written to the result vector.

We can commute this by swapping operands and modifying the immediate. To modify the immediate we need to swap two pairs of bits. The pairs correspond to the locations in the immediate where the commuted operands bits have opposite values and the uncommuted operand has the same value. Bits 0 and 7 will never be swapped since the relevant bits from all sources are the same value.

This refactors and reuses parts of the FMA3 commuting code which is also a three operand instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282132 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-22 03:00:50 +00:00
..
Analysis [CostModel][X86] Added scalar float op costs 2016-09-18 21:01:20 +00:00
Assembler DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
Bindings
Bitcode [ThinLTO] Always emit a summary when compiling in ThinLTO mode 2016-09-20 23:07:17 +00:00
BugPoint
CodeGen [AVX-512] Add support for commuting VPTERNLOG instructions. 2016-09-22 03:00:50 +00:00
DebugInfo Emit S_COMPILE3 CodeView record 2016-09-20 17:20:51 +00:00
Demangle Add an c++ itanium demangler to llvm. 2016-09-06 19:16:48 +00:00
Examples
ExecutionEngine [ORC] Clone module flags metadata into the globals module in the 2016-09-04 17:53:30 +00:00
Feature Revert "Revert "Invariant start/end intrinsics overloaded for address space"" 2016-08-13 23:31:24 +00:00
FileCheck
Instrumentation revert 281908 because 281909 got reverted 2016-09-21 18:25:43 +00:00
Integer
JitListener
LibDriver
Linker Fix autoupgrade logic for Objective-C class properties module flag 2016-09-16 00:38:18 +00:00
LTO [LTO] Use llvm-nm instead of nm in new tests 2016-09-16 17:12:48 +00:00
MC [AMDGPU][mc] Add support for ds_add_[rtn_]f32. 2016-09-21 16:35:44 +00:00
Object Next set of additional error checks for invalid Mach-O files for bad LC_UUID 2016-09-21 20:03:09 +00:00
ObjectYAML [macho2yaml] Don't write empty linkedit data 2016-08-17 21:46:04 +00:00
Other [PM] Port CFGViewer and CFGPrinter to the new Pass Manager 2016-09-15 18:35:27 +00:00
SymbolRewriter
TableGen [TableGen] AsmMatcher: Add AsmVariantName to Instruction class. 2016-09-08 15:50:52 +00:00
ThinLTO/X86 [ThinLTO] Always emit a summary when compiling in ThinLTO mode 2016-09-20 23:07:17 +00:00
tools [ThinLTO] Emit files for distributed builds for all modules 2016-09-21 19:12:05 +00:00
Transforms [LoopInterchange] Track all dependencies, not just anti dependencies. 2016-09-21 19:16:47 +00:00
Unit
Verifier
YAMLParser
.clang-format
CMakeLists.txt Add an c++ itanium demangler to llvm. 2016-09-06 19:16:48 +00:00
lit.cfg Add an c++ itanium demangler to llvm. 2016-09-06 19:16:48 +00:00
lit.site.cfg.in
TestRunner.sh