https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92865
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Hongtao.liu from comment #3) > Since TARGET_XOP only supports 128-bit vector compare, > ix86_valid_mask_cmp_mode should also handle 256/512-bit vector compare when > avx512f is avalable. > > > untested patch > > @@ -3428,7 +3428,7 @@ static bool > ix86_valid_mask_cmp_mode (machine_mode mode) > { > /* XOP has its own vector conditional movement. */ > - if (TARGET_XOP) > + if (TARGET_XOP && GET_MODE_SIZE (mode) == 128) > return false; Shouldn't we do sth like TARGET_XOP && !TARGET_AVX512F instead? That is maybe simply elide that check completely, not sure why it was added. > /* AVX512F is needed for mask operation. */ > > I'll add some testcase later.