Go to file
Craig Topper 63157c4784 [X86] Use EVEX encoded VRNDSCALE instructions to implement the legacy round intrinsics.
The VRNDSCALE instructions implement a superset of the (V)ROUND instructions. They are equivalent if the upper 4-bits of the immediate are 0.

This patch lowers the legacy intrinsics to the VRNDSCALE ISD node and masks the upper bits of the immediate to 0. This allows us to take advantage of the larger register encoding space.

We should maybe consider converting VRNDSCALE back to VROUND in the EVEX to VEX pass if the extended registers are not being used.

I notice some load folding opportunities being missed for the VRNDSCALESS/SD instructions that I'll try to fix in future patches.

llvm-svn: 318008
2017-11-13 02:03:00 +00:00
clang Fix AST matcher documentation typo 2017-11-11 23:53:27 +00:00
clang-tools-extra [clangd] Fix compilation database detection 2017-11-09 21:45:27 +00:00
compiler-rt [sanitizer] Simplify stack check in accert.cc 2017-11-12 21:15:19 +00:00
debuginfo-tests [debuginfo-tests] Make debuginfo-tests work in a standard configuration. 2017-11-10 20:57:57 +00:00
libclc native_exp10: Switch implementation to llvm intrinsic 2017-11-10 22:16:41 +00:00
libcxx Two more papers from Albuquerque 2017-11-12 18:52:16 +00:00
libcxxabi Fix ASAN build with older compiler-rt versions. 2017-09-14 22:37:34 +00:00
libunwind Add ifdefs around ELF specific parts of UnwindRegisters*.S for arm 2017-11-04 21:01:31 +00:00
lld Simplify. NFC. 2017-11-11 01:59:47 +00:00
lldb Added a way to dump the full paths to all source files in a module that has debug info. 2017-11-10 22:39:07 +00:00
llgo irgen: Create functions instead of global variables for builtin hash and equal algorithms. 2017-06-04 22:11:28 +00:00
llvm [X86] Use EVEX encoded VRNDSCALE instructions to implement the legacy round intrinsics. 2017-11-13 02:03:00 +00:00
openmp [OMPT] Provide initialization for Mac OS X 2017-11-11 13:59:48 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly [polly] Remove redundant return [NFC] 2017-11-10 20:33:08 +00:00
README.md Add an svn project to contain the files that appear at the root of the 2017-10-19 21:09:49 +00:00

README.md

Low Level Virtual Machine (LLVM)

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