summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/mpx/pr79770.c
blob: 0890fcc7bf14ec0528e89d1ba4859c6159bcd680 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* { dg-do compile { target lp64 } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -mabi=ms -Wno-psabi" } */

typedef unsigned U __attribute__ ((vector_size (64)));
typedef unsigned __int128 V __attribute__ ((vector_size (64)));

static inline V
bar (U u, U x, V v)
{
  v = (V)(U) { 0, ~0 };
  v[x[0]] <<= u[-63];
  return v;
}

V
foo (U u)
{
  return bar (u, (U) {}, (V) {});
}