forked from OSchip/llvm-project
[x86] Teach Sema to check size of comparison immediate on avx512 cmpps/cmppd buitins.
llvm-svn: 226422
This commit is contained in:
parent
f557b09f14
commit
a3306ca626
|
@ -843,7 +843,9 @@ bool Sema::CheckX86BuiltinFunctionCall(unsigned BuiltinID, CallExpr *TheCall) {
|
|||
case X86::BI__builtin_ia32_cmpps:
|
||||
case X86::BI__builtin_ia32_cmpss:
|
||||
case X86::BI__builtin_ia32_cmppd:
|
||||
case X86::BI__builtin_ia32_cmpsd: i = 2; l = 0; u = 31; break;
|
||||
case X86::BI__builtin_ia32_cmpsd:
|
||||
case X86::BI__builtin_ia32_cmpps512_mask:
|
||||
case X86::BI__builtin_ia32_cmppd512_mask: i = 2; l = 0; u = 31; break;
|
||||
}
|
||||
return SemaBuiltinConstantArgRange(TheCall, i, l, u);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,12 @@
|
|||
typedef float __m128 __attribute__((__vector_size__(16)));
|
||||
typedef double __m128d __attribute__((__vector_size__(16)));
|
||||
|
||||
typedef float __m512 __attribute__((__vector_size__(64)));
|
||||
typedef double __m512d __attribute__((__vector_size__(64)));
|
||||
|
||||
typedef unsigned char __mmask8;
|
||||
typedef unsigned short __mmask16;
|
||||
|
||||
__m128 test__builtin_ia32_cmpps(__m128 __a, __m128 __b) {
|
||||
__builtin_ia32_cmpps(__a, __b, 32); // expected-error {{argument should be a value from 0 to 31}}
|
||||
}
|
||||
|
@ -18,3 +24,11 @@ __m128 test__builtin_ia32_cmpss(__m128 __a, __m128 __b) {
|
|||
__m128d test__builtin_ia32_cmpsd(__m128d __a, __m128d __b) {
|
||||
__builtin_ia32_cmpsd(__a, __b, 32); // expected-error {{argument should be a value from 0 to 31}}
|
||||
}
|
||||
|
||||
__mmask16 test__builtin_ia32_cmpps512_mask(__m512d __a, __m512d __b) {
|
||||
__builtin_ia32_cmpps512_mask(__a, __b, 32, -1, 0); // expected-error {{argument should be a value from 0 to 31}}
|
||||
}
|
||||
|
||||
__mmask8 test__builtin_ia32_cmppd512_mask(__m512d __a, __m512d __b) {
|
||||
__builtin_ia32_cmppd512_mask(__a, __b, 32, -1, 0); // expected-error {{argument should be a value from 0 to 31}}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue