[DAG] Fold multiple insert_vector_elt of zero values into an AND mask
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 15 Mar 2023 09:56:22 +0000 (09:56 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 15 Mar 2023 09:56:26 +0000 (09:56 +0000)
commit70562607ab385423e076b3c9851860291201e509
treefc733d0995017fcaad6cf66c6f75b3db1730a5c4
parent71c4d186f1cf247f1aa45f4fd1b38f350b68d123
[DAG] Fold multiple insert_vector_elt of zero values into an AND mask

This also allows us to make use of the existing isVectorClearMaskLegal shuffle canonicalization

Differential Revision: https://reviews.llvm.org/D145939
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/test/CodeGen/AArch64/neon-dotreduce.ll
llvm/test/CodeGen/AArch64/vecreduce-add-legalization.ll
llvm/test/CodeGen/AArch64/vecreduce-umax-legalization.ll
llvm/test/CodeGen/X86/clear_upper_vector_element_bits.ll
llvm/test/CodeGen/X86/insertelement-zero.ll