brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.1 KiB · 76c0d2f Raw
386 lines · c
1// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fsyntax-only \2// RUN:  -target-feature +f16c -target-feature +avx -target-feature +sse4a \3// RUN:  -target-feature +aes -target-feature +xop -target-feature +avx2 \4// RUN:  -target-feature +tbm -verify %s5 6// Error test cases where a variable is passed to intrinsics but an7// immediate operand is required.8 9// Don't include mm_malloc.h, it's system specific.10#define __MM_MALLOC_H11 12#include <x86intrin.h>13 14unsigned short check__cvtss_sh(float val, const int I) {15  return _cvtss_sh(val, I); // expected-error {{argument to '__builtin_ia32_vcvtps2ph' must be a constant integer}}16}17 18__m128i check__mm_cvtps_ph(__m128 val, const int I) {19  return _mm_cvtps_ph(val, I); // expected-error {{argument to '__builtin_ia32_vcvtps2ph' must be a constant integer}}20}21 22__m128i check__mm256_cvtps_ph(__m256 val, const int I) {23  return _mm256_cvtps_ph(val, I); // expected-error  {{argument to '__builtin_ia32_vcvtps2ph256' must be a constant integer}}24}25 26void check__mm_slli_si128(__m128i a, const int count) {27  _mm_slli_si128(a, count); // expected-error {{argument to '__builtin_ia32_pslldqi128_byteshift' must be a constant integer}}28}29 30void check__mm_srli_si128(__m128i a, const int count) {31  _mm_srli_si128(a, count); // expected-error {{argument to '__builtin_ia32_psrldqi128_byteshift' must be a constant integer}}32}33 34void check__mm_shuffle_epi32(__m128i  a, const int imm) {35  _mm_shuffle_epi32(a, imm); // expected-error {{argument to '__builtin_ia32_pshufd' must be a constant integer}}36}37 38void check__mm_shufflelo_epi16(__m128i a, const int imm) {39  _mm_shufflelo_epi16(a, imm); // expected-error {{argument to '__builtin_ia32_pshuflw' must be a constant integer}}40}41 42void check__mm_shufflehi_epi16(__m128i a, const int imm) {43  _mm_shufflehi_epi16(a, imm); // expected-error {{argument to '__builtin_ia32_pshufhw' must be a constant integer}}44}45 46void check__mm_shuffle_pd(__m128d a, __m128d b, const int i) {47  _mm_shuffle_pd(a, b, i); // expected-error {{argument to '__builtin_ia32_shufpd' must be a constant integer}}48}49 50void check__mm256_round_pd(__m256d a, const int b) {51  _mm256_round_pd(a, b); // expected-error {{argument to '__builtin_ia32_roundpd256' must be a constant integer}}52}53 54void check__mm256_round_ps(__m256 a, const int b) {55  _mm256_round_ps(a, b); // expected-error {{argument to '__builtin_ia32_roundps256' must be a constant integer}}56}57 58void check__mm_permute_pd(__m128d a, const int b) {59  _mm_permute_pd(a, b); // expected-error {{argument to '__builtin_ia32_vpermilpd' must be a constant integer}}60}61 62void check__mm256_permute_pd(__m256d a, const int b) {63  _mm256_permute_pd(a, b); // expected-error {{argument to '__builtin_ia32_vpermilpd256' must be a constant integer}}64}65 66void check__mm_permute_ps(__m128 a, const int b) {67  _mm_permute_ps(a, b); // expected-error {{argument to '__builtin_ia32_vpermilps' must be a constant integer}}68}69 70void check__mm256_permute_ps(__m256 a, const int b) {71  _mm256_permute_ps(a, b); // expected-error {{argument to '__builtin_ia32_vpermilps256' must be a constant integer}}72}73 74void check__mm256_permute2f128_pd(__m256d v1, __m256d v2, const char m) {75  _mm256_permute2f128_pd(v1, v2, m); // expected-error {{argument to '__builtin_ia32_vperm2f128_pd256' must be a constant integer}}76}77 78void check__mm256_permute2f128_ps(__m256 v1, __m256 v2, const char m) {79  _mm256_permute2f128_ps(v1, v2, m); // expected-error {{argument to '__builtin_ia32_vperm2f128_ps256' must be a constant integer}}80}81 82void check__mm256_permute2f128_si256(__m256i v1, __m256i v2, const char m) {83  _mm256_permute2f128_si256(v1, v2, m); // expected-error {{argument to '__builtin_ia32_vperm2f128_si256' must be a constant integer}}84}85 86void check__m256_blend_pd(__m256d v1, __m256d v2, const char m) {87  _mm256_blend_pd(v1, v2, m); // expected-error {{argument to '__builtin_ia32_blendpd256' must be a constant integer}}88}89 90void check__m256_blend_ps(__m256 v1, __m256 v2, const char m) {91  _mm256_blend_ps(v1, v2, m); // expected-error {{argument to '__builtin_ia32_blendps256' must be a constant integer}}92}93 94void check__mm256_dp_ps(__m256 v1, __m256 v2, const char m) {95  _mm256_dp_ps(v1, v2, m); // expected-error {{argument to '__builtin_ia32_dpps256' must be a constant integer}}96}97 98void check__m256_shuffle_ps(__m256 a, __m256 b, const int m) {99  _mm256_shuffle_ps(a, b, m); // expected-error {{argument to '__builtin_ia32_shufps256' must be a constant integer}}100}101 102void check__m256_shuffle_pd(__m256d a, __m256d b, const int m) {103  _mm256_shuffle_pd(a, b, m); // expected-error {{argument to '__builtin_ia32_shufpd256' must be a constant integer}}104}105 106void check__mm_cmp_pd(__m128d a, __m128d b, const int c) {107  _mm_cmp_pd(a, b, c); // expected-error {{argument to '__builtin_ia32_cmppd' must be a constant integer}}108}109 110void check__mm_cmp_ps(__m128 a, __m128 b, const int c) {111  _mm_cmp_ps(a, b, c); // expected-error {{argument to '__builtin_ia32_cmpps' must be a constant integer}}112}113 114void check__mm256_cmp_pd(__m256d a, __m256d b, const int c) {115  _mm256_cmp_pd(a, b, c); // expected-error {{argument to '__builtin_ia32_cmppd256' must be a constant integer}}116}117 118void check__mm256_cmp_ps(__m256 a, __m256 b, const int c) {119  _mm256_cmp_ps(a, b, c); // expected-error {{argument to '__builtin_ia32_cmpps256' must be a constant integer}}120}121 122void check__mm_cmp_sd(__m128d a, __m128d b, const int c) {123  _mm_cmp_sd(a, b, c); // expected-error {{argument to '__builtin_ia32_cmpsd' must be a constant integer}}124}125 126void check__mm_cmp_ss(__m128 a, __m128 b, const int c) {127  _mm_cmp_ss(a, b, c); // expected-error {{argument to '__builtin_ia32_cmpss' must be a constant integer}}128}129 130void check__mm256_extractf128_pd(__m256d a, const int o) {131  _mm256_extractf128_pd(a, o); // expected-error {{argument to '__builtin_ia32_vextractf128_pd256' must be a constant integer}}132}133 134void check__mm256_extractf128_ps(__m256 a, const int o) {135  _mm256_extractf128_ps(a, o); // expected-error {{argument to '__builtin_ia32_vextractf128_ps256' must be a constant integer}}136}137 138void check__mm256_extractf128_si256(__m256i a, const int o) {139  _mm256_extractf128_si256(a, o); // expected-error {{argument to '__builtin_ia32_vextractf128_si256' must be a constant integer}}140}141 142void check__mm256_insertf128_pd(__m256d v1, __m128d v2, const int o) {143  _mm256_insertf128_pd(v1, v2, o); // expected-error {{argument to '__builtin_ia32_vinsertf128_pd256' must be a constant integer}}144}145 146void check__mm256_insertf128_ps(__m256 v1, __m128 v2, const int o) {147  _mm256_insertf128_ps(v1, v2, o); // expected-error {{argument to '__builtin_ia32_vinsertf128_ps256' must be a constant integer}}148}149 150void check__mm256_insertf128_si256(__m256i v1, __m128i v2, const int o) {151  _mm256_insertf128_si256(v1, v2, o); // expected-error {{argument to '__builtin_ia32_vinsertf128_si256' must be a constant integer}}152}153 154void check__mm_round_ps(__m128 x, const int m) {155  _mm_round_ps(x, m); // expected-error {{argument to '__builtin_ia32_roundps' must be a constant integer}}156}157 158void check__mm_round_ss(__m128 x, __m128 y, const int m) {159  _mm_round_ss(x, y, m); // expected-error {{argument to '__builtin_ia32_roundss' must be a constant integer}}160}161 162void check__mm_round_pd(__m128d x, const int m) {163  _mm_round_pd(x, m); // expected-error {{argument to '__builtin_ia32_roundpd' must be a constant integer}}164}165 166void check__mm_round_sd(__m128d x, __m128d y, const int m) {167  _mm_round_sd(x, y, m); // expected-error {{argument to '__builtin_ia32_roundsd' must be a constant integer}}168}169 170void check__mm_blend_pd(__m128d v1, __m128d v2, const int m) {171  _mm_blend_pd(v1, v2, m); // expected-error {{argument to '__builtin_ia32_blendpd' must be a constant integer}}172}173 174void check__mm_blend_ps(__m128 v1, __m128 v2, const int m) {175  _mm_blend_ps(v1, v2, m); // expected-error {{argument to '__builtin_ia32_blendps' must be a constant integer}}176}177 178void check__mm_blend_epi16(__m128i v1, __m128i v2, const int m) {179  _mm_blend_epi16(v1, v2, m); // expected-error {{argument to '__builtin_ia32_pblendw128' must be a constant integer}}180}181 182void check__mm_dp_ps(__m128 x, __m128 y, const int m) {183  _mm_dp_ps(x, y, m); // expected-error {{argument to '__builtin_ia32_dpps' must be a constant integer}}184}185 186void check__mm_dp_pd(__m128d x, __m128d y, const int m) {187  _mm_dp_pd(x, y, m); // expected-error {{argument to '__builtin_ia32_dppd' must be a constant integer}}188}189 190void check__mm_insert_ps(__m128 a, __m128 b, const int n) {191  _mm_insert_ps(a, b, n); // expected-error {{argument to '__builtin_ia32_insertps128' must be a constant integer}}192}193 194void check__mm_mpsadbw_epu8(__m128i x, __m128i y, const int m) {195  _mm_mpsadbw_epu8(x, y, m); // expected-error {{argument to '__builtin_ia32_mpsadbw128' must be a constant integer}}196}197 198void check__mm_cmpistrm(__m128 a, __m128 b, const int m) {199  _mm_cmpistrm(a, b, m); // expected-error {{argument to '__builtin_ia32_pcmpistrm128' must be a constant integer}}200}201 202void check__mm_cmpistri(__m128i a, __m128i b, const int m) {203  _mm_cmpistri(a, b, m); // expected-error {{argument to '__builtin_ia32_pcmpistri128' must be a constant integer}}204}205 206void check__mm_cmpestrm(__m128 a, int b, __m128 c, int d,  const int m) {207  _mm_cmpestrm(a, b, c, d, m); // expected-error {{argument to '__builtin_ia32_pcmpestrm128' must be a constant integer}}208}209 210void check__mm_cmpestri(__m128i a, int b, __m128i c, int d,  const int m) {211  _mm_cmpestri(a, b, c, d, m); // expected-error {{argument to '__builtin_ia32_pcmpestri128' must be a constant integer}}212}213 214void check__mm_alignr_epi8(__m128i a, __m128i b, const int n) {215  _mm_alignr_epi8(a, b, n); // expected-error {{argument to '__builtin_ia32_palignr128' must be a constant integer}}216}217 218void check__mm_alignr_pi8(__m64 a, __m64 b, const int n) {219  _mm_alignr_pi8(a, b, n); // expected-error {{argument to '__builtin_ia32_psrldqi128_byteshift' must be a constant integer}}220}221 222void check__mm_aeskeygenassist_si128(__m128 c, const int r) {223  _mm_aeskeygenassist_si128(c, r); // expected-error {{argument to '__builtin_ia32_aeskeygenassist128' must be a constant integer}}224}225 226__m64 check__mm_shuffle_pi16(__m64 a, const int n) {227  return _mm_shuffle_pi16(a, n); // expected-error {{index for __builtin_shufflevector must be a constant integer}}228}229 230void check__mm_shuffle_ps(__m128 a, __m128 b, const int m) {231  _mm_shuffle_ps(a, b, m); // expected-error {{argument to '__builtin_ia32_shufps' must be a constant integer}}232}233 234void check__mm_com_epi8(__m128 a, __m128 b, const char c) {235  _mm_com_epi8(a, b, c); // expected-error {{argument to '__builtin_ia32_vpcomb' must be a constant integer}}236}237 238void check__mm_com_epi16(__m128 a, __m128 b, const char c) {239  _mm_com_epi16(a, b, c); // expected-error {{argument to '__builtin_ia32_vpcomw' must be a constant integer}}240}241 242void check__mm_com_epi32(__m128 a, __m128 b, const char c) {243  _mm_com_epi32(a, b, c); // expected-error {{argument to '__builtin_ia32_vpcomd' must be a constant integer}}244}245 246void check__mm_com_epi64(__m128 a, __m128 b, const char c) {247  _mm_com_epi64(a, b, c); // expected-error {{argument to '__builtin_ia32_vpcomq' must be a constant integer}}248}249 250void check__mm_com_epu8(__m128 a, __m128 b, const char c) {251  _mm_com_epu8(a, b, c); // expected-error {{argument to '__builtin_ia32_vpcomub' must be a constant integer}}252}253 254void check__mm_com_epu16(__m128 a, __m128 b, const char c) {255  _mm_com_epu16(a, b, c); // expected-error {{argument to '__builtin_ia32_vpcomuw' must be a constant integer}}256}257 258void check__mm_com_epu32(__m128 a, __m128 b, const char c) {259  _mm_com_epu32(a, b, c); // expected-error {{argument to '__builtin_ia32_vpcomud' must be a constant integer}}260}261 262void check__mm_com_epu64(__m128 a, __m128 b, const char c) {263  _mm_com_epu64(a, b, c); // expected-error {{argument to '__builtin_ia32_vpcomuq' must be a constant integer}}264}265 266void check__mm_permute2_pd(__m128d a, __m128d b, __m128d c, const char d) {267  _mm_permute2_pd(a, b, c, d); // expected-error {{argument to '__builtin_ia32_vpermil2pd' must be a constant integer}}268}269 270void check__mm_permute2_ps(__m128 a, __m128 b, __m128 c, const char d) {271  _mm_permute2_ps(a, b, c, d); // expected-error {{argument to '__builtin_ia32_vpermil2ps' must be a constant integer}}272}273 274void check__mm256_permute2_pd(__m256d a, __m256d b, __m256d c, const char d) {275  _mm256_permute2_pd(a, b, c, d); // expected-error {{argument to '__builtin_ia32_vpermil2pd256' must be a constant integer}}276}277 278void check__mm256_permute2_ps(__m256 a, __m256 b, __m256 c, const char d) {279  _mm256_permute2_ps(a, b, c, d); // expected-error {{argument to '__builtin_ia32_vpermil2ps256' must be a constant integer}}280}281 282void check__mm_roti_epi8(__m128 a, const char b) {283  _mm_roti_epi8(a, b); // expected-error {{argument to '__builtin_ia32_vprotbi' must be a constant integer}}284}285 286void check__mm_roti_epi16(__m128 a, const char b) {287  _mm_roti_epi16(a, b); // expected-error {{argument to '__builtin_ia32_vprotwi' must be a constant integer}}288}289 290void check__mm_roti_epi32(__m128 a, const char b) {291  _mm_roti_epi32(a, b); // expected-error {{argument to '__builtin_ia32_vprotdi' must be a constant integer}}292}293 294void check__mm_roti_epi64(__m128 a, const char b) {295  _mm_roti_epi64(a, b); // expected-error {{argument to '__builtin_ia32_vprotqi' must be a constant integer}}296}297 298void check__mm256_mpsadbw_epu8(__m256i a, __m256i b, const int c) {299  _mm256_mpsadbw_epu8(a, b, c); // expected-error {{argument to '__builtin_ia32_mpsadbw256' must be a constant integer}}300}301 302void check__mm256_alignr_epi8(__m256i a, __m256i b, const int n) {303  _mm256_alignr_epi8(a, b, n); // expected-error {{argument to '__builtin_ia32_palignr256' must be a constant integer}}304}305 306void check__mm256_blend_epi16(__m256i a, __m256i b, const int m) {307  _mm256_blend_epi16(a, b, m); // expected-error {{argument to '__builtin_ia32_pblendw256' must be a constant integer}}308}309 310void check__mm256_slli_si256(__m256i a, const int count) {311  _mm256_slli_si256(a, count); // expected-error {{argument to '__builtin_ia32_pslldqi256_byteshift' must be a constant integer}}312}313 314void check__mm256_shuffle_epi32(__m256i  a, const int imm) {315  _mm256_shuffle_epi32(a, imm); // expected-error {{argument to '__builtin_ia32_pshufd256' must be a constant integer}}316}317 318void check__mm256_shufflehi_epi16(__m256i  a, const int imm) {319  _mm256_shufflehi_epi16(a, imm); // expected-error {{argument to '__builtin_ia32_pshufhw256' must be a constant integer}}320}321 322void check__mm256_shufflelo_epi16(__m256i  a, const int imm) {323  _mm256_shufflelo_epi16(a, imm); // expected-error {{argument to '__builtin_ia32_pshuflw256' must be a constant integer}}324}325 326void check__mm_blend_epi32(__m128i a, __m128i b, const int m) {327  _mm_blend_epi32(a, b, m); // expected-error {{argument to '__builtin_ia32_pblendd128' must be a constant integer}}328}329 330void check__mm256_blend_epi32(__m256i a, __m256i b, const int m) {331  _mm256_blend_epi32(a, b, m); // expected-error {{argument to '__builtin_ia32_pblendd256' must be a constant integer}}332}333 334void check__mm256_permute4x64_pd(__m256d v, const int m) {335  _mm256_permute4x64_pd(v, m); // expected-error {{argument to '__builtin_ia32_permdf256' must be a constant integer}}336}337 338void check__mm256_permute4x64_epi64(__m256i v, const int m) {339  _mm256_permute4x64_epi64(v, m); // expected-error {{argument to '__builtin_ia32_permdi256' must be a constant integer}}340}341 342void check__mm256_permute2x128_si256(__m256i v1, __m256i v2, const int m) {343  _mm256_permute2x128_si256(v1, v2, m); // expected-error {{argument to '__builtin_ia32_permti256' must be a constant integer}}344}345 346void check__mm256_extracti128_si256(__m256i v1, const int m) {347  _mm256_extracti128_si256(v1, m); // expected-error {{argument to '__builtin_ia32_extract128i256' must be a constant integer}}348}349 350void check__mm256_inserti128_si256(__m256i v1, __m128i v2, const int m) {351  _mm256_inserti128_si256(v1, v2, m); // expected-error {{argument to '__builtin_ia32_insert128i256' must be a constant integer}}352}353 354void check__mm256_srli_si256(__m256i a, int count) {355  _mm256_srli_si256(a, count); // expected-error {{argument to '__builtin_ia32_psrldqi256_byteshift' must be a constant integer}}356}357 358int check__bextri_u32(int a, int b) {359  return __bextri_u32(a, b); // expected-error {{argument to '__builtin_ia32_bextri_u32' must be a constant integer}}360}361 362int check__bextri_u64(long a, long b) {363  return __bextri_u64(a, b); // expected-error {{argument to '__builtin_ia32_bextri_u64' must be a constant integer}}364}365 366int check___builtin_eh_return_data_regno(int a) {367  return __builtin_eh_return_data_regno(a); // expected-error {{argument to '__builtin_eh_return_data_regno' must be a constant integer}}368}369 370void* check___builtin_frame_address(unsigned int a) {371  return __builtin_frame_address(a); // expected-error {{argument to '__builtin_frame_address' must be a constant integer}}372}373 374void* check___builtin_return_address(unsigned int a) {375  return __builtin_return_address(a); // expected-error {{argument to '__builtin_return_address' must be a constant integer}}376}377 378void check__mm_extracti_si64(__m128i a, const char len, const char id) {379    _mm_extracti_si64(a, len, id); // expected-error {{argument to '__builtin_ia32_extrqi' must be a constant integer}}380}381 382void check__insert_si64(__m128 a, __m128 b, const char len, const char id) {383    _mm_inserti_si64(a, b, len, id); // expected-error {{argument to '__builtin_ia32_insertqi' must be a constant integer}}384}385 386