[X86][SSE] Add support for <64 x i1> bool reduction
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 8 Sep 2019 11:46:21 +0000 (11:46 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 8 Sep 2019 11:46:21 +0000 (11:46 +0000)
commit3262084384c74c6dd8bf5908a2014081ec003e1d
treec82d7e6b334b19fba863c2cdd2b72ec9bfc2f2e3
parentacf81f4210cdc769c25ea41c8acf77666190767e
[X86][SSE] Add support for <64 x i1> bool reduction

This generalizes the existing <32 x i1> pre-AVX2 split code to support reductions from <64 x i1> as well, we can probably generalize to any larger pow2 case in the future if the (unlikely) need ever arises.

We still need to tweak combineBitcastvxi1 to improve AVX512F codegen as its assumes vXi1 types should be handled on the mask registers even when they aren't legal.

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

llvm-svn: 371328
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/vector-reduce-and-bool.ll
llvm/test/CodeGen/X86/vector-reduce-or-bool.ll
llvm/test/CodeGen/X86/vector-reduce-xor-bool.ll