llvm with tablegen backend for capstone disassembler
Go to file
Craig Topper 5992c8d1dc [AVX-512] Handle kor/kand/kandn/kxor/kxnor/knot intrinsics at lowering time instead of isel
Summary:
Currently we handle these intrinsics at isel with special patterns. But as they just map to normal logic operations, we should just handle them at lowering. This will expose them to DAG combine optimizations. Right now the kor-sequence test generates a bunch of regclass copies between GR16 and VK16 that the peephole optimizer and/or register coallescing are removing to keep everything in the mask domain. By handling the logic op intrinsics earlier, these copies become bitcasts in the DAG and get removed by DAG combine which seems more robust.

This should help enable my plan to stop copying between K registers and GR8/GR16. The peephole optimizer can't remove a chain of copies between K and GR32 with insert_subreg/extract_subreg present in the chain so the kor-sequence test break. But this patch should dodge the problem entirely.

Reviewers: zvi, delena, RKSimon, igorb

Reviewed By: igorb

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D31056

llvm-svn: 298228
2017-03-19 17:11:09 +00:00
clang Cleaning up the IdentifierResolver::iterator class a bit; NFC. 2017-03-19 15:15:28 +00:00
clang-tools-extra [Clang-tidy] Fix for misc-noexcept-move-constructor false triggers on defaulted declarations 2017-03-17 16:40:34 +00:00
compiler-rt Use pthreads for thread-local lsan allocator cache on darwin 2017-03-19 15:02:43 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc math: Implement sinh function 2017-02-25 02:46:53 +00:00
libcxx Implement LWG#2761: 'basic_string should require that charT match traits::char_type'. Tests for string_view, too 2017-03-15 18:41:11 +00:00
libcxxabi Fully Reformat fallback_malloc.cpp 2017-03-04 03:23:15 +00:00
libunwind DarwinParser: include limits 2017-03-14 15:17:55 +00:00
lld Compute Config member function return values only once. 2017-03-17 23:29:01 +00:00
lldb Fix syntax error when building with editline support. 2017-03-19 06:00:31 +00:00
llgo [llgo] Remove support for LLVM attributes 2016-12-06 19:22:04 +00:00
llvm [AVX-512] Handle kor/kand/kandn/kxor/kxnor/knot intrinsics at lowering time instead of isel 2017-03-19 17:11:09 +00:00
openmp Create a git ignore file for openmp runtime. 2017-03-11 13:05:08 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly [CodeGen] Remove need for all parameters to be in scop context for load hoisting. 2017-03-18 23:12:49 +00:00