Commit 8cb67fae by Segher Boessenkool

rs6000: Testsuite changes to go with the previous commit

	== The actual changelog had
	==	Backport from trunk
	==	2020-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
	== but the commit scripts refuse that

2020-06-30  Segher Boessenkool  <segher@kernel.crashing.org>

gcc/testsuite/ChangeLog:
	* gcc.target/powerpc/cpu-future.c: Something was done here.
	* gcc.target/powerpc/localentry-1.c: Something was done here.
	* gcc.target/powerpc/localentry-detect-1.c: Something was done here.
	* gcc.target/powerpc/mma-builtin-1.c: Something was done here.
	* gcc.target/powerpc/mma-builtin-2.c: Something was done here.
	* gcc.target/powerpc/mma-builtin-3.c: Something was done here.
	* gcc.target/powerpc/mma-builtin-4.c: Something was done here.
	* gcc.target/powerpc/mma-builtin-5.c: Something was done here.
	* gcc.target/powerpc/mma-builtin-6.c: Something was done here.
	* gcc.target/powerpc/notoc-direct-1.c: Something was done here.
	* gcc.target/powerpc/pcrel-sibcall-1.c: Something was done here.
	* gcc.target/powerpc/pr93122.c: Something was done here.
	* lib/target-supports.exp: Stuff.
