OSDN Git Service

gcc/testsuite/
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 15 Oct 2007 20:27:24 +0000 (20:27 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 15 Oct 2007 20:27:24 +0000 (20:27 +0000)
* gcc.target/mips/dse-1.c: Pass the union as a second parameter
to each function.  Check that there are no unsigned loads.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@129369 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/mips/dse-1.c

index 63f57c4..791b6e1 100644 (file)
@@ -1,3 +1,8 @@
+2007-10-15  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * gcc.target/mips/dse-1.c: Pass the union as a second parameter
+       to each function.  Check that there are no unsigned loads.
+
 2007-10-15  Jakub Jelinek  <jakub@redhat.com>
 
        PR tree-optimization/33136
index a2b8445..0491265 100644 (file)
@@ -1,19 +1,19 @@
 /* { dg-mips-options "-mgp64 -O" } */
 
 #define TEST(ID, TYPE1, TYPE2)                                 \
-  union {                                                      \
+  union u##ID {                                                        \
     TYPE1 m1[sizeof (TYPE2) / sizeof (TYPE1)];                 \
     TYPE2 m2;                                                  \
-  } u##ID;                                                     \
+  };                                                           \
                                                                \
   /* The MIPS16 versions of the shifts we need are too         \
      expensive.  */                                            \
   TYPE1 __attribute__((nomips16))                              \
-  f##ID (TYPE2 x)                                              \
+  f##ID (TYPE2 x, union u##ID *u)                              \
   {                                                            \
-    u##ID.m2 = x;                                              \
-    return (u##ID.m1[0]                                                \
-           + u##ID.m1[sizeof (TYPE2) / sizeof (TYPE1) - 1]);   \
+    u->m2 = x;                                                 \
+    return (u->m1[0]                                           \
+           + u->m1[sizeof (TYPE2) / sizeof (TYPE1) - 1]);      \
   }
 
 TEST (1, unsigned int, unsigned long long);
@@ -32,5 +32,8 @@ TEST (10, signed char, int);
    (char, short) tests won't pass.  */
 
 /* { dg-final { scan-assembler-not "\tlh\t" } } */
+/* { dg-final { scan-assembler-not "\tlhu\t" } } */
 /* { dg-final { scan-assembler-not "\tlw\t" } } */
+/* { dg-final { scan-assembler-not "\tlwu\t" } } */
 /* { dg-final { scan-assembler-not "\tlb\t" } } */
+/* { dg-final { scan-assembler-not "\tlbu\t" } } */