https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119114
--- Comment #17 from Robin Dapp <rdapp at gcc dot gnu.org> --- > No you got it wrong. > _121 will either be -1 or 0. _11 should be -1 or 0 too. > So the question is what was the VEC_EXTRACT doing the right thing? Is it > 0/-1 or 0/1? I literally mentioned VEC_EXTRACT in the message directly below as well as specified that it's the sequence, not the negate... But thanks for confirming. And we are creating the vector to extract from directly in the expander so a sign extend won't help. We'd need to rtx ones = gen_const_vec_duplicate (qimode, GEN_INT (-1)); in the BI expander. But that breaks pr114668.c. Need to think about it some more.