From 6d43c524dd8eb5db820457d828749406c66d1f0a Mon Sep 17 00:00:00 2001 From: James Lemke Date: Tue, 16 Dec 2003 22:38:58 +0000 Subject: [PATCH] xscale testcases from James Lemke xscale testcases from James Lemke * gcc.dg/arm-scd42-[123].c: New tests. From-SVN: r74712 --- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gcc.dg/arm-scd42-1.c | 15 +++++++++++++++ gcc/testsuite/gcc.dg/arm-scd42-2.c | 17 +++++++++++++++++ gcc/testsuite/gcc.dg/arm-scd42-3.c | 15 +++++++++++++++ 4 files changed, 51 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/arm-scd42-1.c create mode 100644 gcc/testsuite/gcc.dg/arm-scd42-2.c create mode 100644 gcc/testsuite/gcc.dg/arm-scd42-3.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a2d9eaf2047..3bb7afc4605 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2003-12-16 James Lemke + + * gcc.dg/arm-scd42-[123].c: New tests. + 2003-12-16 Nathan Sidwell PR c++/9043 diff --git a/gcc/testsuite/gcc.dg/arm-scd42-1.c b/gcc/testsuite/gcc.dg/arm-scd42-1.c new file mode 100644 index 00000000000..70b34de2d12 --- /dev/null +++ b/gcc/testsuite/gcc.dg/arm-scd42-1.c @@ -0,0 +1,15 @@ +/* Verify that mov is preferred on XScale for loading a 1 byte constant. */ +/* { dg-do compile { target xscale-*-* } } */ +/* { dg-options "-mcpu=xscale -O" } */ + +unsigned load1(void) __attribute__ ((naked)); +unsigned load1(void) +{ + /* Best code would be: + mov r0, =17 + mov pc, lr */ + + return 17; +} + +/* { dg-final { scan-assembler "mov\[ ].*17" } } */ diff --git a/gcc/testsuite/gcc.dg/arm-scd42-2.c b/gcc/testsuite/gcc.dg/arm-scd42-2.c new file mode 100644 index 00000000000..75e72747e29 --- /dev/null +++ b/gcc/testsuite/gcc.dg/arm-scd42-2.c @@ -0,0 +1,17 @@ +/* Verify that mov is preferred on XScale for loading a 2 byte constant. */ +/* { dg-do compile { target xscale-*-* } } */ +/* { dg-options "-mcpu=xscale -O" } */ + +unsigned load2(void) __attribute__ ((naked)); +unsigned load2(void) +{ + /* Best code would be: + mov r0, =272 + add r0, r0, =1 + mov pc, lr */ + + return 273; +} + +/* We want to suppress running for -mthumb but not for -mthumb-interwork. */ +/* { dg-final { global compiler_flags; if ![string match "*-mthumb *" $compiler_flags] { scan-assembler "mov\[ ].*272" } } } */ diff --git a/gcc/testsuite/gcc.dg/arm-scd42-3.c b/gcc/testsuite/gcc.dg/arm-scd42-3.c new file mode 100644 index 00000000000..80a4ba8dbf1 --- /dev/null +++ b/gcc/testsuite/gcc.dg/arm-scd42-3.c @@ -0,0 +1,15 @@ +/* Verify that ldr is preferred on XScale for loading a 3 or 4 byte constant. */ +/* { dg-do compile { target xscale-*-* } } */ +/* { dg-options "-mcpu=xscale -O" } */ + +unsigned load4(void) __attribute__ ((naked)); +unsigned load4(void) +{ + /* Best code would be: + ldr r0, =65809 + mov pc, lr */ + + return 65809; +} + +/* { dg-final { scan-assembler "ldr\[ ].*" } } */ -- 2.30.2