dse-1.c: Pass the union as a second parameter to each function.

gcc/testsuite/
	* gcc.target/mips/dse-1.c: Pass the union as a second parameter
	to each function.  Check that there are no unsigned loads.

From-SVN: r129369
This commit is contained in:
Richard Sandiford 2007-10-15 20:27:24 +00:00 committed by Richard Sandiford
parent adb417d78c
commit 6b2fe1bcaf
2 changed files with 14 additions and 6 deletions

View 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

View 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" } } */