annotate gcc/testsuite/gcc.target/i386/pr93696-2.c @ 19:2b5abeee2509 default tip

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
1 /* PR target/93696 */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
2 /* { dg-do compile } */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
3 /* { dg-options "-O2 -mavx512bitalg -mavx512vpopcntdq -mavx512vl -mavx512bw -masm=att" } */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
4 /* { dg-final { scan-assembler-times "vpopcnt\[bwdq]\t%\[xyz]mm1, %\[xyz]mm0\{%k\[0-7]\}\{z\}" 12 } } */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
5 /* { dg-final { scan-assembler-not "vmovdq\[au]\[0-9]" } } */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
6
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
7 #include <x86intrin.h>
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
8
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
9 __m128i
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
10 f1 (__m128i x, __mmask8 m, __m128i y)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
11 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
12 return _mm_maskz_popcnt_epi64 (m, y);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
13 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
14
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
15 __m128i
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
16 f2 (__m128i x, __mmask8 m, __m128i y)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
17 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
18 return _mm_maskz_popcnt_epi32 (m, y);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
19 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
20
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
21 __m128i
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
22 f3 (__m128i x, __mmask8 m, __m128i y)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
23 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
24 return _mm_maskz_popcnt_epi16 (m, y);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
25 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
26
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
27 __m128i
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
28 f4 (__m128i x, __mmask16 m, __m128i y)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
29 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
30 return _mm_maskz_popcnt_epi8 (m, y);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
31 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
32
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
33 __m256i
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
34 f5 (__m256i x, __mmask8 m, __m256i y)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
35 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
36 return _mm256_maskz_popcnt_epi64 (m, y);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
37 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
38
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
39 __m256i
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
40 f6 (__m256i x, __mmask8 m, __m256i y)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
41 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
42 return _mm256_maskz_popcnt_epi32 (m, y);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
43 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
44
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
45 __m256i
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
46 f7 (__m256i x, __mmask16 m, __m256i y)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
47 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
48 return _mm256_maskz_popcnt_epi16 (m, y);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
49 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
50
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
51 __m256i
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
52 f8 (__m256i x, __mmask32 m, __m256i y)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
53 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
54 return _mm256_maskz_popcnt_epi8 (m, y);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
55 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
56
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
57 __m512i
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
58 f9 (__m512i x, __mmask8 m, __m512i y)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
59 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
60 return _mm512_maskz_popcnt_epi64 (m, y);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
61 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
62
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
63 __m512i
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
64 f10 (__m512i x, __mmask16 m, __m512i y)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
65 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
66 return _mm512_maskz_popcnt_epi32 (m, y);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
67 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
68
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
69 __m512i
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
70 f11 (__m512i x, __mmask32 m, __m512i y)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
71 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
72 return _mm512_maskz_popcnt_epi16 (m, y);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
73 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
74
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
75 __m512i
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
76 f12 (__m512i x, __mmask64 m, __m512i y)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
77 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
78 return _mm512_maskz_popcnt_epi8 (m, y);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
79 }