From: James Lemke Date: Tue, 16 Dec 2003 22:38:58 +0000 (+0000) Subject: xscale testcases from James Lemke X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6d43c524dd8eb5db820457d828749406c66d1f0a;p=gcc.git xscale testcases from James Lemke xscale testcases from James Lemke * gcc.dg/arm-scd42-[123].c: New tests. From-SVN: r74712 --- 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\[ ].*" } } */