On Tue, Dec 10, 2019 at 01:47:50PM +0800, Hongtao Liu wrote:
> This patch is to enable integer mask cmp/cmov under AVX512F even
> with TARGET_XOP .
> Bootstrap and regression test on i386/x86_64 backend is ok.
>
> Changelog:
> PR target/92865
> * gcc/config/i386/i386-expand.c (ix86_valid_mask_cmp_mode): Enable
> integer mask cmov when available even with TARGET_XOP.
> * gcc/testsuite/gcc.target/i386/pr92865-1.c: New test.
No gcc/ or gcc/testsuite/ prefixes in ChangeLog.
> --- a/gcc/config/i386/i386-expand.c
> +++ b/gcc/config/i386/i386-expand.c
> @@ -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 && !TARGET_AVX512F)
> return false;
>
> /* AVX512F is needed for mask operation. */
We don't know what will AMD CPUs with AVX512* do or what will be optimal for
them, there aren't any yet. I guess this is fine for now, so would be your
previous && GET_MODE_SIZE (mode) == 16.
Jakub