aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Tocar <ilya.tocar@intel.com>2014-02-26 09:08:45 +0000
committerKirill Yukhin <kyukhin@gcc.gnu.org>2014-02-26 09:08:45 +0000
commit260d3642789bc5299470745c064eea9daa1e258e (patch)
treeb6810a2e9d8d1c1a3027cbc1e1fa4e34e9a457ac
parent477145c84a2732e69c2acc140e5c626f467b63a5 (diff)
downloadgcc-260d3642789bc5299470745c064eea9daa1e258e.zip
gcc-260d3642789bc5299470745c064eea9daa1e258e.tar.gz
gcc-260d3642789bc5299470745c064eea9daa1e258e.tar.bz2
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<mode><round_name>): Remove %. (avx512f_scalef<mode><mask_name><round_name>): Ditto. (avx512f_testnm<mode>3<mask_scalar_merge_name>): 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
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/config/i386/avx512cdintrin.h34
-rw-r--r--gcc/config/i386/avx512fintrin.h34
-rw-r--r--gcc/config/i386/i386.c4
-rw-r--r--gcc/config/i386/sse.md8
-rw-r--r--gcc/testsuite/ChangeLog11
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512f-vptestnmd-1.c (renamed from gcc/testsuite/gcc.target/i386/avx512cd-vptestnmd-1.c)4
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512f-vptestnmd-2.c (renamed from gcc/testsuite/gcc.target/i386/avx512cd-vptestnmd-2.c)6
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512f-vptestnmq-1.c (renamed from gcc/testsuite/gcc.target/i386/avx512cd-vptestnmq-1.c)4
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512f-vptestnmq-2.c (renamed from gcc/testsuite/gcc.target/i386/avx512cd-vptestnmq-2.c)6
10 files changed, 73 insertions, 50 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 32b7ffd..3974f9c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,15 @@
+2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
+
+ * 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<mode><round_name>): Remove %.
+ (avx512f_scalef<mode><mask_name><round_name>): Ditto.
+ (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
+ TARGET_AVX512F from TARGET_AVX512CD.
+
2014-02-26 Richard Biener <rguenther@suse.de>
PR ipa/60327
diff --git a/gcc/config/i386/avx512cdintrin.h b/gcc/config/i386/avx512cdintrin.h
index 3935b77..a4939f7 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 65a49c5..422e83b 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 00773d8..4e6761b 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 487c917..f6de5d5 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<ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %2<round_op3>}"
+ "vscalef<ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %2<round_op3>}"
[(set_attr "prefix" "evex")
(set_attr "mode" "<ssescalarmode>")])
@@ -6577,7 +6577,7 @@
(match_operand:VF_512 2 "<round_nimm_predicate>" "<round_constraint>")]
UNSPEC_SCALEF))]
"TARGET_AVX512F"
- "%vscalef<ssemodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %2<round_mask_op3>}"
+ "vscalef<ssemodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %2<round_mask_op3>}"
[(set_attr "prefix" "evex")
(set_attr "mode" "<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<ssemodesuffix>\t{%2, %1, %0<mask_scalar_merge_operand3>|%0<mask_scalar_merge_operand3>, %1, %2}"
+ "TARGET_AVX512F"
+ "vptestnm<ssemodesuffix>\t{%2, %1, %0<mask_scalar_merge_operand3>|%0<mask_scalar_merge_operand3>, %1, %2}"
[(set_attr "prefix" "evex")
(set_attr "mode" "<sseinsnmode>")])
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 830d722..124f5c7 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,14 @@
+2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
+
+ * 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 <bin.cheng@arm.com>
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
index 39797a8..1094ee5 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
index 567e164..b2b4d0e 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
index dd68612..081a25e 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
index ff9f011..b6330d2 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"