* config/i386/avx512fintrin.h (_mm512_set_epi16, _mm512_set_epi8,
[official-gcc.git] / gcc / testsuite / gcc.target / aarch64 / pr70120-1.c
blob31a5e949b117f227191a388f2757a257ec09331a
1 /* { dg-do compile } */
2 /* { dg-options "-Og -fschedule-insns -mno-pc-relative-literal-loads -g" } */
4 typedef short v32u16 __attribute__ ((vector_size (32)));
5 typedef int v32u32 __attribute__ ((vector_size (32)));
6 typedef long v32u64 __attribute__ ((vector_size (32)));
7 typedef __int128 u128;
8 typedef __int128 v32u128 __attribute__ ((vector_size (32)));
10 int
11 foo(int u16_0, int u32_0, int u64_0, u128 u128_0, int u16_1, int u32_1, int 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)
13 v32u32_1 ^= (v32u32) ~ v32u64_0;
14 v32u32_1 %= (v32u32) - v32u16_1 | 1;
15 v32u16_1 -= (v32u16) v32u16_1;
16 v32u64_0 *= (v32u64){~ u128_0, v32u16_1[5], v32u16_0[15], v32u32_1[4]};
17 v32u16_0 /= (v32u16){0x574c, ~u128_1, v32u128_1[0], u64_1, v32u64_0[1], v32u64_1[2], 0, 0x8ce6, u128_1, 0x5e69} |1;
18 return v32u16_0[0] + v32u16_0[6] + v32u16_0[8] + v32u16_0[9] + v32u32_0[0] + v32u32_0[1] + v32u32_0[2] + v32u32_0[3] + v32u32_0[4] + v32u32_0[6] + v32u64_0[0] + v32u64_0[2] + v32u64_0[3] + v32u128_0[0] + v32u128_0[1] + v32u32_1[0] + v32u32_1[2] + v32u64_1[2] + v32u64_1[3] + v32u128_1[1];