Commit 6b2fe1bc by Richard Sandiford Committed by Richard Sandiford

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
parent adb417d7
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> 2007-10-15 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/33136 PR tree-optimization/33136
/* { dg-mips-options "-mgp64 -O" } */ /* { dg-mips-options "-mgp64 -O" } */
#define TEST(ID, TYPE1, TYPE2) \ #define TEST(ID, TYPE1, TYPE2) \
union { \ union u##ID { \
TYPE1 m1[sizeof (TYPE2) / sizeof (TYPE1)]; \ TYPE1 m1[sizeof (TYPE2) / sizeof (TYPE1)]; \
TYPE2 m2; \ TYPE2 m2; \
} u##ID; \ }; \
\ \
/* The MIPS16 versions of the shifts we need are too \ /* The MIPS16 versions of the shifts we need are too \
expensive. */ \ expensive. */ \
TYPE1 __attribute__((nomips16)) \ TYPE1 __attribute__((nomips16)) \
f##ID (TYPE2 x) \ f##ID (TYPE2 x, union u##ID *u) \
{ \ { \
u##ID.m2 = x; \ u->m2 = x; \
return (u##ID.m1[0] \ return (u->m1[0] \
+ u##ID.m1[sizeof (TYPE2) / sizeof (TYPE1) - 1]); \ + u->m1[sizeof (TYPE2) / sizeof (TYPE1) - 1]); \
} }
TEST (1, unsigned int, unsigned long long); TEST (1, unsigned int, unsigned long long);
...@@ -32,5 +32,8 @@ TEST (10, signed char, int); ...@@ -32,5 +32,8 @@ TEST (10, signed char, int);
(char, short) tests won't pass. */ (char, short) tests won't pass. */
/* { dg-final { scan-assembler-not "\tlh\t" } } */ /* { 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 "\tlw\t" } } */
/* { dg-final { scan-assembler-not "\tlwu\t" } } */
/* { dg-final { scan-assembler-not "\tlb\t" } } */ /* { dg-final { scan-assembler-not "\tlb\t" } } */
/* { dg-final { scan-assembler-not "\tlbu\t" } } */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment