diff mbox

Commit: Try harder to run ARM neon testcases

Message ID 8737u0qqv9.fsf@redhat.com
State New
Headers show

Commit Message

Nick Clifton Jan. 14, 2016, 12:37 p.m. UTC
Hi Guys

  Whilst checking PR 69194 I noticed that the new testcase
  (gcc.target/arm/pr69194.c) was not being run with a Linux hosted
  toolchain configured as --target=arm-eabi.  Investigating further I
  found that the check_effective_target_arm_neon_ok_nocache proc in
  target_supports.exp was returning false because the default ARM
  architecture was v4 not v7.

  So I am applying the patch below which adds a command line option
  sequence involving -march=armv7-a to the list of combinations to try
  in check_effective_target_arm_neon_ok_nocache.  Whilst checking this
  part of the patch I found several ARM tests that check for arm_neon_ok
  but then do not use the option sequence discovered, so I have updated
  those as well.

  The result - the number of unsupported tests drops by 48 and the
  number of passes increases by 115 for each ARM multilib tested.  Plus
  there are no regressions or new, unexpected failures.

Cheers
  Nick

gcc/testsuite/ChangeLog
2016-01-14  Nick Clifton  <nickc@redhat.com>

	* lib/target-supports.exp
	(check_effective_target_arm_neon_ok_nocache): Add an option
	sequence that includes setting the ARM architecture to ARMv7-A.
	* gcc.target/arm/attr-neon.c: Use dg-add-options to add the
	command line options necessary to enable Neon support.
	* gcc.target/arm/neon-vlshr-imm-1.c: Likewise.
	* gcc.target/arm/neon-vshl-imm-1.c: Likewise.
	* gcc.target/arm/neon-vshr-imm-1.c: Likewise.
	* gcc.target/arm/pr69180.c: Likewise.

Comments

Christian Bruel Jan. 14, 2016, 12:47 p.m. UTC | #1
On 01/14/2016 01:37 PM, Nick Clifton wrote:
> Hi Guys
>
>    Whilst checking PR 69194 I noticed that the new testcase
>    (gcc.target/arm/pr69194.c) was not being run with a Linux hosted
>    toolchain configured as --target=arm-eabi.  Investigating further I
>    found that the check_effective_target_arm_neon_ok_nocache proc in
>    target_supports.exp was returning false because the default ARM
>    architecture was v4 not v7.
>
>    So I am applying the patch below which adds a command line option
>    sequence involving -march=armv7-a to the list of combinations to try
>    in check_effective_target_arm_neon_ok_nocache.  Whilst checking this
>    part of the patch I found several ARM tests that check for arm_neon_ok
>    but then do not use the option sequence discovered, so I have updated
>    those as well.

good step. indeed it looks like that many tests are sometimes 
conservatively unsupported

>    The result - the number of unsupported tests drops by 48 and the
>    number of passes increases by 115 for each ARM multilib tested.  Plus
>    there are no regressions or new, unexpected failures.
>
> Cheers
>    Nick
>
> gcc/testsuite/ChangeLog
> 2016-01-14  Nick Clifton  <nickc@redhat.com>
>
> 	* lib/target-supports.exp
> 	(check_effective_target_arm_neon_ok_nocache): Add an option
> 	sequence that includes setting the ARM architecture to ARMv7-A.
> 	* gcc.target/arm/attr-neon.c: Use dg-add-options to add the
> 	command line options necessary to enable Neon support.

is this last one needed ? the __attribute__ ((target("fpu=neon"))) is 
here to test without -mfpu=neon. So we are losing something here.

thanks


> 	* gcc.target/arm/neon-vlshr-imm-1.c: Likewise.
> 	* gcc.target/arm/neon-vshl-imm-1.c: Likewise.
> 	* gcc.target/arm/neon-vshr-imm-1.c: Likewise.
> 	* gcc.target/arm/pr69180.c: Likewise.
>
diff mbox

Patch

