llvm-capstone/llvm
Sanjay Patel 47aaa99c0e [VectorCombine] allow peeking through GEPs when creating a vector load
This is an enhancement motivated by https://llvm.org/PR16739
(see D92858 for another).

We can look through a GEP to find a base pointer that may be
safe to use for a vector load. If so, then we shuffle (shift)
the necessary vector element over to index 0.

Alive2 proof based on 1 of the regression tests:
https://alive2.llvm.org/ce/z/yPJLkh

The vector translation is independent of endian (verify by
changing to leading 'E' in the datalayout string).

Differential Revision: https://reviews.llvm.org/D93229
2020-12-18 09:25:03 -05:00
..
benchmarks
bindings [Go] Fix bindings/go/llvm/IRBindings.cpp 2020-12-16 10:09:58 -08:00
cmake [CMake] Avoid __FakeVCSRevision.h with no git repository 2020-12-16 17:33:20 +01:00
docs Add intrinsics for saturating float to int casts 2020-12-18 11:09:41 +01:00
examples [NFC] Reduce include files dependency and AA header cleanup (part 2). 2020-12-17 14:04:48 +03:00
include [libObject, llvm-readobj] - Reimplement ELFFile<ELFT>::getEntry. 2020-12-18 16:52:27 +03:00
lib [VectorCombine] allow peeking through GEPs when creating a vector load 2020-12-18 09:25:03 -05:00
projects
resources
runtimes
test [VectorCombine] allow peeking through GEPs when creating a vector load 2020-12-18 09:25:03 -05:00
tools [libObject, llvm-readobj] - Reimplement ELFFile<ELFT>::getEntry. 2020-12-18 16:52:27 +03:00
unittests [libObject, llvm-readobj] - Reimplement ELFFile<ELFT>::getEntry. 2020-12-18 16:52:27 +03:00
utils [gn build] Port e69e551e0e 2020-12-18 13:00:09 +00:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Remove Python2 fallback and only advertise Python3 in the doc 2020-12-17 15:40:16 +01:00
CODE_OWNERS.TXT
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
README.txt
RELEASE_TESTERS.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.