aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/pr114211.c
blob: 691dae5dbe858f971d2406a7e6664a530493e050 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* PR rtl-optimization/114211 */
/* { dg-do run { target int128 } } */
/* { dg-options "-O -fno-tree-coalesce-vars -Wno-psabi" } */

typedef unsigned __int128 V __attribute__((__vector_size__ (16)));
unsigned int u;
V v;

V
foo (unsigned __int128 h)
{
  h = h << 64 | h >> 64;
  h *= ~u;
  return h + v;
}

int
main ()
{
  V x = foo (1);
  if (x[0] != (unsigned __int128) 0xffffffff << 64)
    __builtin_abort ();
}