aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/pr100701.c
blob: 3132d66929d43f4660c0084284a9a308f9ca0b87 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* PR target/100701 */
/* { dg-do run { target { ! ia32 } } } */
/* { dg-options "-O0 -fschedule-insns2 -msse2" } */

typedef unsigned char __attribute__((__vector_size__ (8))) V;
typedef unsigned int __attribute__((__vector_size__ (8))) U;

U u;
unsigned x;
unsigned char y;

V
foo (V a, __int128 i)
{
  V b = a;
  a &= y;
  if (i == 0)
    __builtin_abort ();
  U c = (x != y / i) <= u;
  return (V) c + a + b;
}

int
main (void)
{
  (void)foo ((V) { }, 4);
  return 0;
}