https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110986
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- For x86_64, we need to convert: mask__9.14_51 = vect__4.10_46 != { 0, 0, 0, 0, 0, 0, 0, 0 }; vect__40.16_55 = VIEW_CONVERT_EXPR<vector(8) signed short>(mask__9.14_51); vect__41.17_56 = vect_pretmp_25.13_49 ^ vect__40.16_55; back into vect_iftmp.14_48 = ~vect_pretmp_25.13_47; vect_iftmp.16_51 = .VCOND (vect__4.10_44, { 0, 0, 0, 0, 0, 0, 0, 0 }, vect_iftmp.14_48, vect_pretmp_25.13_47, 114); I find it a bit odd there was no testcase on the x86_64 side for the code generation here.