Add MOVT testing for ARMv8-M Baseline
authorThomas Preud'homme <thomas.preudhomme@arm.com>
Mon, 22 May 2017 10:52:26 +0000 (10:52 +0000)
committerThomas Preud'homme <thopre01@gcc.gnu.org>
Mon, 22 May 2017 10:52:26 +0000 (10:52 +0000)
2017-05-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/testsuite/
    * gcc.target/arm/movsi_movt.c: New test.
    * gcc.target/arm/movdi_movt.c: New test.

From-SVN: r248326

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/movdi_movt.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/movsi_movt.c [new file with mode: 0644]

index b23bdeb..c19e471 100644 (file)
@@ -1,3 +1,8 @@
+2017-05-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * gcc.target/arm/movsi_movt.c: New test.
+       * gcc.target/arm/movdi_movt.c: New test.
+
 2017-05-22  Pierre-Marie de Rodat  <derodat@adacore.com>
 
        * gnat.dg/specs/not_null1.ads: New test.
diff --git a/gcc/testsuite/gcc.target/arm/movdi_movt.c b/gcc/testsuite/gcc.target/arm/movdi_movt.c
new file mode 100644 (file)
index 0000000..e2a28cc
--- /dev/null
@@ -0,0 +1,18 @@
+/* { dg-do compile { target { arm_cortex_m && { arm_thumb2_ok || arm_thumb1_movt_ok } } } } */
+/* { dg-options "-O2 -mslow-flash-data" } */
+
+unsigned long long
+movdi_1 (int a)
+{
+  return 0xF0F00000LLU;
+}
+
+unsigned long long
+movdi_2 (int a)
+{
+  return 0xF0F0000000000000LLU;
+}
+
+/* Accept r1 because big endian targets put the low bits in the highest
+   numbered register of a pair.  */
+/* { dg-final { scan-assembler-times "movt\tr\[01\], 61680" 2 } } */
diff --git a/gcc/testsuite/gcc.target/arm/movsi_movt.c b/gcc/testsuite/gcc.target/arm/movsi_movt.c
new file mode 100644 (file)
index 0000000..3cf46e2
--- /dev/null
@@ -0,0 +1,10 @@
+/* { dg-do compile { target { arm_cortex_m && { arm_thumb2_ok || arm_thumb1_movt_ok } } } } */
+/* { dg-options "-O2 -mslow-flash-data" } */
+
+unsigned
+movsi (void)
+{
+  return 0xF0F00000U;
+}
+
+/* { dg-final { scan-assembler-times "movt\tr0, 61680" 1 } } */