[llvm] [VectorCombine] Add Cmp and Select for shuffleToIdentity (PR #92794)

David Green via llvm-commits llvm-commits at lists.llvm.org
Thu May 30 10:25:34 PDT 2024


davemgreen wrote:

Apparently vblendvb with ymm registers is only available with avx2: https://godbolt.org/z/d38hbxMaP
It looks quite nice then:
```
.LBB0_2:                                # %"2_for_op_pblend_b_0.s0.x.x"
        vmovdqa xmm1, xmmword ptr [r14 + rdx - 16]
        vmovdqa xmm2, xmmword ptr [r14 + rdx]
        vinserti128     ymm1, ymm1, xmm2, 1
        vpmaxub ymm3, ymm1, ymm0
        vpcmpeqb        ymm3, ymm1, ymm3
        vinserti128     ymm2, ymm2, xmmword ptr [r14 + rdx + 16], 1
        vpblendvb       ymm1, ymm2, ymm1, ymm3
        vmovdqa ymmword ptr [rcx + rdx], ymm1
        add     rdx, 32
        cmp     rdx, 768
        jne     .LBB0_2
```


https://github.com/llvm/llvm-project/pull/92794


More information about the llvm-commits mailing list