From 260d3642789bc5299470745c064eea9daa1e258e Mon Sep 17 00:00:00 2001 From: Ilya Tocar Date: Wed, 26 Feb 2014 09:08:45 +0000 Subject: [PATCH] gcc/ * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask), (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask), (_mm512_mask_testn_epi64_mask): Move to ... * config/i386/avx512cdintrin.h: Here. * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm. * config/i386/sse.md (avx512f_vmscalef): Remove %. (avx512f_scalef): Ditto. (avx512f_testnm3): Change conditon to TARGET_AVX512F from TARGET_AVX512CD. gcc/testsuite/ * gcc.target/i386/avx512cd-vptestnmd-1.c: Change into ... * gcc.target/i386/avx512f-vptestnmd-1.c: This. * gcc.target/i386/avx512cd-vptestnmq-1.c: Change into ... * gcc.target/i386/avx512f-vptestnmq-1.c: This. * gcc.target/i386/avx512cd-vptestnmd-2.c: Change into ... * gcc.target/i386/avx512f-vptestnmd-2.c: This. * gcc.target/i386/avx512cd-vptestnmq-2.c: Change into ... * gcc.target/i386/avx512f-vptestnmq-2.c: This. From-SVN: r208168 --- gcc/ChangeLog | 12 +++++++ gcc/config/i386/avx512cdintrin.h | 34 ------------------- gcc/config/i386/avx512fintrin.h | 34 +++++++++++++++++++ gcc/config/i386/i386.c | 4 +-- gcc/config/i386/sse.md | 8 ++--- gcc/testsuite/ChangeLog | 11 ++++++ ...cd-vptestnmd-1.c => avx512f-vptestnmd-1.c} | 4 +-- ...cd-vptestnmd-2.c => avx512f-vptestnmd-2.c} | 6 ++-- ...cd-vptestnmq-1.c => avx512f-vptestnmq-1.c} | 4 +-- ...cd-vptestnmq-2.c => avx512f-vptestnmq-2.c} | 6 ++-- 10 files changed, 73 insertions(+), 50 deletions(-) rename gcc/testsuite/gcc.target/i386/{avx512cd-vptestnmd-1.c => avx512f-vptestnmd-1.c} (87%) rename gcc/testsuite/gcc.target/i386/{avx512cd-vptestnmd-2.c => avx512f-vptestnmd-2.c} (89%) rename gcc/testsuite/gcc.target/i386/{avx512cd-vptestnmq-1.c => avx512f-vptestnmq-1.c} (87%) rename gcc/testsuite/gcc.target/i386/{avx512cd-vptestnmq-2.c => avx512f-vptestnmq-2.c} (89%) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 32b7ffdaa47..3974f9c2d29 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2014-02-26 Ilya Tocar + + * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask), + (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask), + (_mm512_mask_testn_epi64_mask): Move to ... + * config/i386/avx512cdintrin.h: Here. + * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm. + * config/i386/sse.md (avx512f_vmscalef): Remove %. + (avx512f_scalef): Ditto. + (avx512f_testnm3): Change conditon to + TARGET_AVX512F from TARGET_AVX512CD. + 2014-02-26 Richard Biener PR ipa/60327 diff --git a/gcc/config/i386/avx512cdintrin.h b/gcc/config/i386/avx512cdintrin.h index 3935b773456..a4939f7acfa 100644 --- a/gcc/config/i386/avx512cdintrin.h +++ b/gcc/config/i386/avx512cdintrin.h @@ -176,40 +176,6 @@ _mm512_broadcastmw_epi32 (__mmask16 __A) return (__m512i) __builtin_ia32_broadcastmw512 (__A); } -extern __inline __mmask16 -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -_mm512_testn_epi32_mask (__m512i __A, __m512i __B) -{ - return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A, - (__v16si) __B, - (__mmask16) -1); -} - -extern __inline __mmask16 -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -_mm512_mask_testn_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B) -{ - return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A, - (__v16si) __B, __U); -} - -extern __inline __mmask8 -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -_mm512_testn_epi64_mask (__m512i __A, __m512i __B) -{ - return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A, - (__v8di) __B, - (__mmask8) -1); -} - -extern __inline __mmask8 -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -_mm512_mask_testn_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B) -{ - return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A, - (__v8di) __B, __U); -} - #ifdef __DISABLE_AVX512CD__ #undef __DISABLE_AVX512CD__ #pragma GCC pop_options diff --git a/gcc/config/i386/avx512fintrin.h b/gcc/config/i386/avx512fintrin.h index 65a49c5c1f3..422e83b46f9 100644 --- a/gcc/config/i386/avx512fintrin.h +++ b/gcc/config/i386/avx512fintrin.h @@ -7149,6 +7149,40 @@ _mm512_mask_test_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B) return (__mmask8) __builtin_ia32_ptestmq512 ((__v8di) __A, (__v8di) __B, __U); } +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_testn_epi32_mask (__m512i __A, __m512i __B) +{ + return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A, + (__v16si) __B, + (__mmask16) -1); +} + +extern __inline __mmask16 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_testn_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B) +{ + return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A, + (__v16si) __B, __U); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_testn_epi64_mask (__m512i __A, __m512i __B) +{ + return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A, + (__v8di) __B, + (__mmask8) -1); +} + +extern __inline __mmask8 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm512_mask_testn_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B) +{ + return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A, + (__v8di) __B, __U); +} + extern __inline __m512i __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) _mm512_unpackhi_epi32 (__m512i __A, __m512i __B) diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 00773d860dd..4e6761b2768 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -30065,8 +30065,8 @@ static const struct builtin_description bdesc_args[] = { OPTION_MASK_ISA_AVX512F, CODE_FOR_subv8di3_mask, "__builtin_ia32_psubq512_mask", IX86_BUILTIN_PSUBQ512, UNKNOWN, (int) V8DI_FTYPE_V8DI_V8DI_V8DI_QI }, { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_testmv16si3_mask, "__builtin_ia32_ptestmd512", IX86_BUILTIN_PTESTMD512, UNKNOWN, (int) HI_FTYPE_V16SI_V16SI_HI }, { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_testmv8di3_mask, "__builtin_ia32_ptestmq512", IX86_BUILTIN_PTESTMQ512, UNKNOWN, (int) QI_FTYPE_V8DI_V8DI_QI }, - { OPTION_MASK_ISA_AVX512CD, CODE_FOR_avx512f_testnmv16si3_mask, "__builtin_ia32_ptestnmd512", IX86_BUILTIN_PTESTNMD512, UNKNOWN, (int) HI_FTYPE_V16SI_V16SI_HI }, - { OPTION_MASK_ISA_AVX512CD, CODE_FOR_avx512f_testnmv8di3_mask, "__builtin_ia32_ptestnmq512", IX86_BUILTIN_PTESTNMQ512, UNKNOWN, (int) QI_FTYPE_V8DI_V8DI_QI }, + { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_testnmv16si3_mask, "__builtin_ia32_ptestnmd512", IX86_BUILTIN_PTESTNMD512, UNKNOWN, (int) HI_FTYPE_V16SI_V16SI_HI }, + { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_testnmv8di3_mask, "__builtin_ia32_ptestnmq512", IX86_BUILTIN_PTESTNMQ512, UNKNOWN, (int) QI_FTYPE_V8DI_V8DI_QI }, { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_interleave_highv16si_mask, "__builtin_ia32_punpckhdq512_mask", IX86_BUILTIN_PUNPCKHDQ512, UNKNOWN, (int) V16SI_FTYPE_V16SI_V16SI_V16SI_HI }, { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_interleave_highv8di_mask, "__builtin_ia32_punpckhqdq512_mask", IX86_BUILTIN_PUNPCKHQDQ512, UNKNOWN, (int) V8DI_FTYPE_V8DI_V8DI_V8DI_QI }, { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_interleave_lowv16si_mask, "__builtin_ia32_punpckldq512_mask", IX86_BUILTIN_PUNPCKLDQ512, UNKNOWN, (int) V16SI_FTYPE_V16SI_V16SI_V16SI_HI }, diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 487c9174716..f6de5d5de52 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -6566,7 +6566,7 @@ (match_dup 1) (const_int 1)))] "TARGET_AVX512F" - "%vscalef\t{%2, %1, %0|%0, %1, %2}" + "vscalef\t{%2, %1, %0|%0, %1, %2}" [(set_attr "prefix" "evex") (set_attr "mode" "")]) @@ -6577,7 +6577,7 @@ (match_operand:VF_512 2 "" "")] UNSPEC_SCALEF))] "TARGET_AVX512F" - "%vscalef\t{%2, %1, %0|%0, %1, %2}" + "vscalef\t{%2, %1, %0|%0, %1, %2}" [(set_attr "prefix" "evex") (set_attr "mode" "")]) @@ -9071,8 +9071,8 @@ [(match_operand:VI48_512 1 "register_operand" "v") (match_operand:VI48_512 2 "nonimmediate_operand" "vm")] UNSPEC_TESTNM))] - "TARGET_AVX512CD" - "%vptestnm\t{%2, %1, %0|%0, %1, %2}" + "TARGET_AVX512F" + "vptestnm\t{%2, %1, %0|%0, %1, %2}" [(set_attr "prefix" "evex") (set_attr "mode" "")]) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 830d722d154..124f5c716a0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2014-02-26 Ilya Tocar + + * gcc.target/i386/avx512cd-vptestnmd-1.c: Change into ... + * gcc.target/i386/avx512f-vptestnmd-1.c: This. + * gcc.target/i386/avx512cd-vptestnmq-1.c: Change into ... + * gcc.target/i386/avx512f-vptestnmq-1.c: This. + * gcc.target/i386/avx512cd-vptestnmd-2.c: Change into ... + * gcc.target/i386/avx512f-vptestnmd-2.c: This. + * gcc.target/i386/avx512cd-vptestnmq-2.c: Change into ... + * gcc.target/i386/avx512f-vptestnmq-2.c: This. + 2014-02-26 Bin Cheng PR target/60280 diff --git a/gcc/testsuite/gcc.target/i386/avx512cd-vptestnmd-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vptestnmd-1.c similarity index 87% rename from gcc/testsuite/gcc.target/i386/avx512cd-vptestnmd-1.c rename to gcc/testsuite/gcc.target/i386/avx512f-vptestnmd-1.c index 39797a8fca4..1094ee5b0ee 100644 --- a/gcc/testsuite/gcc.target/i386/avx512cd-vptestnmd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vptestnmd-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512cd -O2" } */ +/* { dg-options "-mavx512f -O2" } */ /* { dg-final { scan-assembler-times "vptestnmd\[ \\t\]+\[^\n\]*%zmm\[0-7\]\[^\n^k\]*k\[1-7\]\[^\{\]" 1 } } */ /* { dg-final { scan-assembler-times "vptestnmd\[ \\t\]+\[^\n\]*%zmm\[0-7\]\[^\n^k\]*k\[1-7\]\{" 1 } } */ @@ -9,7 +9,7 @@ volatile __m512i x; volatile __mmask16 m16; void extern -avx512cd_test (void) +avx512f_test (void) { m16 = _mm512_testn_epi32_mask (x, x); m16 = _mm512_mask_testn_epi32_mask (3, x, x); diff --git a/gcc/testsuite/gcc.target/i386/avx512cd-vptestnmd-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vptestnmd-2.c similarity index 89% rename from gcc/testsuite/gcc.target/i386/avx512cd-vptestnmd-2.c rename to gcc/testsuite/gcc.target/i386/avx512f-vptestnmd-2.c index 567e164044c..b2b4d0e1e67 100644 --- a/gcc/testsuite/gcc.target/i386/avx512cd-vptestnmd-2.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vptestnmd-2.c @@ -1,8 +1,8 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mavx512cd" } */ -/* { dg-require-effective-target avx512cd } */ +/* { dg-options "-O2 -mavx512f" } */ +/* { dg-require-effective-target avx512f } */ -#define AVX512CD +#define AVX512F #include "avx512f-helper.h" diff --git a/gcc/testsuite/gcc.target/i386/avx512cd-vptestnmq-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vptestnmq-1.c similarity index 87% rename from gcc/testsuite/gcc.target/i386/avx512cd-vptestnmq-1.c rename to gcc/testsuite/gcc.target/i386/avx512f-vptestnmq-1.c index dd68612ad43..081a25e1738 100644 --- a/gcc/testsuite/gcc.target/i386/avx512cd-vptestnmq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vptestnmq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512cd -O2" } */ +/* { dg-options "-mavx512f -O2" } */ /* { dg-final { scan-assembler-times "vptestnmq\[ \\t\]+\[^\n\]*%zmm\[0-7\]\[^\n^k\]*k\[1-7\]\[^\{\]" 1 } } */ /* { dg-final { scan-assembler-times "vptestnmq\[ \\t\]+\[^\n\]*%zmm\[0-7\]\[^\n^k\]*k\[1-7\]\{" 1 } } */ @@ -9,7 +9,7 @@ volatile __m512i x; volatile __mmask8 m8; void extern -avx512cd_test (void) +avx512f_test (void) { m8 = _mm512_testn_epi64_mask (x, x); m8 = _mm512_mask_testn_epi64_mask (3, x, x); diff --git a/gcc/testsuite/gcc.target/i386/avx512cd-vptestnmq-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vptestnmq-2.c similarity index 89% rename from gcc/testsuite/gcc.target/i386/avx512cd-vptestnmq-2.c rename to gcc/testsuite/gcc.target/i386/avx512f-vptestnmq-2.c index ff9f011427e..b6330d21342 100644 --- a/gcc/testsuite/gcc.target/i386/avx512cd-vptestnmq-2.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vptestnmq-2.c @@ -1,8 +1,8 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mavx512cd" } */ -/* { dg-require-effective-target avx512cd } */ +/* { dg-options "-O2 -mavx512f" } */ +/* { dg-require-effective-target avx512f } */ -#define AVX512CD +#define AVX512F #include "avx512f-helper.h" -- 2.30.2