hanchenye-llvm-project/llvm
Craig Topper aa52ee2770 [X86] Emit a PACKUS instead of a VECTOR_SHUFFLE from LowerTRUNCATE for v16i16->v16i8.
We can't guarantee that demanded bits passing through the vector shuffle won't cause the AND in front of this to be removed. This would prevent the PACKUS from being matched during shuffle lowering.

Unfortunately, this adds a packuswb to one of the vector-reduce-mul.ll tests since we were removing the shuffle via SimplifyDemandedVectorElts. We appear to have similar issues with vpmovwb on the same test case on other targets.

llvm-svn: 347361
2018-11-20 22:57:48 +00:00
..
benchmarks
bindings [bindings/go] Add Go bindings to LLVMGetIndices 2018-11-08 04:04:04 +00:00
cmake Silence C4709 in MSVC because it is buggy. 2018-11-20 20:50:04 +00:00
docs [Docs] Documentation for the saturation addition and subtraction intrinsics 2018-11-20 18:01:24 +00:00
examples Fix build break from r347239 2018-11-19 18:51:11 +00:00
include Fix pointer options mask. It was off by 1 bit. 2018-11-20 22:53:40 +00:00
lib [X86] Emit a PACKUS instead of a VECTOR_SHUFFLE from LowerTRUNCATE for v16i16->v16i8. 2018-11-20 22:57:48 +00:00
projects
resources
runtimes
test [X86] Emit a PACKUS instead of a VECTOR_SHUFFLE from LowerTRUNCATE for v16i16->v16i8. 2018-11-20 22:57:48 +00:00
tools [llvm-exegesis][NFC] Some code style cleanup 2018-11-20 14:41:59 +00:00
unittests [unittests] Fix ExpandTilde test to match handling home dirs with trailing slash 2018-11-20 21:13:51 +00:00
utils Fix clang test suite on Windows by reverting part of r347216 2018-11-19 19:36:28 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore [git/svn] Ignore Visual Studio's CMakeSettings.json. 2018-10-29 14:51:02 +00:00
CMakeLists.txt [CMake] Accept ENTITLEMENTS in add_llvm_executable and llvm_codesign 2018-11-16 18:10:36 +00:00
CODE_OWNERS.TXT
CREDITS.TXT It's a test commit, which is my first commit and also add my name to CREDITS.TXT 2018-11-06 03:07:03 +00:00
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT Adding Yvan as release test backup for Diana 2018-11-08 11:51:27 +00:00
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.