Much like the VPMOVM2[BW] / VPMOV[BW]2M from AVX512BW,
these either sign-extent the mask register into a vector,
or pack the mask from vector register.
Apparently, we didn't even have MCA tests for these,
added in rG2f364f6f0d3a2420ca78cbd80abb186657180e05,
so i'm just guessing that their perf characteristics
are optimal.
clang-format: please reformat the code
- // Mask sign extend has an instruction. - { ISD::SIGN_EXTEND, MVT::v2i64, MVT::v2i1, 1 }, - { ISD::SIGN_EXTEND, MVT::v4i32, MVT::v2i1, 1 }, - { ISD::SIGN_EXTEND, MVT::v4i32, MVT::v4i1, 1 }, - { ISD::SIGN_EXTEND, MVT::v4i64, MVT::v4i1, 1 }, - { ISD::SIGN_EXTEND, MVT::v8i32, MVT::v8i1, 1 }, - { ISD::SIGN_EXTEND, MVT::v8i64, MVT::v8i1, 1 }, - { ISD::SIGN_EXTEND, MVT::v8i64, MVT::v16i1, 1 }, - { ISD::SIGN_EXTEND, MVT::v16i32, MVT::v16i1, 1 }, -70 diff lines are omitted. See full path.