[CodeGen] Extend reduction support in ComplexDeinterleaving pass to support predication
authorIgor Kirillov <igor.kirillov@arm.com>
Fri, 9 Jun 2023 16:03:22 +0000 (16:03 +0000)
committerIgor Kirillov <igor.kirillov@arm.com>
Thu, 22 Jun 2023 16:49:40 +0000 (16:49 +0000)
commit116953b82130df1ebd817b3587b16154f659c013
tree6eae15b5408f0359c872833f07ea23888d552bd0
parentce378fcb9e1c05460466a8aa46de818da6259a86
[CodeGen] Extend reduction support in ComplexDeinterleaving pass to support predication

Adds the capability to recognize SelectInst that appear in the IR.
These instructions are generated during scalable vectorization for reduction
and when the code contains conditions inside the loop body or when
"-prefer-predicate-over-epilogue=predicate-dont-vectorize" is set.

Differential Revision: https://reviews.llvm.org/D152558
llvm/include/llvm/CodeGen/ComplexDeinterleavingPass.h
llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp
llvm/test/CodeGen/AArch64/complex-deinterleaving-reductions-predicated-scalable.ll