Index: gcc/testsuite/gcc.target/arm/attr-neon.c
===================================================================
--- gcc/testsuite/gcc.target/arm/attr-neon.c	(revision 232361)
+++ gcc/testsuite/gcc.target/arm/attr-neon.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do compile } */
 /* { dg-require-effective-target arm_neon_ok } */
-/* { dg-options "-O2 -mfloat-abi=softfp -ftree-vectorize" } */
+/* { dg-options "-O2 -ftree-vectorize" } */
+/* { dg-add-options arm_neon } */
 
 /* Verify that neon instructions are emitted once.  */
 void __attribute__ ((target("fpu=neon")))
Index: gcc/testsuite/gcc.target/arm/neon-vlshr-imm-1.c
===================================================================
--- gcc/testsuite/gcc.target/arm/neon-vlshr-imm-1.c	(revision 232361)
+++ gcc/testsuite/gcc.target/arm/neon-vlshr-imm-1.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do compile } */
 /* { dg-require-effective-target arm_neon_ok } */
-/* { dg-options "-O2 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize" } */
+/* { dg-options "-O2 -ftree-vectorize" } */
+/* { dg-add-options arm_neon } */
 /* { dg-final { scan-assembler "vshr\.u32.*#3" } } */
 
 /* Verify that VSHR immediate is used.  */
Index: gcc/testsuite/gcc.target/arm/neon-vshl-imm-1.c
===================================================================
--- gcc/testsuite/gcc.target/arm/neon-vshl-imm-1.c	(revision 232361)
+++ gcc/testsuite/gcc.target/arm/neon-vshl-imm-1.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do compile } */
 /* { dg-require-effective-target arm_neon_ok } */
-/* { dg-options "-O2 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize" } */
+/* { dg-options "-O2 -ftree-vectorize" } */
+/* { dg-add-options arm_neon } */
 /* { dg-final { scan-assembler "vshl\.i32.*#3" } } */
 
 /* Verify that VSHR immediate is used.  */
Index: gcc/testsuite/gcc.target/arm/neon-vshr-imm-1.c
===================================================================
--- gcc/testsuite/gcc.target/arm/neon-vshr-imm-1.c	(revision 232361)
+++ gcc/testsuite/gcc.target/arm/neon-vshr-imm-1.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do compile } */
 /* { dg-require-effective-target arm_neon_ok } */
-/* { dg-options "-O2 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize" } */
+/* { dg-options "-O2 -ftree-vectorize" } */
+/* { dg-add-options arm_neon } */
 /* { dg-final { scan-assembler "vshr\.s32.*#3" } } */
 
 /* Verify that VSHR immediate is used.  */
Index: gcc/testsuite/gcc.target/arm/pr69180.c
===================================================================
--- gcc/testsuite/gcc.target/arm/pr69180.c	(revision 232361)
+++ gcc/testsuite/gcc.target/arm/pr69180.c	(working copy)
@@ -3,8 +3,8 @@ 
    #pragma GCC target.  */
 /* { dg-do compile } */
 /* { dg-require-effective-target arm_neon_ok } */
-/* { dg-options "-mfloat-abi=softfp -mfpu=neon" } */
-
+/* { dg-options " " } */ /* Necessary to  prevent the harness from adding -ansi -pedantic-errors to the command line.  */
+/* { dg-add-options arm_neon } */
 #pragma GCC target ("fpu=neon-fp-armv8")
 
 #define __ARM_NEON_FP 0
Index: gcc/testsuite/lib/target-supports.exp
===================================================================
--- gcc/testsuite/lib/target-supports.exp	(revision 232361)
+++ gcc/testsuite/lib/target-supports.exp	(working copy)
@@ -2888,7 +2888,7 @@ 
     global et_arm_neon_flags
     set et_arm_neon_flags ""
     if { [check_effective_target_arm32] } {
-	foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon" "-mfpu=neon -mfloat-abi=softfp"} {
+	foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon" "-mfpu=neon -mfloat-abi=softfp" "-mfpu=neon -mfloat-abi=softfp -march=armv7-a"} {
 	    if { [check_no_compiler_messages_nocache arm_neon_ok object {
 		int dummy;
 		#ifndef __ARM_NEON__