[PATCH 10/10] Port testsuite to GCN

Jeff Law law@redhat.com
Wed Nov 21 01:01:00 GMT 2018


On 11/16/18 9:29 AM, Andrew Stubbs wrote:
> This collection of miscellaneous patches configures the testsuite to run on AMD
> GCN in a standalone (i.e. not offloading) configuration.  It assumes you have
> your Dejagnu set up to run binaries via the gcn-run tool.
> 
> 2018-11-16  Andrew Stubbs  <ams@codesourcery.com>
> 	    Kwok Cheung Yeung  <kcy@codesourcery.com>
> 	    Julian Brown  <julian@codesourcery.com>
> 	    Tom de Vries  <tom@codesourcery.com>
> 
> 	gcc/testsuite/
> 	* gcc.dg/20020312-2.c: Add amdgcn support.
> 	* gcc.dg/Wno-frame-address.c: Disable on amdgcn.
> 	* gcc.dg/builtin-apply2.c: Likewise.
> 	* gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise.
> 	* gcc.dg/gimplefe-28.c: Force -ffast-math.
> 	* gcc.dg/intermod-1.c: Add -mlocal-symbol-id on amdgcn.
> 	* gcc.dg/memcmp-1.c: Increase timeout factor.
> 	* gcc.dg/pr59605-2.c: Addd -DMAX_COPY=1025 on amdgcn.
> 	* gcc.dg/sibcall-10.c: xfail on amdgcn.
> 	* gcc.dg/sibcall-9.c: Likewise.
> 	* gcc.dg/tree-ssa/gen-vect-11c.c: Likewise.
> 	* gcc.dg/tree-ssa/pr84512.c: Likewise.
> 	* gcc.dg/tree-ssa/loop-1.c: Adjust expectations for amdgcn.
> 	* gfortran.dg/bind_c_array_params_2.f90: Likewise.
> 	* gcc.dg/vect/tree-vect.h: Avoid signal on amdgcn.
> 	* lib/target-supports.exp (check_effective_target_trampolines):
> 	Configure amdgcn.
> 	(check_profiling_available): Likewise.
> 	(check_effective_target_global_constructor): Likewise.
> 	(check_effective_target_return_address): Likewise.
> 	(check_effective_target_fopenacc): Likewise.
> 	(check_effective_target_fopenmp): Likewise.
> 	(check_effective_target_vect_int): Likewise.
> 	(check_effective_target_vect_intfloat_cvt): Likewise.
> 	(check_effective_target_vect_uintfloat_cvt): Likewise.
> 	(check_effective_target_vect_floatint_cvt): Likewise.
> 	(check_effective_target_vect_floatuint_cvt): Likewise.
> 	(check_effective_target_vect_simd_clones): Likewise.
> 	(check_effective_target_vect_shift): Likewise.
> 	(check_effective_target_whole_vector_shift): Likewise.
> 	(check_effective_target_vect_bswap): Likewise.
> 	(check_effective_target_vect_shift_char): Likewise.
> 	(check_effective_target_vect_long): Likewise.
> 	(check_effective_target_vect_float): Likewise.
> 	(check_effective_target_vect_double): Likewise.
> 	(check_effective_target_vect_perm): Likewise.
> 	(check_effective_target_vect_perm_byte): Likewise.
> 	(check_effective_target_vect_perm_short): Likewise.
> 	(check_effective_target_vect_widen_mult_qi_to_hi): Likewise.
> 	(check_effective_target_vect_widen_mult_hi_to_si): Likewise.
> 	(check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise.
> 	(check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise.
> 	(check_effective_target_vect_natural_alignment): Likewise.
> 	(check_effective_target_vect_fully_masked): Likewise.
> 	(check_effective_target_vect_element_align): Likewise.
> 	(check_effective_target_vect_masked_store): Likewise.
> 	(check_effective_target_vect_scatter_store): Likewise.
> 	(check_effective_target_vect_condition): Likewise.
> 	(check_effective_target_vect_cond_mixed): Likewise.
> 	(check_effective_target_vect_char_mult): Likewise.
> 	(check_effective_target_vect_short_mult): Likewise.
> 	(check_effective_target_vect_int_mult): Likewise.
> 	(check_effective_target_sqrt_insn): Likewise.
> 	(check_effective_target_vect_call_sqrtf): Likewise.
> 	(check_effective_target_vect_call_btrunc): Likewise.
> 	(check_effective_target_vect_call_btruncf): Likewise.
> 	(check_effective_target_vect_call_ceil): Likewise.
> 	(check_effective_target_vect_call_floorf): Likewise.
> 	(check_effective_target_lto): Likewise.
> 	(check_vect_support_and_set_flags): Likewise.
> 	(check_effective_target_vect_stridedN): Enable when fully masked is
> 	available.
> ---


>  
> diff --git a/gcc/testsuite/gcc.dg/gimplefe-28.c b/gcc/testsuite/gcc.dg/gimplefe-28.c
> index 467172d..57b6e1f 100644
> --- a/gcc/testsuite/gcc.dg/gimplefe-28.c
> +++ b/gcc/testsuite/gcc.dg/gimplefe-28.c
> @@ -1,5 +1,5 @@
>  /* { dg-do compile { target sqrt_insn } } */
> -/* { dg-options "-fgimple -O2" } */
> +/* { dg-options "-fgimple -O2 -ffast-math" } */
So why does the GCN need fast-math here?  I'm not aware of any other
target  that needs that kind of handling to make this test work.


> diff --git a/gcc/testsuite/gcc.dg/vect/tree-vect.h b/gcc/testsuite/gcc.dg/vect/tree-vect.h
> index 69c93ac..2ddfa5e 100644
> --- a/gcc/testsuite/gcc.dg/vect/tree-vect.h
> +++ b/gcc/testsuite/gcc.dg/vect/tree-vect.h
> @@ -1,5 +1,9 @@
>  /* Check if system supports SIMD */
> +#ifdef __AMDGCN__
> +#define signal(A,B)
> +#else
>  #include <signal.h>
> +#endif
Presumably you don't have signals.  Though one could make an argument
that this really shouldn't be exposed in the testsuite.  It kindof sets
up a need to have this kind of ifdef in any test that wants to include
signal.h.  Is there no way to create a dummy signal.h with the magic
#define in whatever fake library you're using?


The rest seems pretty reasonable.

jeff



More information about the Gcc-patches mailing list