LLVM backend for 6502
Go to file
Chandler Carruth f159de96bd [x86] Add a really preposterous number of patterns for matching all of
the various ways in which blends can be used to do vector element
insertion for lowering with the scalar math instruction forms that
effectively re-blend with the high elements after performing the
operation.

This then allows me to bail on the element insertion lowering path when
we have SSE4.1 and are going to be doing a normal blend, which in turn
restores the last of the blends lost from the new vector shuffle
lowering when I got it to prioritize insertion in other cases (for
example when we don't *have* a blend instruction).

Without the patterns, using blends here would have regressed
sse-scalar-fp-arith.ll *completely* with the new vector shuffle
lowering. For completeness, I've added RUN-lines with the new lowering
here. This is somewhat superfluous as I'm about to flip the default, but
hey, it shows that this actually significantly changed behavior.

The patterns I've added are just ridiculously repetative. Suggestions on
making them better very much welcome. In particular, handling the
commuted form of the v2f64 patterns is somewhat obnoxious.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219033 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-03 22:43:17 +00:00
autoconf Delete support for AuroraUX. 2014-08-14 15:15:09 +00:00
bindings Reinstate "Nuke the old JIT." 2014-09-02 22:28:02 +00:00
cmake Add LLVM_ENABLE_MODULES flag to CMake to enable building with C++ modules. 2014-09-26 22:40:15 +00:00
docs Fix typo in TableGen documentation 2014-10-03 20:46:05 +00:00
examples Add doInitialization/doFinalization to DataLayoutPass. 2014-09-10 21:27:43 +00:00
include PR21145: Teach LLVM about C++14 sized deallocation functions. 2014-10-03 20:17:06 +00:00
lib [x86] Add a really preposterous number of patterns for matching all of 2014-10-03 22:43:17 +00:00
projects [cmake] Use the external project machinery for libcxxabi so that it can 2014-07-25 10:27:40 +00:00
test [x86] Add a really preposterous number of patterns for matching all of 2014-10-03 22:43:17 +00:00
tools llvm-readobj: print out the fields of the COFF delay-import table 2014-10-03 18:07:18 +00:00
unittests Add unit tests to verify Hexagon emission. 2014-10-03 20:33:03 +00:00
utils PR21101: tablegen's FastISel emitter should filter out unused functions. 2014-10-01 22:44:01 +00:00
.arcconfig Updated phabricator server. 2014-04-07 03:57:04 +00:00
.clang-format Test commit. 2014-03-02 13:08:46 +00:00
.clang-tidy Add .clang-tidy configuration file to provide LLVM-optimized defaults for 2014-09-08 13:30:00 +00:00
.gitignore Add Polly to the ignored trees. 2014-06-25 13:13:36 +00:00
CMakeLists.txt Add LLVM_ENABLE_MODULES flag to CMake to enable building with C++ modules. 2014-09-26 22:40:15 +00:00
CODE_OWNERS.TXT Add Tom Stellard's role as 3.5 release manager. 2014-09-12 08:07:31 +00:00
configure Delete support for AuroraUX. 2014-08-14 15:15:09 +00:00
CREDITS.TXT Rise from the dead and update personal info 2014-08-25 17:51:04 +00:00
LICENSE.TXT Remove projects/sample. 2014-03-12 22:40:22 +00:00
llvm.spec.in Tidy up. s/Low Level Virtual Machine/LLVM/. 2012-01-25 22:00:23 +00:00
LLVMBuild.txt Remove the very substantial, largely unmaintained legacy PGO 2013-10-02 15:42:23 +00:00
Makefile [configure/make] Propagate names of build host tools when making BuildTools 2014-03-25 21:45:41 +00:00
Makefile.common Makefile.common: Update a description, s/Source/SOURCES/ , according to MakefileGuide.html#control-variables . 2012-12-07 01:43:23 +00:00
Makefile.config.in Track clang r213171 2014-07-16 16:50:34 +00:00
Makefile.rules Revert my earlier change to add "all" as a dependency to check. In 2014-09-19 18:44:27 +00:00
README.txt Trivial test commit. 2014-04-26 19:05:45 +00:00

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, 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're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.