i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): Add support for AVX512F clones...
* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): Add support for AVX512F clones, include them by default for exported OpenMP declare simd functions. For AVX2 allow simdlen 32 and use it if charasteric type is 8-bit, for AVX512F allow simdlen up to 128. * lib/target-supports.exp (check_effective_target_vect_simd_clones): Check for avx512f effective targets instead of avx2. * gcc.dg/gomp/declare-simd-1.c: Add scan-assembler-times directives for AVX512F clones. * gcc.dg/gomp/declare-simd-3.c: Likewise. * g++.dg/gomp/declare-simd-1.C: Likewise. * g++.dg/gomp/declare-simd-3.C: Likewise. * g++.dg/gomp/declare-simd-4.C: Likewise. From-SVN: r234780
This commit is contained in:
parent
ec35ea455c
commit
3866f8dd85
@ -1,5 +1,11 @@
|
||||
2016-04-06 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
|
||||
Add support for AVX512F clones, include them by default for
|
||||
exported OpenMP declare simd functions. For AVX2 allow simdlen 32
|
||||
and use it if charasteric type is 8-bit, for AVX512F allow simdlen
|
||||
up to 128.
|
||||
|
||||
PR middle-end/70550
|
||||
* tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
|
||||
* gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
|
||||
|
@ -53761,7 +53761,7 @@ ix86_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node,
|
||||
|
||||
if (clonei->simdlen
|
||||
&& (clonei->simdlen < 2
|
||||
|| clonei->simdlen > 16
|
||||
|| clonei->simdlen > 128
|
||||
|| (clonei->simdlen & (clonei->simdlen - 1)) != 0))
|
||||
{
|
||||
warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
|
||||
@ -53819,7 +53819,9 @@ ix86_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node,
|
||||
{
|
||||
/* If the function isn't exported, we can pick up just one ISA
|
||||
for the clones. */
|
||||
if (TARGET_AVX2)
|
||||
if (TARGET_AVX512F)
|
||||
clonei->vecsize_mangle = 'e';
|
||||
else if (TARGET_AVX2)
|
||||
clonei->vecsize_mangle = 'd';
|
||||
else if (TARGET_AVX)
|
||||
clonei->vecsize_mangle = 'c';
|
||||
@ -53829,8 +53831,8 @@ ix86_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node,
|
||||
}
|
||||
else
|
||||
{
|
||||
clonei->vecsize_mangle = "bcd"[num];
|
||||
ret = 3;
|
||||
clonei->vecsize_mangle = "bcde"[num];
|
||||
ret = 4;
|
||||
}
|
||||
switch (clonei->vecsize_mangle)
|
||||
{
|
||||
@ -53846,6 +53848,10 @@ ix86_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node,
|
||||
clonei->vecsize_int = 256;
|
||||
clonei->vecsize_float = 256;
|
||||
break;
|
||||
case 'e':
|
||||
clonei->vecsize_int = 512;
|
||||
clonei->vecsize_float = 512;
|
||||
break;
|
||||
}
|
||||
if (clonei->simdlen == 0)
|
||||
{
|
||||
@ -53854,9 +53860,24 @@ ix86_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node,
|
||||
else
|
||||
clonei->simdlen = clonei->vecsize_float;
|
||||
clonei->simdlen /= GET_MODE_BITSIZE (TYPE_MODE (base_type));
|
||||
if (clonei->simdlen > 16)
|
||||
clonei->simdlen = 16;
|
||||
}
|
||||
else if (clonei->simdlen > 16)
|
||||
switch (clonei->vecsize_int)
|
||||
{
|
||||
case 512:
|
||||
/* For AVX512-F, support VLEN up to 128. */
|
||||
break;
|
||||
case 256:
|
||||
/* For AVX2, support VLEN up to 32. */
|
||||
if (clonei->simdlen <= 32)
|
||||
break;
|
||||
/* FALLTHRU */
|
||||
default:
|
||||
/* Otherwise, support VLEN up to 16. */
|
||||
warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
|
||||
"unsupported simdlen %d", clonei->simdlen);
|
||||
return 0;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -53881,6 +53902,10 @@ ix86_simd_clone_adjust (struct cgraph_node *node)
|
||||
if (!TARGET_AVX2)
|
||||
str = "avx2";
|
||||
break;
|
||||
case 'e':
|
||||
if (!TARGET_AVX512F)
|
||||
str = "avx512f";
|
||||
break;
|
||||
default:
|
||||
gcc_unreachable ();
|
||||
}
|
||||
@ -53920,6 +53945,10 @@ ix86_simd_clone_usable (struct cgraph_node *node)
|
||||
if (!TARGET_AVX2)
|
||||
return -1;
|
||||
return 0;
|
||||
case 'e':
|
||||
if (!TARGET_AVX512F)
|
||||
return -1;
|
||||
return 0;
|
||||
default:
|
||||
gcc_unreachable ();
|
||||
}
|
||||
|
@ -1,5 +1,14 @@
|
||||
2016-04-06 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* lib/target-supports.exp (check_effective_target_vect_simd_clones):
|
||||
Check for avx512f effective targets instead of avx2.
|
||||
* gcc.dg/gomp/declare-simd-1.c: Add scan-assembler-times directives
|
||||
for AVX512F clones.
|
||||
* gcc.dg/gomp/declare-simd-3.c: Likewise.
|
||||
* g++.dg/gomp/declare-simd-1.C: Likewise.
|
||||
* g++.dg/gomp/declare-simd-3.C: Likewise.
|
||||
* g++.dg/gomp/declare-simd-4.C: Likewise.
|
||||
|
||||
PR middle-end/70550
|
||||
* c-c++-common/gomp/pr70550-1.c: New test.
|
||||
* c-c++-common/gomp/pr70550-2.c: New test.
|
||||
|
@ -20,6 +20,8 @@ int f2 (int a, int *b, int c)
|
||||
// { dg-final { scan-assembler-times "_ZGVcN8uva32l4__Z2f2iPii:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdM8uva32l4__Z2f2iPii:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdN8uva32l4__Z2f2iPii:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeM8uva32l4__Z2f2iPii:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeN8uva32l4__Z2f2iPii:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
|
||||
#pragma omp declare simd uniform (c) aligned (b : 4 * sizeof (int)) linear (a : 4) simdlen (4)
|
||||
template <typename T>
|
||||
@ -85,6 +87,8 @@ namespace N1
|
||||
// { dg-final { scan-assembler-times "_ZGVcN2va16__ZN2N12N23f10EPx:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdM2va16__ZN2N12N23f10EPx:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdN2va16__ZN2N12N23f10EPx:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeM2va16__ZN2N12N23f10EPx:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeN2va16__ZN2N12N23f10EPx:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
|
||||
struct A
|
||||
{
|
||||
@ -193,6 +197,8 @@ int B<int>::f25<7> (int a, int *b, int c)
|
||||
// { dg-final { scan-assembler-times "_ZGVcN8vuva32u__ZN1BIiE3f25ILi7EEEiiPii:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdM8vuva32u__ZN1BIiE3f25ILi7EEEiiPii:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdN8vuva32u__ZN1BIiE3f25ILi7EEEiiPii:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeM8vuva32u__ZN1BIiE3f25ILi7EEEiiPii:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeN8vuva32u__ZN1BIiE3f25ILi7EEEiiPii:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
|
||||
#pragma omp declare simd simdlen (4) aligned (b : 8 * sizeof (int)) linear (a, c : 2)
|
||||
template <>
|
||||
@ -208,6 +214,8 @@ int B<int>::f26<-1> (int a, int *b, int c)
|
||||
// { dg-final { scan-assembler-times "_ZGVcN4vl2va32__ZN1BIiE3f26ILin1EEEiiPii:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdM4vl2va32__ZN1BIiE3f26ILin1EEEiiPii:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdN4vl2va32__ZN1BIiE3f26ILin1EEEiiPii:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeM4vl2va32__ZN1BIiE3f26ILin1EEEiiPii:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeN4vl2va32__ZN1BIiE3f26ILin1EEEiiPii:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
|
||||
int
|
||||
f27 (int x)
|
||||
@ -237,6 +245,8 @@ f30 (int x)
|
||||
// { dg-final { scan-assembler-times "_ZGVcN16v__Z3f30i:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdM16v__Z3f30i:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdN16v__Z3f30i:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeM16v__Z3f30i:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeN16v__Z3f30i:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
|
||||
template <int N>
|
||||
struct C
|
||||
|
@ -19,6 +19,8 @@ int f1 (int a, int b, int c, int &d, int &e, int &f)
|
||||
// { dg-final { scan-assembler-times "_ZGVcN4vulLUR4__Z2f1iiiRiS_S_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdM8vulLUR4__Z2f1iiiRiS_S_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdN8vulLUR4__Z2f1iiiRiS_S_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeM16vulLUR4__Z2f1iiiRiS_S_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeN16vulLUR4__Z2f1iiiRiS_S_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
|
||||
#pragma omp declare simd uniform(b) linear(c, d) linear(uval(e)) linear(ref(f))
|
||||
int f2 (int a, int b, int c, int &d, int &e, int &f)
|
||||
@ -44,6 +46,8 @@ int f2 (int a, int b, int c, int &d, int &e, int &f)
|
||||
// { dg-final { scan-assembler-times "_ZGVcN4vulLUR4__Z2f2iiiRiS_S_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdM8vulLUR4__Z2f2iiiRiS_S_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdN8vulLUR4__Z2f2iiiRiS_S_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeM16vulLUR4__Z2f2iiiRiS_S_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeN16vulLUR4__Z2f2iiiRiS_S_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
|
||||
#pragma omp declare simd uniform(b) linear(c, d) linear(uval(e)) linear(ref(f))
|
||||
int f3 (const int a, const int b, const int c, const int &d, const int &e, const int &f)
|
||||
@ -57,6 +61,8 @@ int f3 (const int a, const int b, const int c, const int &d, const int &e, const
|
||||
// { dg-final { scan-assembler-times "_ZGVcN4vulLUR4__Z2f3iiiRKiS0_S0_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdM8vulLUR4__Z2f3iiiRKiS0_S0_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdN8vulLUR4__Z2f3iiiRKiS0_S0_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeM16vulLUR4__Z2f3iiiRKiS0_S0_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeN16vulLUR4__Z2f3iiiRKiS0_S0_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
|
||||
#pragma omp declare simd uniform(b) linear(c, d) linear(uval(e)) linear(ref(f))
|
||||
int f4 (const int a, const int b, const int c, const int &d, const int &e, const int &f)
|
||||
@ -76,3 +82,5 @@ int f4 (const int a, const int b, const int c, const int &d, const int &e, const
|
||||
// { dg-final { scan-assembler-times "_ZGVcN4vulLUR4__Z2f4iiiRKiS0_S0_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdM8vulLUR4__Z2f4iiiRKiS0_S0_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdN8vulLUR4__Z2f4iiiRKiS0_S0_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeM16vulLUR4__Z2f4iiiRKiS0_S0_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeN16vulLUR4__Z2f4iiiRKiS0_S0_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
|
@ -11,6 +11,8 @@ f1 (int *p, int *q, short *s)
|
||||
// { dg-final { scan-assembler-times "_ZGVcN4l4ln4ln6__Z2f1PiS_Ps:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdM8l4ln4ln6__Z2f1PiS_Ps:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdN8l4ln4ln6__Z2f1PiS_Ps:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeM16l4ln4ln6__Z2f1PiS_Ps:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeN16l4ln4ln6__Z2f1PiS_Ps:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
|
||||
#pragma omp declare simd linear(p:s) linear(q:t) uniform (s) linear(r:s) notinbranch simdlen(8) uniform(t)
|
||||
int
|
||||
@ -22,6 +24,7 @@ f2 (int *p, short *q, int s, int r, int &t)
|
||||
// { dg-final { scan-assembler-times "_ZGVbN8ls2ls4uls2u__Z2f2PiPsiiRi:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVcN8ls2ls4uls2u__Z2f2PiPsiiRi:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdN8ls2ls4uls2u__Z2f2PiPsiiRi:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeN8ls2ls4uls2u__Z2f2PiPsiiRi:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
|
||||
#pragma omp declare simd linear(ref(p):s) linear(val(q):t) uniform (s) linear(uval(r):s) notinbranch simdlen(8) uniform(t)
|
||||
int
|
||||
@ -33,3 +36,4 @@ f3 (int &p, short &q, int s, int &r, int &t)
|
||||
// { dg-final { scan-assembler-times "_ZGVbN8Rs2Ls4uUs2u__Z2f3RiRsiS_S_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVcN8Rs2Ls4uUs2u__Z2f3RiRsiS_S_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVdN8Rs2Ls4uUs2u__Z2f3RiRsiS_S_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
// { dg-final { scan-assembler-times "_ZGVeN8Rs2Ls4uUs2u__Z2f3RiRsiS_S_:" 1 { target { i?86-*-* x86_64-*-* } } } }
|
||||
|
@ -19,6 +19,8 @@ int f2 (int a, int *b, int c)
|
||||
/* { dg-final { scan-assembler-times "_ZGVcN8uva32l4_f2:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdM8uva32l4_f2:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdN8uva32l4_f2:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeM8uva32l4_f2:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeN8uva32l4_f2:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
|
||||
#pragma omp declare simd uniform (a) aligned (b : 8 * sizeof (long long)) linear (c : 4) simdlen (8)
|
||||
__extension__
|
||||
@ -53,6 +55,8 @@ f7 (int x)
|
||||
/* { dg-final { scan-assembler-times "_ZGVcN16v_f7:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdM16v_f7:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdN16v_f7:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeM16v_f7:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeN16v_f7:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
|
||||
int
|
||||
f9 (int x)
|
||||
@ -82,6 +86,8 @@ f13 (int c; int *b; int a; int a, int *b, int c)
|
||||
/* { dg-final { scan-assembler-times "_ZGVcN8uva32l4_f13:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdM8uva32l4_f13:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdN8uva32l4_f13:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeM8uva32l4_f13:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeN8uva32l4_f13:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
|
||||
#pragma omp declare simd uniform (a) aligned (b : 8 * sizeof (int)) linear (c : 4) simdlen (8)
|
||||
int
|
||||
@ -98,6 +104,8 @@ f14 (a, b, c)
|
||||
/* { dg-final { scan-assembler-times "_ZGVcN8uva32l4_f14:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdM8uva32l4_f14:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdN8uva32l4_f14:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeM8uva32l4_f14:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeN8uva32l4_f14:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
|
||||
#pragma omp declare simd uniform (a) aligned (b : 8 * sizeof (int)) linear (c : 4) simdlen (8)
|
||||
int
|
||||
@ -112,6 +120,8 @@ f15 (int a, int *b, int c)
|
||||
/* { dg-final { scan-assembler-times "_ZGVcN8uva32l4_f15:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdM8uva32l4_f15:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdN8uva32l4_f15:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeM8uva32l4_f15:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeN8uva32l4_f15:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
|
||||
#pragma omp declare simd uniform (d) aligned (e : 8 * sizeof (int)) linear (f : 4) simdlen (8)
|
||||
int f15 (int d, int *e, int f);
|
||||
@ -131,12 +141,16 @@ int f17 (int g, long *h)
|
||||
/* { dg-final { scan-assembler-times "_ZGVcN4l20va8_f17:" 1 { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdM4l20va8_f17:" 1 { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdN4l20va8_f17:" 1 { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeM4l20va8_f17:" 1 { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeN4l20va8_f17:" 1 { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVbM4l12va4_f17:" 1 { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVbN4l12va4_f17:" 1 { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVcM4l12va4_f17:" 1 { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVcN4l12va4_f17:" 1 { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdM4l12va4_f17:" 1 { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdN4l12va4_f17:" 1 { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeM4l12va4_f17:" 1 { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeN4l12va4_f17:" 1 { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
|
||||
|
||||
#pragma omp declare simd aligned (i : sizeof (*i)) linear (j : 2 * sizeof (i[0]) + sizeof (j)) simdlen (4)
|
||||
int
|
||||
@ -153,9 +167,13 @@ f18 (j, i)
|
||||
/* { dg-final { scan-assembler-times "_ZGVcN4l20va8_f18:" 1 { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdM4l20va8_f18:" 1 { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdN4l20va8_f18:" 1 { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeM4l20va8_f18:" 1 { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeN4l20va8_f18:" 1 { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVbM4l12va4_f18:" 1 { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVbN4l12va4_f18:" 1 { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVcM4l12va4_f18:" 1 { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVcN4l12va4_f18:" 1 { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdM4l12va4_f18:" 1 { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdN4l12va4_f18:" 1 { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeM4l12va4_f18:" 1 { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeN4l12va4_f18:" 1 { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
|
||||
|
@ -11,6 +11,8 @@ f1 (int *p, int *q, short *s)
|
||||
/* { dg-final { scan-assembler-times "_ZGVcN4l4ln4ln6_f1:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdM8l4ln4ln6_f1:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdN8l4ln4ln6_f1:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeM16l4ln4ln6_f1:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeN16l4ln4ln6_f1:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
|
||||
#pragma omp declare simd linear(p:s) linear(q:t) uniform (s) linear(r:s) notinbranch simdlen(8) uniform(t)
|
||||
int
|
||||
@ -22,3 +24,4 @@ f2 (int *p, short *q, int s, int r, int t)
|
||||
/* { dg-final { scan-assembler-times "_ZGVbN8ls2ls4uls2u_f2:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVcN8ls2ls4uls2u_f2:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVdN8ls2ls4uls2u_f2:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
/* { dg-final { scan-assembler-times "_ZGVeN8ls2ls4uls2u_f2:" 1 { target { i?86-*-* x86_64-*-* } } } } */
|
||||
|
@ -2603,7 +2603,7 @@ proc check_effective_target_vect_simd_clones { } {
|
||||
# avx2 clone. Only the right clone for the specified arch will be
|
||||
# chosen, but still we need to at least be able to assemble
|
||||
# avx2.
|
||||
if { [check_effective_target_avx2] } {
|
||||
if { [check_effective_target_avx512f] } {
|
||||
set et_vect_simd_clones_saved 1
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user