1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fno-dce -fschedule-insns -fno-tree-vrp -fcompare-debug -Wno-psabi" } */
3 /* { dg-additional-options "-mno-sse" { target i?86-*-* x86_64-*-* } } */
4 /* { dg-require-effective-target scheduling } */
6 typedef unsigned short u16
;
7 typedef short v16u16
__attribute__ ((vector_size (16)));
8 typedef unsigned v16u32
__attribute__ ((vector_size (16)));
9 typedef unsigned long long v16u64
__attribute__ ((vector_size (16)));
12 foo(u16 u16_1
, v16u16 v16u16_0
, v16u32 v16u64_0
, v16u16 v16u16_1
, v16u32 v16u32_1
, v16u64 v16u64_1
)
14 v16u64_1
/= (v16u64
){~v16u32_1
[1]};
17 v16u64_1
-= (v16u64
) v16u16_1
;
20 v16u16_1
/= (v16u16
){~u16_1
, 1 - v16u64_0
[0], 0xffb6};
21 return u16_1
+ v16u16_0
[1] + v16u16_1
[3] + v16u64_1
[0] + v16u64_1
[1];