aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/arm
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.target/arm')
-rw-r--r--gcc/testsuite/gcc.target/arm/mve/mve.exp3
-rw-r--r--gcc/testsuite/gcc.target/arm/short-vfp-1.c46
2 files changed, 41 insertions, 8 deletions
diff --git a/gcc/testsuite/gcc.target/arm/mve/mve.exp b/gcc/testsuite/gcc.target/arm/mve/mve.exp
index a5d8511..9dc56c9 100644
--- a/gcc/testsuite/gcc.target/arm/mve/mve.exp
+++ b/gcc/testsuite/gcc.target/arm/mve/mve.exp
@@ -35,6 +35,7 @@ global dg_runtest_extra_prunes
set dg_runtest_extra_prunes ""
lappend dg_runtest_extra_prunes "warning: switch '-m(cpu|arch)=.*' conflicts with switch '-m(cpu|arch)=.*'"
+set saved-dg-do-what-default ${dg-do-what-default}
set dg-do-what-default "assemble"
# Initialize `dg'.
@@ -53,6 +54,8 @@ dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/general-c/*.\[cCS\]]] \
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \
"" $DEFAULT_CFLAGS
+set dg-do-what-default ${saved-dg-do-what-default}
+
# All done.
set dg_runtest_extra_prunes ""
dg-finish
diff --git a/gcc/testsuite/gcc.target/arm/short-vfp-1.c b/gcc/testsuite/gcc.target/arm/short-vfp-1.c
index f6866c4..418fc27 100644
--- a/gcc/testsuite/gcc.target/arm/short-vfp-1.c
+++ b/gcc/testsuite/gcc.target/arm/short-vfp-1.c
@@ -1,45 +1,75 @@
/* { dg-do compile } */
-/* { dg-require-effective-target arm_vfp_ok } */
-/* { dg-add-options arm_vfp } */
+/* { dg-require-effective-target arm_arch_v7a_fp_hard_ok } */
+/* { dg-options "-O2" } */
+/* { dg-add-options arm_arch_v7a_fp_hard } */
+/* { dg-final { check-function-bodies "**" "" } } */
+/*
+** test_sisf:
+** vcvt.s32.f32 (s[0-9]+), s0
+** vmov r0, \1 @ int
+** bx lr
+*/
int
test_sisf (float x)
{
return (int)x;
}
+/*
+** test_hisf:
+** vcvt.s32.f32 (s[0-9]+), s0
+** vmov (r[0-9]+), \1 @ int
+** sxth r0, \2
+** bx lr
+*/
short
test_hisf (float x)
{
return (short)x;
}
+/*
+** test_sfsi:
+** vmov (s[0-9]+), r0 @ int
+** vcvt.f32.s32 s0, \1
+** bx lr
+*/
float
test_sfsi (int x)
{
return (float)x;
}
+/*
+** test_sfhi:
+** vmov (s[0-9]+), r0 @ int
+** vcvt.f32.s32 s0, \1
+** bx lr
+*/
float
test_sfhi (short x)
{
return (float)x;
}
+/*
+** test_hisi:
+** sxth r0, r0
+** bx lr
+*/
short
test_hisi (int x)
{
return (short)x;
}
+/*
+** test_sihi:
+** bx lr
+*/
int
test_sihi (short x)
{
return (int)x;
}
-
-/* { dg-final { scan-assembler-times {vcvt\.s32\.f32\ts[0-9]+, s[0-9]+} 2 } } */
-/* { dg-final { scan-assembler-times {vcvt\.f32\.s32\ts[0-9]+, s[0-9]+} 2 } } */
-/* { dg-final { scan-assembler-times {vmov\tr[0-9]+, s[0-9]+} 2 } } */
-/* { dg-final { scan-assembler-times {vmov\ts[0-9]+, r[0-9]+} 2 } } */
-/* { dg-final { scan-assembler-times {sxth\tr[0-9]+, r[0-9]+} 2 } } */