llvm-project/llvm
Sanjay Patel 09e71c367a [x86] convert logic-of-FP-compares to FP logic-of-vector-compares
This is motivated by the examples and discussion in:
https://llvm.org/PR51245
...and related bugs.

By using vector compares and vector logic, we can convert 2 'set'
instructions into 1 'movd' or 'movmsk' and generally improve
throughput/reduce instructions.

Unfortunately, we don't have a complete vector compare ISA before
AVX, so I left SSE-only out of this patch. Ie, we'd need extra logic
ops to simulate the missing predicates for SSE 'cmpp*', so it's not
as clearly a win.

Differential Revision: https://reviews.llvm.org/D110342
2021-09-24 11:38:19 -04:00
..
benchmarks
bindings [NFC][C API] Make LLVMSetInstrParamAlignment's index param type LLVMAttributeIndex 2021-09-07 15:13:45 -07:00
cmake [CMake] Pass llvm-readelf to CMake external builds 2021-09-23 14:16:14 -07:00
docs [llvm-objcopy][docs] Add missing options to the help output and the command guide 2021-09-24 09:44:46 +01:00
examples [ORC][examples] Export exectuable symbols explicitly in LLJITWithExecutorProcessControl 2021-09-23 21:40:06 +02:00
include [Transforms/Utils] Remove redundant declaration computeSyntheticCounts (NFC) 2021-09-24 08:08:58 -07:00
lib [x86] convert logic-of-FP-compares to FP logic-of-vector-compares 2021-09-24 11:38:19 -04:00
projects
resources
runtimes
test [x86] convert logic-of-FP-compares to FP logic-of-vector-compares 2021-09-24 11:38:19 -04:00
tools [llvm-objcopy][NFC] Add a helper method RelocationSectionBase::getNamePrefix() 2021-09-24 22:02:36 +07:00
unittests [Analysis] Fix another issue when querying vscale attributes on functions 2021-09-24 13:37:23 +01:00
utils [TableGen] Allow targets to entirely ignore Psets for registers 2021-09-23 23:07:35 -04:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [cmake] Put check from D110016 behind (default-on) flag 2021-09-20 15:09:05 -04:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.