Commit 96a995c4 by Daniel Jacobowitz Committed by Nathan Froyd

target-supports.exp (check_effective_target_powerpc_spe_nocache): New function.

	* lib/target-supports.exp (check_effective_target_powerpc_spe_nocache):
	New function.
	* gcc.target/powerpc/20030218-1.c: Skip if not powerpc_spe_nocache
	and use consistent CFLAGS.
	* gcc.target/powerpc/20030505.c: Likewise.
	* gcc.target/powerpc/20081204-1.c: Likewise.
	* gcc.target/powerpc/ppc-spe.c: Likewise.
	* gcc.target/powerpc/spe1.c: Likewise.
	* g++.dg/ext/spe1.C: Likewise.
	* g++.dg/other/opaque-1.C: Likewise.
	* g++.dg/other/opaque-2.C: Likewise.
	* g++.dg/other/opaque-3.C: Likewise.

Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
Co-Authored-By: Nathan Froyd <froydnj@codesourcery.com>

From-SVN: r143379
parent 4e2199ab
2009-01-14 Daniel Jacobowitz <dan@codesourcery.com>
Nathan Froyd <froydnj@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* lib/target-supports.exp (check_effective_target_powerpc_spe_nocache):
New function.
* gcc.target/powerpc/20030218-1.c: Skip if not powerpc_spe_nocache
and use consistent CFLAGS.
* gcc.target/powerpc/20030505.c: Likewise.
* gcc.target/powerpc/20081204-1.c: Likewise.
* gcc.target/powerpc/ppc-spe.c: Likewise.
* gcc.target/powerpc/spe1.c: Likewise.
* g++.dg/ext/spe1.C: Likewise.
* g++.dg/other/opaque-1.C: Likewise.
* g++.dg/other/opaque-2.C: Likewise.
* g++.dg/other/opaque-3.C: Likewise.
2009-01-14 Mark Mitchell <mark@codesourcery.com> 2009-01-14 Mark Mitchell <mark@codesourcery.com>
* gcc.dg/vect/vect-105.c: Prevent compiler from hoisting abort * gcc.dg/vect/vect-105.c: Prevent compiler from hoisting abort
......
/* { dg-do compile { target powerpc-*-eabi* } } */ /* { dg-do compile } */
/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single -O0" } */ /* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single -O0" } */
/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
typedef int v2si __attribute__ ((vector_size (8))); typedef int v2si __attribute__ ((vector_size (8)));
......
/* { dg-do run { target { powerpc*-*-* && powerpc_spe } } } */ /* { dg-do run } */
/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single" } */
/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
#define __vector __attribute__((vector_size(8))) #define __vector __attribute__((vector_size(8)))
typedef float __vector __ev64_fs__; typedef float __vector __ev64_fs__;
......
/* { dg-do compile { target powerpc-*-eabi* powerpc*-*-linux*spe* } } */ /* { dg-do compile } */
/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single" } */ /* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single" } */
/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
#define __vector __attribute__((vector_size(8))) #define __vector __attribute__((vector_size(8)))
typedef float __vector __ev64_fs__; typedef float __vector __ev64_fs__;
......
/* { dg-do compile { target powerpc-*-eabi* powerpc*-*-linux*spe* } } */ /* { dg-do compile } */
/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single" } */ /* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single" } */
/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
__ev64_opaque__ o; __ev64_opaque__ o;
#define v __attribute__((vector_size(8))) #define v __attribute__((vector_size(8)))
......
/* { dg-do compile { target powerpc-*-eabi* } } */ /* { dg-do compile } */
/* { dg-options "-mspe=yes -mfloat-gprs=single" } */ /* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single" } */
/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
/* Test vectors that can interconvert without a cast. */ /* Test vectors that can interconvert without a cast. */
...@@ -19,7 +20,7 @@ main (void) ...@@ -19,7 +20,7 @@ main (void)
/* Just because this is a V2SI, it doesn't make it an opaque. */ /* Just because this is a V2SI, it doesn't make it an opaque. */
vint = vshort; /* { dg-message "note: use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts" } */ vint = vshort; /* { dg-message "note: use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts" } */
/* { dg-error "incompatible types when assigning" "" { target *-*-* } 21 } */ /* { dg-error "incompatible types when assigning" "" { target *-*-* } 22 } */
return 0; return 0;
} }
/* { dg-do compile { target powerpc-*-eabi* } } */ /* { dg-do compile } */
/* { dg-options "-W -mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single" } */ /* { dg-options "-W -mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single" } */
/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
#define __vector __attribute__((vector_size(8))) #define __vector __attribute__((vector_size(8)))
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
TARGET_HARD_FLOAT && !TARGET_FPRS. */ TARGET_HARD_FLOAT && !TARGET_FPRS. */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-mcpu=750 -mfloat-gprs=single" } */ /* { dg-options "-mcpu=750 -mfloat-gprs=single" } */
/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
static int comp(const void *a,const void *b){ static int comp(const void *a,const void *b){
return (*(float *)a<*(float *)b)-(*(float *)a>*(float *)b); return (*(float *)a<*(float *)b)-(*(float *)a>*(float *)b);
} }
/* { dg-do compile { target powerpc-*-eabi* } } */ /* { dg-do compile } */
/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single -O0" } */ /* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single -O0" } */
/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
/* (Test with -O0 so we don't optimize any of them away). */ /* (Test with -O0 so we don't optimize any of them away). */
......
/* { dg-do compile { target powerpc*-*-* } } */ /* { dg-do compile } */
/* { dg-require-effective-target powerpc_spe } */ /* { dg-options "-O -mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single" } */
/* { dg-options "-O -mspe=yes" } */ /* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "evstdd" } } */ /* { dg-final { scan-assembler "evstdd" } } */
void foo(void) void foo(void)
......
/* { dg-do compile { target powerpc-*-eabi* } } */ /* { dg-do compile } */
/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single -O0" } */ /* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single -O0" } */
/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
/* (Test with -O0 so we don't optimize any of them away). */ /* (Test with -O0 so we don't optimize any of them away). */
......
...@@ -1535,6 +1535,23 @@ proc check_effective_target_powerpc_spu { } { ...@@ -1535,6 +1535,23 @@ proc check_effective_target_powerpc_spu { } {
} }
} }
# Return 1 if this is a PowerPC SPE target. The check includes options
# specified by dg-options for this test, so don't cache the result.
proc check_effective_target_powerpc_spe_nocache { } {
if { [istarget powerpc*-*-*] } {
return [check_no_compiler_messages_nocache powerpc_spe object {
#ifndef __SPE__
#error not SPE
#else
int dummy;
#endif
} [current_compiler_flags]]
} else {
return 0
}
}
# Return 1 if this is a PowerPC target with SPE enabled. # Return 1 if this is a PowerPC target with SPE enabled.
proc check_effective_target_powerpc_spe { } { proc check_effective_target_powerpc_spe { } {
......
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