aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/pr98807.c
blob: d4eac5aeb69eeb1c62831d838fdc1e3721d1454b (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
29
30
31
32
33
34
35
/* { dg-do run } */
/* { dg-require-effective-target stdint_types } */
/* { dg-options "-O2 -Wno-psabi -w" } */
/* { dg-additional-options "-mno-sse2" { target x86_64-*-* i?86-*-* } } */

#include <stdint.h>

typedef uint8_t u8;
typedef uint16_t u16;
typedef uint32_t u32;
typedef uint64_t u64;
typedef u64 __attribute__((__vector_size__ (16))) v128u64;
u16 foo0_u16_0;
v128u64 foo0_v64u32_0;
u64 foo0_u64_0;
v128u64 foo0_v128u64_2;

v128u64
foo0 (u8 u8_0, v128u64 v128u64_0)
{
  u32 u32_1 = u8_0 || (0, 0);
  foo0_v128u64_2 - u8_0;
  foo0_u16_0 |= foo0_u64_0 && u8_0 > foo0_u64_0 <= u32_1;
  v128u64 v128u64_4 = v128u64_0 >= u8_0;
  return v128u64_4 + foo0_v64u32_0;
}

int
main ()
{
  v128u64 x = foo0 (3, (v128u64) { 0, 12 });
  if (x[0] != 0) __builtin_abort();
  if (x[1] != 0xffffffffffffffff) __builtin_abort();
  return 0;
}