arm: Fix testcase selection for Low Overhead Loop tests [PR96375]
authorAndrea Corallo <andrea.corallo@arm.com>
Thu, 1 Oct 2020 15:16:00 +0000 (17:16 +0200)
committerAndrea Corallo <andrea.corallo@arm.com>
Thu, 1 Oct 2020 15:27:55 +0000 (17:27 +0200)
gcc/testsuite/

PR target/96375
* gcc.target/arm/lob1.c: Fix missing flag.
* gcc.target/arm/lob2.c: Likewise.
* gcc.target/arm/lob3.c: Likewise.
* gcc.target/arm/lob4.c: Likewise.
* gcc.target/arm/lob5.c: Likewise.
* gcc.target/arm/lob6.c: Likewise.
* lib/target-supports.exp
(check_effective_target_arm_v8_1_lob_ok): Return 1 only for
cortex-m targets, add '-mthumb' flag.

gcc/testsuite/gcc.target/arm/lob1.c
gcc/testsuite/gcc.target/arm/lob2.c
gcc/testsuite/gcc.target/arm/lob3.c
gcc/testsuite/gcc.target/arm/lob4.c
gcc/testsuite/gcc.target/arm/lob5.c
gcc/testsuite/gcc.target/arm/lob6.c
gcc/testsuite/lib/target-supports.exp

index b92dc551d50bc8eecd1001f924669145b88301ae..ba5c82cd55c582c96a18ad417a3041e43d843613 100644 (file)
@@ -3,7 +3,7 @@
 /* { dg-do run } */
 /* { dg-require-effective-target arm_v8_1_lob_ok } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" } } */
-/* { dg-options "-march=armv8.1-m.main -O3 --save-temps" } */
+/* { dg-options "-march=armv8.1-m.main -mthumb -O3 --save-temps" } */
 #include <stdlib.h>
 #include "lob.h"
 
index 1fe9a9d82bb921686ccac4c5ebdbd357697b441d..fdeb2686f5147cdf6113fcffd434f9c1c613780a 100644 (file)
@@ -2,7 +2,7 @@
    if a non-inlineable function call takes place inside the loop.  */
 /* { dg-do compile } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" } } */
-/* { dg-options "-march=armv8.1-m.main -O3 --save-temps" } */
+/* { dg-options "-march=armv8.1-m.main -mthumb -O3 --save-temps" } */
 #include <stdlib.h>
 #include "lob.h"
 
index 17cba007ccb63ca610f691d694cb9de31314d9dc..70314ea84b3b62776004a315da66cd948b1e7e28 100644 (file)
@@ -2,7 +2,7 @@
    if causes VFP emulation library calls to happen inside the loop.  */
 /* { dg-do compile } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" } } */
-/* { dg-options "-march=armv8.1-m.main -O3 --save-temps -mfloat-abi=soft" } */
+/* { dg-options "-march=armv8.1-m.main -mthumb -O3 --save-temps -mfloat-abi=soft" } */
 /* { dg-require-effective-target arm_softfloat } */
 #include <stdlib.h>
 #include "lob.h"
index 444a2c7b4bfd3d19b2743762ea75849c57317e08..792f352d682429cb85562d11c5674c980efd7595 100644 (file)
@@ -2,7 +2,7 @@
    if LR is modified within the loop.  */
 /* { dg-do compile } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" } } */
-/* { dg-options "-march=armv8.1-m.main -O3 --save-temps -mfloat-abi=soft" } */
+/* { dg-options "-march=armv8.1-m.main -mthumb -O3 --save-temps -mfloat-abi=soft" } */
 /* { dg-require-effective-target arm_softfloat } */
 #include <stdlib.h>
 #include "lob.h"
index c4f46e41532b0ef9fdc9726d8359397daa6769c0..1a6adf1e28e622d9baed6426fe7d59be502f07d6 100644 (file)
@@ -3,7 +3,7 @@
    therefore is not optimizable.  Outer loops are not optimized.  */
 /* { dg-do compile } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" } } */
-/* { dg-options "-march=armv8.1-m.main -O3 --save-temps" } */
+/* { dg-options "-march=armv8.1-m.main -mthumb -O3 --save-temps" } */
 #include <stdlib.h>
 #include "lob.h"
 
index 5612676946056b379e63e0f57471e57ed3f12e19..17b6124295e8ae9e1cb57e41fa43a954b3390eec 100644 (file)
@@ -3,7 +3,7 @@
 /* { dg-do run } */
 /* { dg-require-effective-target arm_v8_1_lob_ok } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" } } */
-/* { dg-options "-march=armv8.1-m.main -O3 --save-temps" } */
+/* { dg-options "-march=armv8.1-m.main -mthumb -O3 --save-temps" } */
 #include <stdlib.h>
 #include "lob.h"
 
index 2fb59e8759a7fb80d2938e1604b602a2fa20f277..38af6784de84d7da97f607e8bda197481a6d4e3d 100644 (file)
@@ -10380,7 +10380,7 @@ proc check_effective_target_arm_v8_3a_bkey_directive { } {
 # Overhead Loop, 0 otherwise.  The test is valid for ARM.
 
 proc check_effective_target_arm_v8_1_lob_ok { } {
-    if { ![istarget arm*-*-*] } {
+    if { ![check_effective_target_arm_cortex_m] } {
         return 0;
     } else {
        return [check_runtime arm_v8_1_lob_hw_available {
@@ -10394,7 +10394,7 @@ proc check_effective_target_arm_v8_1_lob_ok { } {
                  asm goto ("le lr, %l0" : : : "lr" : loop);
                  return i != 10;
                }
-       } "-march=armv8.1-m.main" ]
+       } "-march=armv8.1-m.main -mthumb" ]
     }
 }