mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-14 14:33:40 +08:00
re PR target/78451 (FAIL: gcc.target/i386/sse-22a.c: error: inlining failed in call to always_inline '_mm512_setzero_ps')
PR target/78451 * c-pragma.c (handle_pragma_target): Don't replace current_target_pragma, but chainon the new args to the current one. * gcc.target/i386/pr78451.c: New test. * gcc.target/i386/pr69255-1.c: Use #pragma GCC push_options and #pragma GCC pop_options around the first #pragma GCC target. * gcc.target/i386/pr69255-2.c: Likewise. * gcc.target/i386/pr69255-3.c: Likewise. From-SVN: r242740
This commit is contained in:
parent
43fd192f76
commit
ec1c569473
@ -1,3 +1,9 @@
|
||||
2016-11-23 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/78451
|
||||
* c-pragma.c (handle_pragma_target): Don't replace
|
||||
current_target_pragma, but chainon the new args to the current one.
|
||||
|
||||
2016-11-22 Nathan Sidwell <nathan@acm.org>
|
||||
|
||||
* array-notation-common.c (cilkplus_extract_an_trplets): Fix
|
||||
|
@ -893,7 +893,7 @@ handle_pragma_target(cpp_reader *ARG_UNUSED(dummy))
|
||||
args = nreverse (args);
|
||||
|
||||
if (targetm.target_option.pragma_parse (args, NULL_TREE))
|
||||
current_target_pragma = args;
|
||||
current_target_pragma = chainon (current_target_pragma, args);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,12 @@
|
||||
2016-11-23 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/78451
|
||||
* gcc.target/i386/pr78451.c: New test.
|
||||
* gcc.target/i386/pr69255-1.c: Use #pragma GCC push_options
|
||||
and #pragma GCC pop_options around the first #pragma GCC target.
|
||||
* gcc.target/i386/pr69255-2.c: Likewise.
|
||||
* gcc.target/i386/pr69255-3.c: Likewise.
|
||||
|
||||
2016-11-23 Michael Collison <michael.collison@arm.com>
|
||||
|
||||
* testsuite/gcc.target/aarch64/and_const.c: New test to verify
|
||||
|
@ -2,7 +2,9 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-msse4 -mno-avx" } */
|
||||
|
||||
#pragma GCC push_options
|
||||
#pragma GCC target "avx512vl"
|
||||
#pragma GCC pop_options
|
||||
#pragma GCC target "no-avx512vl"
|
||||
__attribute__ ((__vector_size__ (32))) long long a;
|
||||
__attribute__ ((__vector_size__ (16))) int b;
|
||||
@ -13,5 +15,5 @@ foo (const long long *p)
|
||||
a = __builtin_ia32_gather3siv4di (a, p, b, 1, 1); /* { dg-error "needs isa option -m32 -mavx512vl" } */
|
||||
}
|
||||
|
||||
/* { dg-warning "AVX vector return without AVX enabled changes the ABI" "" { target *-*-* } 13 } */
|
||||
/* { dg-warning "AVX vector argument without AVX enabled changes the ABI" "" { target *-*-* } 13 } */
|
||||
/* { dg-warning "AVX vector return without AVX enabled changes the ABI" "" { target *-*-* } 15 } */
|
||||
/* { dg-warning "AVX vector argument without AVX enabled changes the ABI" "" { target *-*-* } 15 } */
|
||||
|
@ -2,7 +2,9 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-msse4 -mno-avx" } */
|
||||
|
||||
#pragma GCC push_options
|
||||
#pragma GCC target "avx512vl"
|
||||
#pragma GCC pop_options
|
||||
#pragma GCC target ""
|
||||
__attribute__ ((__vector_size__ (32))) long long a;
|
||||
__attribute__ ((__vector_size__ (16))) int b;
|
||||
@ -13,5 +15,5 @@ foo (const long long *p)
|
||||
__builtin_ia32_gather3siv4di (a, p, b, 1, 1); /* { dg-error "needs isa option -m32 -mavx512vl" } */
|
||||
}
|
||||
|
||||
/* { dg-warning "AVX vector return without AVX enabled changes the ABI" "" { target *-*-* } 13 } */
|
||||
/* { dg-warning "AVX vector argument without AVX enabled changes the ABI" "" { target *-*-* } 13 } */
|
||||
/* { dg-warning "AVX vector return without AVX enabled changes the ABI" "" { target *-*-* } 15 } */
|
||||
/* { dg-warning "AVX vector argument without AVX enabled changes the ABI" "" { target *-*-* } 15 } */
|
||||
|
@ -2,7 +2,9 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-msse4 -mno-avx" } */
|
||||
|
||||
#pragma GCC push_options
|
||||
#pragma GCC target "avx512vl"
|
||||
#pragma GCC pop_options
|
||||
#pragma GCC target ""
|
||||
__attribute__ ((__vector_size__ (32))) long long a;
|
||||
__attribute__ ((__vector_size__ (16))) int b;
|
||||
@ -13,5 +15,5 @@ foo (const long long *p, __attribute__ ((__vector_size__ (32))) long long *q)
|
||||
*q = __builtin_ia32_gather3siv4di (a, p, b, 1, 1); /* { dg-error "needs isa option -m32 -mavx512vl" } */
|
||||
}
|
||||
|
||||
/* { dg-warning "AVX vector return without AVX enabled changes the ABI" "" { target *-*-* } 13 } */
|
||||
/* { dg-warning "AVX vector argument without AVX enabled changes the ABI" "" { target *-*-* } 13 } */
|
||||
/* { dg-warning "AVX vector return without AVX enabled changes the ABI" "" { target *-*-* } 15 } */
|
||||
/* { dg-warning "AVX vector argument without AVX enabled changes the ABI" "" { target *-*-* } 15 } */
|
||||
|
35
gcc/testsuite/gcc.target/i386/pr78451.c
Normal file
35
gcc/testsuite/gcc.target/i386/pr78451.c
Normal file
@ -0,0 +1,35 @@
|
||||
/* PR target/78451 */
|
||||
/* { dg-options "-O2 -mno-avx512f" } */
|
||||
|
||||
#pragma GCC push_options
|
||||
#pragma GCC target ("avx512bw")
|
||||
|
||||
static inline int __attribute__ ((__always_inline__))
|
||||
bar (void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#pragma GCC push_options
|
||||
#pragma GCC target ("avx512vl")
|
||||
|
||||
int
|
||||
foo (void)
|
||||
{
|
||||
return bar ();
|
||||
}
|
||||
|
||||
#pragma GCC pop_options
|
||||
#pragma GCC pop_options
|
||||
|
||||
#pragma GCC push_options
|
||||
#pragma GCC target ("avx512vl")
|
||||
#pragma GCC target ("avx512bw")
|
||||
|
||||
int
|
||||
baz (void)
|
||||
{
|
||||
return bar ();
|
||||
}
|
||||
|
||||
#pragma GCC pop_options
|
Loading…
Reference in New Issue
Block a user