https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92865
--- Comment #5 from Hongtao.liu <crazylht at gmail dot com> --- (In reply to Richard Biener from comment #4) > (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. True, thanks > > > /* AVX512F is needed for mask operation. */ > > > > I'll add some testcase later.