[InstCombine] Allow splats with poison/undef in llvm::decomposeBitTestICmp
This change is made to enable conversion of a masked icmp splat vector containing poison/undef to an equality expression. llvm::decomposeBitTestICmp Alive2 correctness examples using splat/masking vectors: SLT < https://alive2.llvm.org/ce/z/pPTTHh SLE <= https://alive2.llvm.org/ce/z/qQhAmU SGT > https://alive2.llvm.org/ce/z/koFHzF SGE >= https://alive2.llvm.org/ce/z/3SNz2S ULT <u https://alive2.llvm.org/ce/z/W8ktzQ ULE <=u https://alive2.llvm.org/ce/z/G5SdUY UGT >u https://alive2.llvm.org/ce/z/WFwYxq UGE >=u https://alive2.llvm.org/ce/z/DzJszP Tests have been verified using Alive2: icmp-logical.ll: @nomask_splat_and_B_allones https://alive2.llvm.org/ce/z/zmJwQU icmp-logical.ll: @nomask_splat_and_B_mixed https://alive2.llvm.org/ce/z/ktzgzd signed-truncation-check.ll: @positive_vec_undef0 https://alive2.llvm.org/ce/z/-sTRLD Differential Revision: https://reviews.llvm.org/D143032
Loading
Please sign in to comment