1 /* { dg-do compile } */
2 /* { dg-options "-O1 -ffunction-sections -mno-pc-relative-literal-loads -g3" } */
4 typedef unsigned short u16
;
5 typedef unsigned short v32u16
__attribute__((vector_size(32)));
6 typedef unsigned int u32
;
7 typedef unsigned int v32u32
__attribute__((vector_size(32)));
8 typedef unsigned long long u64
;
9 typedef unsigned long long v32u64
__attribute__((vector_size(32)));
10 typedef unsigned __int128 u128
;
11 typedef unsigned __int128 v32u128
__attribute__((vector_size(32)));
12 u128
__attribute__((noinline
, noclone
))
13 foo(u16 u16_0
, u32 u32_0
, u64 u64_0
, u128 u128_0
, u16 u16_1
, u32 u32_1
, u64 u64_1
, u128 u128_1
, v32u16 v32u16_0
, v32u32 v32u32_0
, v32u64 v32u64_0
, v32u128 v32u128_0
, v32u16 v32u16_1
, v32u32 v32u32_1
, v32u64 v32u64_1
, v32u128 v32u128_1
)
15 v32u128_1
%= (v32u128
)v32u32_1
| 1;
16 u16_1
/= ((u32
)~(u128
)(((u128
)0xa1 << 0))) | 1;
17 v32u32_0
+= (v32u32
){(u16
)v32u16_1
[9], (u16
)v32u16_1
[14], (u32
)-v32u32_0
[7], ((u64
)(u32
)(((u128
)0x43bc59e9 << 0))), ((u32
)(u32
)(((u128
)0x14a47ba8f240a6 << 0))), (u128
)v32u128_1
[1], (u16
)u16_1
, (u64
)-u64_1
};
18 return u16_0
+ u32_0
+ u64_0
+ u128_0
+ u16_1
+ u32_1
+ u64_1
+ u128_1
+ v32u16_0
[0] + v32u16_0
[1] + v32u16_0
[2] + v32u16_0
[3] + v32u16_0
[4] + v32u16_0
[5] + v32u16_0
[6] + v32u16_0
[7] + v32u16_0
[8] + v32u16_0
[9] + v32u16_0
[10] + v32u16_0
[11] + v32u16_0
[12] + v32u16_0
[13] + v32u16_0
[14] + v32u16_0
[15] + v32u32_0
[0] + v32u32_0
[1] + v32u32_0
[2] + v32u32_0
[3] + v32u32_0
[4] + v32u32_0
[5] + v32u32_0
[6] + v32u32_0
[7] + v32u64_0
[0] + v32u64_0
[1] + v32u64_0
[2] + v32u64_0
[3] + v32u128_0
[0] + v32u128_0
[1] + v32u16_1
[0] + v32u16_1
[1] + v32u16_1
[2] + v32u16_1
[3] + v32u16_1
[4] + v32u16_1
[5] + v32u16_1
[6] + v32u16_1
[7] + v32u16_1
[8] + v32u16_1
[9] + v32u16_1
[10] + v32u16_1
[11] + v32u16_1
[12] + v32u16_1
[13] + v32u16_1
[14] + v32u16_1
[15] + v32u32_1
[0] + v32u32_1
[1] + v32u32_1
[2] + v32u32_1
[3] + v32u32_1
[4] + v32u32_1
[5] + v32u32_1
[6] + v32u32_1
[7] + v32u64_1
[0] + v32u64_1
[1] + v32u64_1
[2] + v32u64_1
[3] + v32u128_1
[0] + v32u128_1
[1];