With AVX512, we can more efficiently sign extend vXi1 to vector registers. Zero extending requires doing a sign extend and then shifting right by width-1 or anding with 1.
We have a similar combine from sub->add in generic DAG combine, but replicating that caused possible regressions on other targets. I've limited this to only cases where bool vectors are legal to avoid some other regressions on X86.