Fix multiple target clones nodes (PR lto/66295).
2017-03-14 Martin Liska <mliska@suse.cz> PR lto/66295 * multiple_target.c (expand_target_clones): Drop local.local flag for default implementation. 2017-03-14 Martin Liska <mliska@suse.cz> PR lto/66295 * gcc.dg/tree-prof/pr66295.c: New test. From-SVN: r246119
This commit is contained in:
parent
e3e8f22f78
commit
861d9d5e6a
|
@ -1,3 +1,9 @@
|
|||
2017-03-14 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR lto/66295
|
||||
* multiple_target.c (expand_target_clones): Drop local.local
|
||||
flag for default implementation.
|
||||
|
||||
2017-03-14 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/80030
|
||||
|
|
|
@ -327,6 +327,7 @@ expand_target_clones (struct cgraph_node *node, bool definition)
|
|||
tree attributes = make_attribute ("target", "default",
|
||||
DECL_ATTRIBUTES (node->decl));
|
||||
DECL_ATTRIBUTES (node->decl) = attributes;
|
||||
node->local.local = false;
|
||||
location_t saved_loc = input_location;
|
||||
input_location = DECL_SOURCE_LOCATION (node->decl);
|
||||
bool ret
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2017-03-14 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR lto/66295
|
||||
* gcc.dg/tree-prof/pr66295.c: New test.
|
||||
|
||||
2017-03-13 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR middle-end/78339
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
/* { dg-require-ifunc "" } */
|
||||
/* { dg-options "-O2" } */
|
||||
|
||||
static double bar (double *__restrict, double *__restrict, int)
|
||||
__attribute__ ((target_clones("avx,avx2,avx512f,default")));
|
||||
|
||||
double
|
||||
foo (double *__restrict a, double *__restrict b, int n)
|
||||
{
|
||||
return bar (a,b,n);
|
||||
}
|
||||
|
||||
double
|
||||
bar (double *__restrict a, double *__restrict b, int n) /* { dg-error "attribute\[^\n\r]*foo\[^\n\r]* is unknown" } */
|
||||
{
|
||||
double s;
|
||||
int i;
|
||||
s = 0.0;
|
||||
for (i=0; i<n; i++)
|
||||
s += a[i] + b[i];
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
#define N 5
|
||||
|
||||
int main ()
|
||||
{
|
||||
double a[N] = {1.2f, 1.2f, 1.2f, 1.2f, 1.2f };
|
||||
double b[N] = {1.2f, 1.2f, 1.2f, 1.2f, 1.2f };
|
||||
|
||||
__builtin_printf ("value: %.5f\n", foo (a, b, N));
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue