HomePhabricator

[X86][SSE] LowerVectorAllZero - add support for masked OR-reductions

Authored by RKSimon on Jun 30 2020, 6:09 AM.

Description

[X86][SSE] LowerVectorAllZero - add support for masked OR-reductions

If we're masking the result of an OR-reduction before comparing against zero, we can fold this into the PTEST() / MOVMSK(CMPEQ()) codegen by pre-masking the source value.

This works particularly well on PTEST which performs the AND as part of its operation, but the MOVMSK variant also benefits for non-V2I64 cases.

Fixes PR44781

Details

Committed
RKSimonJun 30 2020, 6:38 AM
Parents
rG05c479491c1d: Make it possible for client code to consume CLANG_LINK_CLANG_DYLIB
Branches
Unknown
Tags
Unknown