OSDN Git Service

* gcc.target/mips/octeon-exts-2.c: Compile it with -meb.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.target / mips / int-moves-1.c
1 /* { dg-do compile { target mips16_attribute } } */
2 /* { dg-mips-options "-mgp64 -msoft-float -O2 -EL" } */
3 /* { dg-add-options mips16_attribute } */
4
5 typedef unsigned uint128_t __attribute__((mode(TI)));
6
7 extern uint128_t g[16];
8 extern unsigned char gstuff[0x10000];
9
10 NOMIPS16 uint128_t
11 foo (uint128_t i1, uint128_t i2, uint128_t i3, uint128_t i4,
12      uint128_t *x, unsigned char *lstuff)
13 {
14   g[0] = i1;
15   g[1] = i2;
16   g[2] = i3;
17   g[3] = i4;
18   x[0] = x[4];
19   x[1] = 0;
20   x[2] = ((uint128_t) 0x123456789abcdefULL << 64) | 0xaabbccddeeff1122ULL;
21   x[3] = g[4];
22   x[4] = *(uint128_t *) (lstuff + 0x7fff);
23   return *(uint128_t *) (gstuff + 0x7fff);
24 }
25
26 MIPS16 uint128_t
27 bar (uint128_t i1, uint128_t i2, uint128_t i3, uint128_t i4,
28      uint128_t *x, unsigned char *lstuff)
29 {
30   g[0] = i1;
31   g[1] = i2;
32   g[2] = i3;
33   g[3] = i4;
34   x[0] = x[4];
35   x[1] = 0;
36   x[2] = ((uint128_t) 0x123456789abcdefULL << 64) | 0xaabbccddeeff1122ULL;
37   x[3] = g[4];
38   x[4] = *(uint128_t *) (lstuff + 0x7fff);
39   return *(uint128_t *) (gstuff + 0x7fff);
40 }