blob: 472deeb9210ba0a78b949ecfb0c42dcd38f4f9b8 [file] [log] [blame]
Craig Topperdd84ec52014-12-27 07:00:08 +00001// RUN: %clang_cc1 -triple=x86_64-apple-darwin -fsyntax-only -verify %s
2
Craig Topper8dd7d0d2015-02-13 06:04:48 +00003typedef long long __m128i __attribute__((__vector_size__(16)));
Craig Topperdd84ec52014-12-27 07:00:08 +00004typedef float __m128 __attribute__((__vector_size__(16)));
5typedef double __m128d __attribute__((__vector_size__(16)));
6
Craig Topper91926432018-01-11 01:38:02 +00007typedef long long __m256i __attribute__((__vector_size__(32)));
8typedef float __m256 __attribute__((__vector_size__(32)));
9typedef double __m256d __attribute__((__vector_size__(32)));
10
Craig Topperdf5beb22017-03-13 17:16:50 +000011typedef long long __m512i __attribute__((__vector_size__(64)));
Craig Toppera3306ca2015-01-19 01:18:22 +000012typedef float __m512 __attribute__((__vector_size__(64)));
13typedef double __m512d __attribute__((__vector_size__(64)));
14
15typedef unsigned char __mmask8;
16typedef unsigned short __mmask16;
Craig Topper91926432018-01-11 01:38:02 +000017typedef unsigned int __mmask32;
Craig Toppera3306ca2015-01-19 01:18:22 +000018
Craig Topperdd84ec52014-12-27 07:00:08 +000019__m128 test__builtin_ia32_cmpps(__m128 __a, __m128 __b) {
20 __builtin_ia32_cmpps(__a, __b, 32); // expected-error {{argument should be a value from 0 to 31}}
21}
22
23__m128d test__builtin_ia32_cmppd(__m128d __a, __m128d __b) {
24 __builtin_ia32_cmppd(__a, __b, 32); // expected-error {{argument should be a value from 0 to 31}}
25}
26
27__m128 test__builtin_ia32_cmpss(__m128 __a, __m128 __b) {
28 __builtin_ia32_cmpss(__a, __b, 32); // expected-error {{argument should be a value from 0 to 31}}
29}
30
31__m128d test__builtin_ia32_cmpsd(__m128d __a, __m128d __b) {
32 __builtin_ia32_cmpsd(__a, __b, 32); // expected-error {{argument should be a value from 0 to 31}}
33}
Craig Toppera3306ca2015-01-19 01:18:22 +000034
35__mmask16 test__builtin_ia32_cmpps512_mask(__m512d __a, __m512d __b) {
Craig Topper5fbabd72016-09-22 06:13:33 +000036 __builtin_ia32_cmpps512_mask(__a, __b, 32, -1, 4); // expected-error {{argument should be a value from 0 to 31}}
Craig Toppera3306ca2015-01-19 01:18:22 +000037}
38
39__mmask8 test__builtin_ia32_cmppd512_mask(__m512d __a, __m512d __b) {
Craig Topper5fbabd72016-09-22 06:13:33 +000040 __builtin_ia32_cmppd512_mask(__a, __b, 32, -1, 4); // expected-error {{argument should be a value from 0 to 31}}
Craig Toppera3306ca2015-01-19 01:18:22 +000041}
Craig Topper8dd7d0d2015-02-13 06:04:48 +000042
43__m128i test__builtin_ia32_vpcomub(__m128i __a, __m128i __b) {
44 __builtin_ia32_vpcomub(__a, __b, 8); // expected-error {{argument should be a value from 0 to 7}}
45}
46
47__m128i test__builtin_ia32_vpcomuw(__m128i __a, __m128i __b) {
48 __builtin_ia32_vpcomuw(__a, __b, 8); // expected-error {{argument should be a value from 0 to 7}}
49}
50
51__m128i test__builtin_ia32_vpcomud(__m128i __a, __m128i __b) {
52 __builtin_ia32_vpcomud(__a, __b, 8); // expected-error {{argument should be a value from 0 to 7}}
53}
54
55__m128i test__builtin_ia32_vpcomuq(__m128i __a, __m128i __b) {
56 __builtin_ia32_vpcomuq(__a, __b, 8); // expected-error {{argument should be a value from 0 to 7}}
57}
58
59__m128i test__builtin_ia32_vpcomb(__m128i __a, __m128i __b) {
60 __builtin_ia32_vpcomub(__a, __b, 8); // expected-error {{argument should be a value from 0 to 7}}
61}
62
63__m128i test__builtin_ia32_vpcomw(__m128i __a, __m128i __b) {
64 __builtin_ia32_vpcomuw(__a, __b, 8); // expected-error {{argument should be a value from 0 to 7}}
65}
66
67__m128i test__builtin_ia32_vpcomd(__m128i __a, __m128i __b) {
68 __builtin_ia32_vpcomud(__a, __b, 8); // expected-error {{argument should be a value from 0 to 7}}
69}
70
71__m128i test__builtin_ia32_vpcomq(__m128i __a, __m128i __b) {
72 __builtin_ia32_vpcomuq(__a, __b, 8); // expected-error {{argument should be a value from 0 to 7}}
73}
Craig Toppera7e253e2016-09-23 04:48:31 +000074
75__mmask16 test__builtin_ia32_cmpps512_mask_rounding(__m512 __a, __m512 __b, __mmask16 __u) {
76 __builtin_ia32_cmpps512_mask(__a, __b, 0, __u, 0); // expected-error {{invalid rounding argument}}
77}
Craig Topperdf5beb22017-03-13 17:16:50 +000078
79__m128i test_mm_mask_i32gather_epi32(__m128i a, int const *b, __m128i c, __m128i mask) {
80 return __builtin_ia32_gatherd_d(a, b, c, mask, 5); // expected-error {{scale argument must be 1, 2, 4, or 8}}
81}
82
83__m512i _mm512_mask_prefetch_i32gather_ps(__m512i index, __mmask16 mask, int const *addr) {
84 return __builtin_ia32_gatherpfdps(mask, index, addr, 5, 1); // expected-error {{scale argument must be 1, 2, 4, or 8}}
85}
86
87__m512 _mm512_mask_prefetch_i32gather_ps_2(__m512i index, __mmask16 mask, int const *addr) {
Craig Topperf771f79b2017-03-31 17:22:30 +000088 return __builtin_ia32_gatherpfdps(mask, index, addr, 1, 1); // expected-error {{argument should be a value from 2 to 3}}
Craig Topperdf5beb22017-03-13 17:16:50 +000089}
90
Craig Topper91926432018-01-11 01:38:02 +000091__m512i test_mm512_mask_shldi_epi64(__m512i __S, __mmask8 __U, __m512i __A, __m512i __B) {
92 return __builtin_ia32_vpshldq512_mask(__A, __B, 1024, __S, __U); // expected-error {{argument should be a value from 0 to 255}}
93}
94
95__m512i test_mm512_mask_shldi_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B) {
96 return __builtin_ia32_vpshldd512_mask(__A, __B, 1024, __S, __U); // expected-error {{argument should be a value from 0 to 255}}
97}
98
99__m512i test_mm512_mask_shldi_epi16(__m512i __S, __mmask32 __U, __m512i __A, __m512i __B) {
100 return __builtin_ia32_vpshldw512_mask(__A, __B, 1024, __S, __U); // expected-error {{argument should be a value from 0 to 255}}
101}
102
103__m512i test_mm512_mask_shrdi_epi64(__m512i __S, __mmask8 __U, __m512i __A, __m512i __B) {
104 return __builtin_ia32_vpshrdq512_mask(__A, __B, 1024, __S, __U); // expected-error {{argument should be a value from 0 to 255}}
105}
106
107__m512i test_mm512_mask_shrdi_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B) {
108 return __builtin_ia32_vpshrdd512_mask(__A, __B, 1024, __S, __U); // expected-error {{argument should be a value from 0 to 255}}
109}
110
111__m512i test_mm512_mask_shrdi_epi16(__m512i __S, __mmask32 __U, __m512i __A, __m512i __B) {
112 return __builtin_ia32_vpshrdw512_mask(__A, __B, 1024, __S, __U); // expected-error {{argument should be a value from 0 to 255}}
113}
114
115__m256i test_mm256_mask_shldi_epi64(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) {
116 return __builtin_ia32_vpshldq256_mask(__A, __B, 1024, __S, __U); // expected-error {{argument should be a value from 0 to 255}}
117}
118
119__m128i test_mm128_mask_shldi_epi64(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) {
120 return __builtin_ia32_vpshldq128_mask(__A, __B, 1024, __S, __U); // expected-error {{argument should be a value from 0 to 255}}
121}
122
123__m256i test_mm256_mask_shldi_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) {
124 return __builtin_ia32_vpshldd256_mask(__A, __B, 1024, __S, __U); // expected-error {{argument should be a value from 0 to 255}}
125}
126
127__m128i test_mm128_mask_shldi_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) {
128 return __builtin_ia32_vpshldd128_mask(__A, __B, 1024, __S, __U); // expected-error {{argument should be a value from 0 to 255}}
129}
130
131__m256i test_mm256_mask_shldi_epi16(__m256i __S, __mmask16 __U, __m256i __A, __m256i __B) {
132 return __builtin_ia32_vpshldw256_mask(__A, __B, 1024, __S, __U); // expected-error {{argument should be a value from 0 to 255}}
133}
134
135__m128i test_mm128_mask_shldi_epi16(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) {
136 return __builtin_ia32_vpshldw128_mask(__A, __B, 1024, __S, __U); // expected-error {{argument should be a value from 0 to 255}}
137}
138
139__m256i test_mm256_mask_shrdi_epi64(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) {
140 return __builtin_ia32_vpshrdq256_mask(__A, __B, 1024, __S, __U); // expected-error {{argument should be a value from 0 to 255}}
141}
142
143__m128i test_mm128_mask_shrdi_epi64(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) {
144 return __builtin_ia32_vpshrdq128_mask(__A, __B, 1024, __S, __U); // expected-error {{argument should be a value from 0 to 255}}
145}
146
147__m256i test_mm256_mask_shrdi_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) {
148 return __builtin_ia32_vpshrdd256_mask(__A, __B, 1024, __S, __U); // expected-error {{argument should be a value from 0 to 255}}
149}
150
151__m128i test_mm128_mask_shrdi_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) {
152 return __builtin_ia32_vpshrdd128_mask(__A, __B, 1024, __S, __U); // expected-error {{argument should be a value from 0 to 255}}
153}
154
155__m256i test_mm256_mask_shrdi_epi16(__m256i __S, __mmask16 __U, __m256i __A, __m256i __B) {
156 return __builtin_ia32_vpshrdw256_mask(__A, __B, 1024, __S, __U); // expected-error {{argument should be a value from 0 to 255}}
157}
158
159__m128i test_mm128_mask_shrdi_epi16(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) {
160 return __builtin_ia32_vpshrdw128_mask(__A, __B, 1024, __S, __U); // expected-error {{argument should be a value from 0 to 255}}
161}