[X86] combineMOVMSK - fold movmsk(icmp_eq(and(x,c1),c1)) -> movmsk(shl(x,c2)) iff...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 3 Apr 2023 14:07:11 +0000 (15:07 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 3 Apr 2023 14:11:13 +0000 (15:11 +0100)
commit6865cff8ea8b07d9f2385fd92cecb422404f0f35
tree54d4d0ea75be6c117b10fb5f10eafbeed6c8b342
parent39d7bf6e3468774ede7004d1f7969f4962e8806f
[X86] combineMOVMSK - fold movmsk(icmp_eq(and(x,c1),c1)) -> movmsk(shl(x,c2)) iff pow2splat(c1)

We already have a similar fold for movmsk(icmp_eq(and(x,c1),0)) which we can probably merge this with, but it will involve generalizing a lot of the knownbits code
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/bitcast-vector-bool.ll