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.

Reply via email to