parent 9913aa6f
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_future_ok } */
/* { dg-options "-mdejagnu-cpu=future -O2" } */
/* { dg-require-effective-target power10_ok } */
/* { dg-options "-mdejagnu-cpu=power10 -O2" } */
/* Ensure -mcpu=future compiles cleanly. */
/* Ensure -mcpu=power10 compiles cleanly. */
void x (void) { }
/* { dg-do compile } */
/* { dg-options "-mdejagnu-cpu=future -O2 -mpcrel" } */
/* { dg-options "-mdejagnu-cpu=power10 -O2 -mpcrel" } */
/* { dg-require-effective-target powerpc_elfv2 } */
/* { dg-require-effective-target powerpc_future_ok } */
/* { dg-require-effective-target power10_ok } */
/* Ensure we generate ".localentry fn,1" for both leaf and non-leaf functions.
At present, -mcpu=future does not enable pc-relative mode, so make sure we
At present, -mcpu=power10 does not enable pc-relative mode, so make sure we
enable it to be able to check for .localentry. */
extern int y (int);
......
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_elfv2 } */
/* { dg-require-effective-target powerpc_future_ok } */
/* { dg-options "-O2 -mdejagnu-cpu=future" } */
/* { dg-require-effective-target power10_ok } */
/* { dg-options "-O2 -mdejagnu-cpu=power10" } */
/* At present, -mcpu=future does not enable pc-relative mode. Enable it here
/* At present, -mcpu=power10 does not enable pc-relative mode. Enable it here
explicitly until it is turned on by default. */
#pragma GCC target ("cpu=future,pcrel")
#pragma GCC target ("cpu=power10,pcrel")
int localentry1 () { return 5; }
#pragma GCC target ("cpu=power9,no-pcrel")
......
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_future_ok } */
/* { dg-options "-Wno-psabi -mdejagnu-cpu=future -O2" } */
/* { dg-require-effective-target power10_ok } */
/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
typedef unsigned char vec_t __attribute__((vector_size(16)));
......
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_future_ok } */
/* { dg-options "-Wno-psabi -mdejagnu-cpu=future -O2" } */
/* { dg-require-effective-target power10_ok } */
/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
typedef unsigned char vec_t __attribute__((vector_size(16)));
......
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_future_ok } */
/* { dg-options "-Wno-psabi -mdejagnu-cpu=future -O2" } */
/* { dg-require-effective-target power10_ok } */
/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
void
foo0 (void)
......
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_future_ok } */
/* { dg-options "-Wno-psabi -mdejagnu-cpu=future -O2" } */
/* { dg-require-effective-target power10_ok } */
/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
typedef unsigned char vec_t __attribute__((vector_size(16)));
......
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_future_ok } */
/* { dg-options "-Wno-psabi -mdejagnu-cpu=future -O2" } */
/* { dg-require-effective-target power10_ok } */
/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
typedef unsigned char vec_t __attribute__((vector_size(16)));
......
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_future_ok } */
/* { dg-options "-Wno-psabi -mdejagnu-cpu=future -O2" } */
/* { dg-require-effective-target power10_ok } */
/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
void
foo (__vector_quad *dst)
......
/* { dg-do compile } */
/* { dg-options "-mdejagnu-cpu=future -O2 -mpcrel" } */
/* { dg-options "-mdejagnu-cpu=power10 -O2 -mpcrel" } */
/* { dg-require-effective-target powerpc_elfv2 } */
/* { dg-require-effective-target powerpc_future_ok } */
/* { dg-require-effective-target power10_ok } */
/* Test that calls generated from PC-relative code are annotated with @notoc.
At present, -mcpu=future does not enable pc-relative mode. Enable it here
At present, -mcpu=power10 does not enable pc-relative mode. Enable it here
explicitly until it is turned on by default. */
extern int yy0 (int);
......
/* { dg-do compile } */
/* { dg-options "-mdejagnu-cpu=future -O2" } */
/* { dg-options "-mdejagnu-cpu=power10 -O2" } */
/* { dg-require-effective-target powerpc_elfv2 } */
/* { dg-require-effective-target powerpc_future_ok } */
/* { dg-require-effective-target power10_ok } */
/* Test that potential sibcalls are not generated when the caller preserves the
TOC and the callee doesn't, or vice versa. At present, -mcpu=future does
TOC and the callee doesn't, or vice versa. At present, -mcpu=power10 does
not enable pc-relative mode. Enable it here explicitly until it is turned
on by default. */
#pragma GCC target ("cpu=future,pcrel")
#pragma GCC target ("cpu=power10,pcrel")
int x (void) __attribute__((noinline));
int y (void) __attribute__((noinline));
int xx (void) __attribute__((noinline));
......@@ -39,7 +39,7 @@ int xx (void)
return 1;
}
#pragma GCC target ("cpu=future,pcrel")
#pragma GCC target ("cpu=power10,pcrel")
int notoc_call (void)
{
return xx ();
......
/* PR target/93122 */
/* { dg-require-effective-target powerpc_future_ok } */
/* { dg-require-effective-target power10_ok } */
/* { dg-do compile { target lp64 } } */
/* { dg-options "-fstack-clash-protection -mprefixed -mfuture" } */
/* { dg-options "-fstack-clash-protection -mprefixed -mcpu=power10" } */
void bar (char *);
......
......@@ -2196,13 +2196,13 @@ proc check_p9modulo_hw_available { } {
}
# Return 1 if the target supports executing FUTURE instructions, 0 otherwise.
# Return 1 if the target supports executing power10 instructions, 0 otherwise.
# Cache the result. It is assumed that if a simulator does not support the
# FUTURE instructions, that it will generate an error and this test will fail.
# power10 instructions, that it will generate an error and this test will fail.
proc check_powerpc_future_hw_available { } {
return [check_cached_effective_target powerpc_future_hw_available {
check_runtime_nocache powerpc_future_hw_available {
proc check_power10_hw_available { } {
return [check_cached_effective_target power10_hw_available {
check_runtime_nocache power10_hw_available {
int main()
{
/* Set e first and use +r to check if pli actually works. */
......@@ -2210,7 +2210,7 @@ proc check_powerpc_future_hw_available { } {
asm ("pli %0,%1" : "+r" (e) : "n" (0x12345));
return (e == 0x12345);
}
} "-mfuture"
} "-mcpu=power10"
}]
}
......@@ -2652,7 +2652,7 @@ proc check_effective_target_p8 { } {
} ""]
}
# Return 1 if we're generating code for power9 and future platforms.
# Return 1 if we're generating code for power9 or later platforms.
proc check_effective_target_p9+ { } {
return [check_no_compiler_messages_nocache p9+ assembly {
......@@ -5810,19 +5810,19 @@ proc check_effective_target_has_arch_pwr9 { } {
}]
}
# Return 1 if this is a PowerPC target supporting -mfuture.
# Limit this to 64-bit linux systems for now until other
# targets support FUTURE.
# Return 1 if this is a PowerPC target supporting -mcpu=power10.
# Limit this to 64-bit linux systems for now until other targets support
# power10.
proc check_effective_target_powerpc_future_ok { } {
proc check_effective_target_power10_ok { } {
if { ([istarget powerpc64*-*-linux*]) } {
return [check_no_compiler_messages powerpc_future_ok object {
return [check_no_compiler_messages power10_ok object {
int main (void) {
long e;
asm ("pli %0,%1" : "=r" (e) : "n" (0x12345));
return e;
}
} "-mfuture"]
} "-mcpu=power10"]
} else {
return 0
}
......@@ -7769,6 +7769,7 @@ proc is-effective-target { arg } {
"named_sections" { set selected [check_named_sections_available] }
"gc_sections" { set selected [check_gc_sections_available] }
"cxa_atexit" { set selected [check_cxa_atexit_available] }
"power10_hw" { set selected [check_power10_hw_available] }
default { error "unknown effective target keyword `$arg'" }
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment