1 /* { dg-do compile { target { dfp && { ! ia32 } } } } */
2 /* { dg-options "-O2 -mavx512bw -fno-tree-ter -Wno-div-by-zero" } */
4 typedef int __attribute__((__vector_size__ (8))) v64u8
;
5 typedef char __attribute__((__vector_size__ (16))) v128u8
;
6 typedef int __attribute__((__vector_size__ (16))) v128u32
;
7 typedef int __attribute__((__vector_size__ (32))) v256u8
;
8 typedef int __attribute__((__vector_size__ (64))) v512u8
;
9 typedef short __attribute__((__vector_size__ (4))) v32s16
;
10 typedef short __attribute__((__vector_size__ (16))) v128s16
;
11 typedef short __attribute__((__vector_size__ (32))) v256s16
;
12 typedef _Float16
__attribute__((__vector_size__ (16))) f16
;
14 typedef double __attribute__((__vector_size__ (64))) v512f64
;
15 typedef _Decimal32 d32
;
16 typedef _Decimal64
__attribute__((__vector_size__ (32))) v256d64
;
17 typedef _Decimal64
__attribute__((__vector_size__ (64))) v512d64
;
18 d32 foo0_d32_0
, foo0_ret
;
19 v256d64 foo0_v256d64_0
;
20 v128s16 foo0_v128s16_0
;
26 foo (v64u8
, v128u8 v128u8_0
, v128u8 v128s8_0
,
27 v256u8 v256u8_0
, int v256s8_0
, v512u8 v512u8_0
, int v512s8_0
,
32 int, int, __int128 v128u128_0
, __int128 v128s128_0
, v128u32 v128f64_0
)
35 v256u8 v256f32_0
, v256d64_1
= foo0_v256d64_0
== foo0_d32_0
;
39 v128u8 v128u8_1
= v128u8_0
!= 0;
42 v32s16 v32s16_1
= __builtin_shufflevector ((v128s16
) { }, v256s16_0
, 5, 10);
43 v512f64 v512f64_1
= __builtin_convertvector (v512d64_0
, v512f64
);
44 v512u8 v512d128_1
= v512s16_0
;
46 __builtin_shufflevector ((v32s16
) { }, v32s16_1
, 0, 3, 2, 1,
47 0, 0, 0, 3), v128s16_3
= foo0_v128s16_0
> 0;
49 __int128 v128s128_1
= 0 == v128s128_0
;
50 v512u8 v512u8_r
= v512u8_0
+ v512s8_0
+ (v512u8
) v512f64_1
+ v512s16_0
;
51 v256u8 v256u8_r
= ((union {
53 v256u8 b
;}) v512u8_r
).b
+
54 v256u8_0
+ v256s8_0
+ v256f32_0
+ v256d32_1
+
55 (v256u8
) v256d64_1
+ foo0_v256d128_0
;
56 v128u8 v128u8_r
= ((union {
58 v128u8 b
;}) v256u8_r
).b
+
59 v128u8_0
+ v128u8_1
+ v128s8_0
+ (v128u8
) v128s16_2
+
60 (v128u8
) v128s16_3
+ (v128u8
) v128u64_0
+ (v128u8
) v128s64_0
+
61 (v128u8
) v128u128_0
+ (v128u8
) v128s128_1
+
62 (v128u8
) v128f16_0
+ (v128u8
) v128f64_0
;
63 bar (f32_0
+ (int) foo0_d32_0
);
68 v64u8 b
;}) v128u8_r
).b
).b
;