Home | History | Annotate | Download | only in Sema
      1 // RUN: %clang_cc1 -triple=x86_64-apple-darwin -fsyntax-only -verify %s
      2 
      3 typedef long long __m128i __attribute__((__vector_size__(16)));
      4 typedef float __m128 __attribute__((__vector_size__(16)));
      5 typedef double __m128d __attribute__((__vector_size__(16)));
      6 
      7 typedef float __m512 __attribute__((__vector_size__(64)));
      8 typedef double __m512d __attribute__((__vector_size__(64)));
      9 
     10 typedef unsigned char __mmask8;
     11 typedef unsigned short __mmask16;
     12 
     13 __m128 test__builtin_ia32_cmpps(__m128 __a, __m128 __b) {
     14   __builtin_ia32_cmpps(__a, __b, 32); // expected-error {{argument should be a value from 0 to 31}}
     15 }
     16 
     17 __m128d test__builtin_ia32_cmppd(__m128d __a, __m128d __b) {
     18   __builtin_ia32_cmppd(__a, __b, 32); // expected-error {{argument should be a value from 0 to 31}}
     19 }
     20 
     21 __m128 test__builtin_ia32_cmpss(__m128 __a, __m128 __b) {
     22   __builtin_ia32_cmpss(__a, __b, 32); // expected-error {{argument should be a value from 0 to 31}}
     23 }
     24 
     25 __m128d test__builtin_ia32_cmpsd(__m128d __a, __m128d __b) {
     26   __builtin_ia32_cmpsd(__a, __b, 32); // expected-error {{argument should be a value from 0 to 31}}
     27 }
     28 
     29 __mmask16 test__builtin_ia32_cmpps512_mask(__m512d __a, __m512d __b) {
     30   __builtin_ia32_cmpps512_mask(__a, __b, 32, -1, 0); // expected-error {{argument should be a value from 0 to 31}}
     31 }
     32 
     33 __mmask8 test__builtin_ia32_cmppd512_mask(__m512d __a, __m512d __b) {
     34   __builtin_ia32_cmppd512_mask(__a, __b, 32, -1, 0); // expected-error {{argument should be a value from 0 to 31}}
     35 }
     36 
     37 __m128i test__builtin_ia32_vpcomub(__m128i __a, __m128i __b) {
     38   __builtin_ia32_vpcomub(__a, __b, 8); // expected-error {{argument should be a value from 0 to 7}}
     39 }
     40 
     41 __m128i test__builtin_ia32_vpcomuw(__m128i __a, __m128i __b) {
     42   __builtin_ia32_vpcomuw(__a, __b, 8); // expected-error {{argument should be a value from 0 to 7}}
     43 }
     44 
     45 __m128i test__builtin_ia32_vpcomud(__m128i __a, __m128i __b) {
     46   __builtin_ia32_vpcomud(__a, __b, 8); // expected-error {{argument should be a value from 0 to 7}}
     47 }
     48 
     49 __m128i test__builtin_ia32_vpcomuq(__m128i __a, __m128i __b) {
     50   __builtin_ia32_vpcomuq(__a, __b, 8); // expected-error {{argument should be a value from 0 to 7}}
     51 }
     52 
     53 __m128i test__builtin_ia32_vpcomb(__m128i __a, __m128i __b) {
     54   __builtin_ia32_vpcomub(__a, __b, 8); // expected-error {{argument should be a value from 0 to 7}}
     55 }
     56 
     57 __m128i test__builtin_ia32_vpcomw(__m128i __a, __m128i __b) {
     58   __builtin_ia32_vpcomuw(__a, __b, 8); // expected-error {{argument should be a value from 0 to 7}}
     59 }
     60 
     61 __m128i test__builtin_ia32_vpcomd(__m128i __a, __m128i __b) {
     62   __builtin_ia32_vpcomud(__a, __b, 8); // expected-error {{argument should be a value from 0 to 7}}
     63 }
     64 
     65 __m128i test__builtin_ia32_vpcomq(__m128i __a, __m128i __b) {
     66   __builtin_ia32_vpcomuq(__a, __b, 8); // expected-error {{argument should be a value from 0 to 7}}
     67 }
     68