1  /* { dg-options "(-mips16) -mgp64 -EB" } */
       2  
       3  typedef unsigned uint128_t __attribute__((mode(TI)));
       4  
       5  extern uint128_t g[16];
       6  extern unsigned char gstuff[0x10000];
       7  
       8  NOMIPS16 uint128_t
       9  foo (uint128_t i1, uint128_t i2, uint128_t i3, uint128_t i4,
      10       uint128_t *x, unsigned char *lstuff)
      11  {
      12    g[0] = i1;
      13    g[1] = i2;
      14    g[2] = i3;
      15    g[3] = i4;
      16    x[0] = x[4];
      17    x[1] = 0;
      18    x[2] = ((uint128_t) 0x123456789abcdefULL << 64) | 0xaabbccddeeff1122ULL;
      19    x[3] = g[4];
      20    x[4] = *(uint128_t *) (lstuff + 0x7fff);
      21    return *(uint128_t *) (gstuff + 0x7fff);
      22  }
      23  
      24  MIPS16 uint128_t
      25  bar (uint128_t i1, uint128_t i2, uint128_t i3, uint128_t i4,
      26       uint128_t *x, unsigned char *lstuff)
      27  {
      28    g[0] = i1;
      29    g[1] = i2;
      30    g[2] = i3;
      31    g[3] = i4;
      32    x[0] = x[4];
      33    x[1] = 0;
      34    x[2] = ((uint128_t) 0x123456789abcdefULL << 64) | 0xaabbccddeeff1122ULL;
      35    x[3] = g[4];
      36    x[4] = *(uint128_t *) (lstuff + 0x7fff);
      37    return *(uint128_t *) (gstuff + 0x7fff);
      38  }