diff options
author | kyukhin <kyukhin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-12-31 11:30:14 +0000 |
---|---|---|
committer | kyukhin <kyukhin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-12-31 11:30:14 +0000 |
commit | e2098065954afd61e2b34be92b8894267875a4f9 (patch) | |
tree | 6ef1639ca51c0d908c2b3288e865ce36c647774a /gcc/testsuite/gcc.target | |
parent | 1706116db656978bf56667cdc36742be0a507a9b (diff) | |
download | gcc-e2098065954afd61e2b34be92b8894267875a4f9.tar.gz |
gcc/
* config.gcc (extra_headers): Add avx512fintrin.h, avx512cdintrin.h,
avx512erintrin.h, avx512pfintrin.h.
* config/i386/avx512cdintrin.h: New file.
* config/i386/avx512erintrin.h: New file.
* config/i386/avx512fintrin.h: New file.
* config/i386/avx512pfintrin.h: New file.
* config/i386/i386-builtin-types.def: Add V16UHI, V32SF, V16SF, V8DF,
V8DI, V16SI, V64QI, PV8DF, PV8DI, PV16SI, PV16SF, PCV8DF, PCV16SF,
PCV8DI, PCV16SI, V16QI_FTYPE_V16SI, V8DF_FTYPE_V8SI, V8DF_FTYPE_V8DF,
V8HI_FTYPE_V8DI, V16SF_FTYPE_V16SF, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
V8SF_FTYPE_V8DF_V8SF_QI, V16HI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
V16SI_FTYPE_INT, V8DF_FTYPE_DOUBLE, V8DI_FTYPE_INT64,
V16SF_FTYPE_V4SF, V8DF_FTYPE_V4DF, V8DI_FTYPE_V4DI, V16QI_FTYPE_V8DI,
UINT_FTYPE_V4SF, UINT64_FTYPE_V4SF, UINT_FTYPE_V2DF,
UINT64_FTYPE_V2DF, V16SI_FTYPE_V16SI, V16SI_FTYPE_V16SI_V16SI_HI,
V8DI_FTYPE_V8DI, V8DI_FTYPE_V8DI_V8DI_QI, V16SI_FTYPE_PV4SI,
V16SF_FTYPE_PV4SF, V8DI_FTYPE_PV4DI, V8DF_FTYPE_PV4DF,
V8UHI_FTYPE_V8UHI, V8USI_FTYPE_V8USI, V2DF_FTYPE_V2DF_UINT,
V2DF_FTYPE_V2DF_UINT64, V4DF_FTYPE_V8DF_INT,
V4DF_FTYPE_V8DF_INT_V4DF_QI, V8DF_FTYPE_V8DF_V8DI,
V4SF_FTYPE_V4SF_UINT, V4SF_FTYPE_V4SF_UINT64,
INT_FTYPE_V4SF_V4SF_INT_INT, INT_FTYPE_V2DF_V2DF_INT_INT,
V16SF_FTYPE_V16SF_INT, V4SF_FTYPE_V16SF_INT,
V4SF_FTYPE_V16SF_INT_V4SF_QI, V16SF_FTYPE_V16SF_V16SF,
V16SF_FTYPE_V16SF_V16SI, V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI,
V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI, V8DF_FTYPE_V8DF_INT_V8DF_QI,
V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI_INT, V8DF_FTYPE_V8DF_V8DF,
V16SF_FTYPE_V16SF_V16SF_INT, V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI,
V16SF_FTYPE_V16SF_INT_V16SF_HI, V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI,
V16SF_FTYPE_V16SF_V16SF_V16SI_INT,
V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI_INT,
V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI,
V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI_INT,
V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI,
V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI_INT, V16SF_FTYPE_V16SF_V4SF_INT,
V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI, V16HI_FTYPE_V16SF_INT,
V16HI_FTYPE_V16SF_INT_V16HI_HI, V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI,
V16SI_FTYPE_V16SI_V4SI, V16SI_FTYPE_V16SI_V4SI_INT,
V4SI_FTYPE_V16SI_INT, V4SI_FTYPE_V16SI_INT_V4SI_QI,
V16SI_FTYPE_V16SI_V16SI, V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI,
V16SI_FTYPE_V16SI_SI, V16SI_FTYPE_V16SI_INT,
V16SI_FTYPE_V16SI_V4SI_V16SI_HI, V16SI_FTYPE_V16SI_INT_V16SI_HI,
V8DI_FTYPE_V8DI_V8DI, V16SI_FTYPE_V8DF_V8DF,
V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI, V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI,
V8DI_FTYPE_V8DI_V2DI, V4DI_FTYPE_V8DI_INT,
V4DI_FTYPE_V8DI_INT_V4DI_QI, V8DI_FTYPE_V8DI_V2DI_V8DI_QI,
V8DI_FTYPE_V8DI_INT_V8DI_QI, VOID_FTYPE_PDOUBLE_V8DF,
VOID_FTYPE_PFLOAT_V16SF, VOID_FTYPE_PV8DI_V8DI, HI_FTYPE_HI,
HI_FTYPE_HI_HI, HI_FTYPE_HI_INT, QI_FTYPE_V8DI_V8DI,
QI_FTYPE_V8DI_V8DI_QI, HI_FTYPE_V16SI_V16SI, HI_FTYPE_V16SI_V16SI_HI,
QI_FTYPE_V8DI_V8DI_INT, QI_FTYPE_V8DI_V8DI_INT_QI,
HI_FTYPE_V16SI_V16SI_INT, HI_FTYPE_V16SI_V16SI_INT ,HI,
QI_FTYPE_V8DF_V8DF_INT, QI_FTYPE_V8DF_V8DF_INT_QI,
QI_FTYPE_V8DF_V8DF_INT_QI_INT, HI_FTYPE_V16SF_V16SF_INT,
HI_FTYPE_V16SF_V16SF_INT_HI, HI_FTYPE_V16SF_V16SF_INT_HI_INT,
QI_FTYPE_V2DF_V2DF_INT, QI_FTYPE_V2DF_V2DF_INT_QI,
QI_FTYPE_V2DF_V2DF_INT_QI_INT, QI_FTYPE_V4SF_V4SF_INT,
QI_FTYPE_V4SF_V4SF_INT_QI, QI_FTYPE_V4SF_V4SF_INT_QI_INT,
V16SI_FTYPE_HI, V8DI_FTYPE_QI, V8DF_FTYPE_V8DF_V8DF_V8DF,
V16SF_FTYPE_V16SF_V16SF_V16SF, V8DF_FTYPE_V8DF_V8DF_QI,
V8DF_FTYPE_V8SF_V8DF_QI, V8DF_FTYPE_V8SI_V8DF_QI,
V8DI_FTYPE_V8SI_V8DI_QI, V8DI_FTYPE_V8HI_V8DI_QI,
V8DI_FTYPE_V16QI_V8DI_QI, V8DI_FTYPE_V8DI_V8DI_V8DI_QI,
V8DF_FTYPE_V8DI_V8DF_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF_QI,
V8DF_FTYPE_V8DF_V8DI_V8DF_QI, V8DF_FTYPE_V8DF_V8DF_V8DF_QI,
V16SI_FTYPE_V16SI_V16SI_V16SI_HI, V2DF_FTYPE_V2DF_V2DF_V2DF_QI,
V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V16SF_FTYPE_V16SF_V16SF_HI,
V16SF_FTYPE_V16SI_V16SF_HI, V16SF_FTYPE_V16SF_V16SF_V16SF_HI,
V16SF_FTYPE_V16SI_V16SF_V16SF, V16SF_FTYPE_V16SI_V16SF_V16SF_HI,
V16SF_FTYPE_V16SF_V16SI_V16SF_HI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
V4SF_FTYPE_V4SF_V4SF_V4SF_QI, V16SF_FTYPE_V4SF_V16SF_HI,
V8DF_FTYPE_V4DF_V8DF_QI, V8DF_FTYPE_V2DF_V8DF_QI,
V16SI_FTYPE_V4SI_V16SI_HI, V16SI_FTYPE_SI_V16SI_HI,
V16SI_FTYPE_V16HI_V16SI_HI, V16SI_FTYPE_V16QI_V16SI_HI,
V8SI_FTYPE_V8DF_V8SI_QI, V8DI_FTYPE_V4DI_V8DI_QI,
V8DI_FTYPE_V2DI_V8DI_QI, V8DI_FTYPE_DI_V8DI_QI,
V16SF_FTYPE_PCV16SF_V16SF_HI, V8DF_FTYPE_PCV8DF_V8DF_QI,
V16SI_FTYPE_PCV16SI_V16SI_HI, V8DI_FTYPE_PCV8DI_V8DI_QI,
V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI,
V16QI_FTYPE_V16SI_V16QI_HI, V16HI_FTYPE_V16SI_V16HI_HI,
V8SI_FTYPE_V8DI_V8SI_QI, V8HI_FTYPE_V8DI_V8HI_QI,
V16QI_FTYPE_V8DI_V16QI_QI, VOID_FTYPE_PV8DF_V8DF_QI,
VOID_FTYPE_PV16SF_V16SF_HI, VOID_FTYPE_PV8DI_V8DI_QI,
VOID_FTYPE_PV16SI_V16SI_HI, VOID_FTYPE_PDOUBLE_V2DF_QI,
VOID_FTYPE_PFLOAT_V4SF_QI, V16SI_FTYPE_V16SF_V16SI_HI,
V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI,
V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI, V8DI_FTYPE_V8DI_V8DI_V8DI,
V16SI_FTYPE_V16SI_V16SI_V16SI, V8DF_FTYPE_V8DF_V8DI_V8DF,
V16SF_FTYPE_V16SF_V16SI_V16SF, V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI,
V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI, V8DI_FTYPE_V16SI_V16SI_V8DI_QI,
UINT64_FTYPE_V2DF_INT, UINT64_FTYPE_V4SF_INT, UINT_FTYPE_V2DF_INT,
UINT_FTYPE_V4SF_INT, INT64_FTYPE_V2DF_INT, INT64_FTYPE_V4SF_INT,
INT_FTYPE_V2DF_INT, INT_FTYPE_V4SF_INT, V2DF_FTYPE_V2DF_UINT64_INT,
V4SF_FTYPE_V4SF_UINT64_INT, V4SF_FTYPE_V4SF_UINT_INT,
V2DF_FTYPE_V2DF_INT64_INT, V4SF_FTYPE_V4SF_INT64_INT,
V4SF_FTYPE_V4SF_INT_INT, V16SI_FTYPE_V16SF_V16SI_HI_INT,
V16SF_FTYPE_V16SI_V16SF_HI_INT, V16SF_FTYPE_V16SF_V16SF_HI_INT,
V16SF_FTYPE_V16HI_V16SF_HI_INT, V8SI_FTYPE_V8DF_V8SI_QI_INT,
V8SF_FTYPE_V8DF_V8SF_QI_INT, V8DF_FTYPE_V8DF_V8DF_QI_INT,
V8DF_FTYPE_V8SF_V8DF_QI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF_HI_INT,
V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT, V4SF_FTYPE_V4SF_V4SF_V4SF_QI_INT,
V4SF_FTYPE_V4SF_V2DF_V4SF_QI_INT, V2DF_FTYPE_V2DF_V2DF_V2DF_QI_INT,
V2DF_FTYPE_V2DF_V4SF_V2DF_QI_INT, V2DF_FTYPE_V2DF_V2DF_V2DF_INT,
V16SF_FTYPE_V16SF_INT_V16SF_HI_INT, V8DF_FTYPE_V8DF_INT_V8DF_QI_INT,
V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI_INT,
V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI_INT, V8DI_FTYPE_V8DI_SI_V8DI_V8DI,
V16SF_FTYPE_V16SF_PCFLOAT_V16SI_HI_INT,
V16SF_FTYPE_V16SF_PCFLOAT_V8DI_HI_INT,
V8DF_FTYPE_V8DF_PCDOUBLE_V8SI_QI_INT,
V8DF_FTYPE_V8DF_PCDOUBLE_V16SI_QI_INT,
V8SF_FTYPE_V8SF_PCFLOAT_V8DI_QI_INT,
V8DF_FTYPE_V8DF_PCDOUBLE_V8DI_QI_INT,
V16SI_FTYPE_V16SI_PCINT_V16SI_HI_INT,
V16SI_FTYPE_V16SI_PCINT_V8DI_HI_INT,
V8DI_FTYPE_V8DI_PCINT64_V8SI_QI_INT,
V8DI_FTYPE_V8DI_PCINT64_V16SI_QI_INT,
V8SI_FTYPE_V8SI_PCINT_V8DI_QI_INT,
V8DI_FTYPE_V8DI_PCINT64_V8DI_QI_INT,
VOID_FTYPE_PFLOAT_HI_V16SI_V16SF_INT,
VOID_FTYPE_PDOUBLE_QI_V8SI_V8DF_INT,
VOID_FTYPE_PFLOAT_QI_V8DI_V8SF_INT,
VOID_FTYPE_PDOUBLE_QI_V8DI_V8DF_INT,
VOID_FTYPE_PINT_HI_V16SI_V16SI_INT,
VOID_FTYPE_PLONGLONG_QI_V8SI_V8DI_INT,
VOID_FTYPE_PINT_QI_V8DI_V8SI_INT,
VOID_FTYPE_PLONGLONG_QI_V8DI_V8DI_INT,
VOID_FTYPE_HI_V16SI_PCINT_INT_INT, VOID_FTYPE_QI_V8DI_PCINT_INT_INT.
(ALIAS): Add DEF_FUNCTION_TYPE_ALIAS (V16SI_FTYPE_V8DF_V8DF, ROUND).
* config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_ADDPD512,
IX86_BUILTIN_ADDPS512, IX86_BUILTIN_ADDSD_MASK,
IX86_BUILTIN_ADDSS_MASK, IX86_BUILTIN_ALIGND512,
IX86_BUILTIN_ALIGNQ512, IX86_BUILTIN_BLENDMD512,
IX86_BUILTIN_BLENDMPD512, IX86_BUILTIN_BLENDMPS512,
IX86_BUILTIN_BLENDMQ512, IX86_BUILTIN_BROADCASTF32X4_512,
IX86_BUILTIN_BROADCASTF64X4_512, IX86_BUILTIN_BROADCASTI32X4_512,
IX86_BUILTIN_BROADCASTI64X4_512, IX86_BUILTIN_BROADCASTSD512,
IX86_BUILTIN_BROADCASTSS512, IX86_BUILTIN_CMPD512,
IX86_BUILTIN_CMPPD512, IX86_BUILTIN_CMPPS512, IX86_BUILTIN_CMPQ512,
IX86_BUILTIN_CMPSD_MASK, IX86_BUILTIN_CMPSS_MASK, IX86_BUILTIN_COMIDF,
IX86_BUILTIN_COMISF, IX86_BUILTIN_COMPRESSPD512,
IX86_BUILTIN_COMPRESSPDSTORE512, IX86_BUILTIN_COMPRESSPS512,
IX86_BUILTIN_COMPRESSPSSTORE512, IX86_BUILTIN_CVTDQ2PD512,
IX86_BUILTIN_CVTDQ2PS512, IX86_BUILTIN_CVTPD2DQ512,
IX86_BUILTIN_CVTPD2PS512, IX86_BUILTIN_CVTPD2UDQ512,
IX86_BUILTIN_CVTPH2PS512, IX86_BUILTIN_CVTPS2DQ512,
IX86_BUILTIN_CVTPS2PD512, IX86_BUILTIN_CVTPS2PH512,
IX86_BUILTIN_CVTPS2UDQ512, IX86_BUILTIN_CVTSD2SS_MASK,
IX86_BUILTIN_CVTSI2SD64, IX86_BUILTIN_CVTSI2SS32,
IX86_BUILTIN_CVTSI2SS64, IX86_BUILTIN_CVTSS2SD_MASK,
IX86_BUILTIN_CVTTPD2DQ512, IX86_BUILTIN_CVTTPD2UDQ512,
IX86_BUILTIN_CVTTPS2DQ512, IX86_BUILTIN_CVTTPS2UDQ512,
IX86_BUILTIN_CVTUDQ2PD512, IX86_BUILTIN_CVTUDQ2PS512,
IX86_BUILTIN_CVTUSI2SD32, IX86_BUILTIN_CVTUSI2SD64,
IX86_BUILTIN_CVTUSI2SS32, IX86_BUILTIN_CVTUSI2SS64,
IX86_BUILTIN_DIVPD512, IX86_BUILTIN_DIVPS512, IX86_BUILTIN_DIVSD_MASK,
IX86_BUILTIN_DIVSS_MASK, IX86_BUILTIN_EXPANDPD512,
IX86_BUILTIN_EXPANDPD512Z, IX86_BUILTIN_EXPANDPDLOAD512,
IX86_BUILTIN_EXPANDPDLOAD512Z, IX86_BUILTIN_EXPANDPS512,
IX86_BUILTIN_EXPANDPS512Z, IX86_BUILTIN_EXPANDPSLOAD512,
IX86_BUILTIN_EXPANDPSLOAD512Z, IX86_BUILTIN_EXTRACTF32X4,
IX86_BUILTIN_EXTRACTF64X4, IX86_BUILTIN_EXTRACTI32X4,
IX86_BUILTIN_EXTRACTI64X4, IX86_BUILTIN_FIXUPIMMPD512_MASK,
IX86_BUILTIN_FIXUPIMMPD512_MASKZ, IX86_BUILTIN_FIXUPIMMPS512_MASK,
IX86_BUILTIN_FIXUPIMMPS512_MASKZ, IX86_BUILTIN_FIXUPIMMSD128_MASK,
IX86_BUILTIN_FIXUPIMMSD128_MASKZ, IX86_BUILTIN_FIXUPIMMSS128_MASK,
IX86_BUILTIN_FIXUPIMMSS128_MASKZ, IX86_BUILTIN_GETEXPPD512,
IX86_BUILTIN_GETEXPPS512, IX86_BUILTIN_GETEXPSD128,
IX86_BUILTIN_GETEXPSS128, IX86_BUILTIN_GETMANTPD512,
IX86_BUILTIN_GETMANTPS512, IX86_BUILTIN_GETMANTSD128,
IX86_BUILTIN_GETMANTSS128, IX86_BUILTIN_INSERTF32X4,
IX86_BUILTIN_INSERTF64X4, IX86_BUILTIN_INSERTI32X4,
IX86_BUILTIN_INSERTI64X4, IX86_BUILTIN_LOADAPD512,
IX86_BUILTIN_LOADAPS512, IX86_BUILTIN_LOADDQUDI512,
IX86_BUILTIN_LOADDQUSI512, IX86_BUILTIN_LOADSD, IX86_BUILTIN_LOADSS,
IX86_BUILTIN_LOADUPD512, IX86_BUILTIN_LOADUPS512,
IX86_BUILTIN_MAXPD512, IX86_BUILTIN_MAXPS512, IX86_BUILTIN_MAXSD_MASK,
IX86_BUILTIN_MAXSS_MASK, IX86_BUILTIN_MINPD512, IX86_BUILTIN_MINPS512,
IX86_BUILTIN_MINSD_MASK, IX86_BUILTIN_MINSS_MASK,
IX86_BUILTIN_MOVAPD512, IX86_BUILTIN_MOVAPS512,
IX86_BUILTIN_MOVDDUP512, IX86_BUILTIN_MOVDQA32LOAD512,
IX86_BUILTIN_MOVDQA32STORE512, IX86_BUILTIN_MOVDQA32_512,
IX86_BUILTIN_MOVDQA64LOAD512, IX86_BUILTIN_MOVDQA64STORE512,
IX86_BUILTIN_MOVDQA64_512, IX86_BUILTIN_MOVESD, IX86_BUILTIN_MOVESS,
IX86_BUILTIN_MOVNTDQ512, IX86_BUILTIN_MOVNTPD512,
IX86_BUILTIN_MOVNTPS512, IX86_BUILTIN_MOVSHDUP512,
IX86_BUILTIN_MOVSLDUP512, IX86_BUILTIN_MULPD512,
IX86_BUILTIN_MULPS512, IX86_BUILTIN_MULSD_MASK,
IX86_BUILTIN_MULSS_MASK, IX86_BUILTIN_PABSD512, IX86_BUILTIN_PABSQ512,
IX86_BUILTIN_PADDD512, IX86_BUILTIN_PADDQ512, IX86_BUILTIN_PANDD512,
IX86_BUILTIN_PANDND512, IX86_BUILTIN_PANDNQ512, IX86_BUILTIN_PANDQ512,
IX86_BUILTIN_PBROADCASTD512, IX86_BUILTIN_PBROADCASTD512_GPR,
IX86_BUILTIN_PBROADCASTMB512, IX86_BUILTIN_PBROADCASTMW512,
IX86_BUILTIN_PBROADCASTQ512, IX86_BUILTIN_PBROADCASTQ512_GPR,
IX86_BUILTIN_PBROADCASTQ512_MEM, IX86_BUILTIN_PCMPEQD512_MASK,
IX86_BUILTIN_PCMPEQQ512_MASK, IX86_BUILTIN_PCMPGTD512_MASK,
IX86_BUILTIN_PCMPGTQ512_MASK, IX86_BUILTIN_PCOMPRESSD512,
IX86_BUILTIN_PCOMPRESSDSTORE512, IX86_BUILTIN_PCOMPRESSQ512,
IX86_BUILTIN_PCOMPRESSQSTORE512, IX86_BUILTIN_PEXPANDD512,
IX86_BUILTIN_PEXPANDD512Z, IX86_BUILTIN_PEXPANDDLOAD512,
IX86_BUILTIN_PEXPANDDLOAD512Z, IX86_BUILTIN_PEXPANDQ512,
IX86_BUILTIN_PEXPANDQ512Z, IX86_BUILTIN_PEXPANDQLOAD512,
IX86_BUILTIN_PEXPANDQLOAD512Z, IX86_BUILTIN_PMAXSD512,
IX86_BUILTIN_PMAXSQ512, IX86_BUILTIN_PMAXUD512,
IX86_BUILTIN_PMAXUQ512, IX86_BUILTIN_PMINSD512,
IX86_BUILTIN_PMINSQ512, IX86_BUILTIN_PMINUD512,
IX86_BUILTIN_PMINUQ512, IX86_BUILTIN_PMOVDB512,
IX86_BUILTIN_PMOVDW512, IX86_BUILTIN_PMOVQB512,
IX86_BUILTIN_PMOVQD512, IX86_BUILTIN_PMOVQW512,
IX86_BUILTIN_PMOVSDB512, IX86_BUILTIN_PMOVSDW512,
IX86_BUILTIN_PMOVSQB512, IX86_BUILTIN_PMOVSQD512,
IX86_BUILTIN_PMOVSQW512, IX86_BUILTIN_PMOVSXBD512,
IX86_BUILTIN_PMOVSXBQ512, IX86_BUILTIN_PMOVSXDQ512,
IX86_BUILTIN_PMOVSXWD512, IX86_BUILTIN_PMOVSXWQ512,
IX86_BUILTIN_PMOVUSDB512, IX86_BUILTIN_PMOVUSDW512,
IX86_BUILTIN_PMOVUSQB512, IX86_BUILTIN_PMOVUSQD512,
IX86_BUILTIN_PMOVUSQW512, IX86_BUILTIN_PMOVZXBD512,
IX86_BUILTIN_PMOVZXBQ512, IX86_BUILTIN_PMOVZXDQ512,
IX86_BUILTIN_PMOVZXWD512, IX86_BUILTIN_PMOVZXWQ512,
IX86_BUILTIN_PMULDQ512, IX86_BUILTIN_PMULLD512,
IX86_BUILTIN_PMULUDQ512, IX86_BUILTIN_PORD512, IX86_BUILTIN_PORQ512,
IX86_BUILTIN_PROLD512, IX86_BUILTIN_PROLQ512, IX86_BUILTIN_PROLVD512,
IX86_BUILTIN_PROLVQ512, IX86_BUILTIN_PRORD512, IX86_BUILTIN_PRORQ512,
IX86_BUILTIN_PRORVD512, IX86_BUILTIN_PRORVQ512,
IX86_BUILTIN_PSHUFD512, IX86_BUILTIN_PSLLD512, IX86_BUILTIN_PSLLDI512,
IX86_BUILTIN_PSLLQ512, IX86_BUILTIN_PSLLQI512,
IX86_BUILTIN_PSLLVV16SI, IX86_BUILTIN_PSLLVV8DI,
IX86_BUILTIN_PSRAD512, IX86_BUILTIN_PSRADI512, IX86_BUILTIN_PSRAQ512,
IX86_BUILTIN_PSRAQI512, IX86_BUILTIN_PSRAVV16SI,
IX86_BUILTIN_PSRAVV8DI, IX86_BUILTIN_PSRLD512, IX86_BUILTIN_PSRLDI512,
IX86_BUILTIN_PSRLQ512, IX86_BUILTIN_PSRLQI512,
IX86_BUILTIN_PSRLVV16SI, IX86_BUILTIN_PSRLVV8DI,
IX86_BUILTIN_PSUBD512, IX86_BUILTIN_PSUBQ512, IX86_BUILTIN_PTESTMD512,
IX86_BUILTIN_PTESTMQ512, IX86_BUILTIN_PTESTNMD512,
IX86_BUILTIN_PTESTNMQ512, IX86_BUILTIN_PUNPCKHDQ512,
IX86_BUILTIN_PUNPCKHQDQ512, IX86_BUILTIN_PUNPCKLDQ512,
IX86_BUILTIN_PUNPCKLQDQ512, IX86_BUILTIN_PXORD512,
IX86_BUILTIN_PXORQ512, IX86_BUILTIN_RCP14PD512,
IX86_BUILTIN_RCP14PS512, IX86_BUILTIN_RCP14SD, IX86_BUILTIN_RCP14SS,
IX86_BUILTIN_RNDSCALEPD, IX86_BUILTIN_RNDSCALEPS,
IX86_BUILTIN_RNDSCALESD, IX86_BUILTIN_RNDSCALESS,
IX86_BUILTIN_RSQRT14PD512, IX86_BUILTIN_RSQRT14PS512,
IX86_BUILTIN_RSQRT14SD, IX86_BUILTIN_RSQRT14SS,
IX86_BUILTIN_SCALEFPD512, IX86_BUILTIN_SCALEFPS512,
IX86_BUILTIN_SCALEFSD, IX86_BUILTIN_SCALEFSS, IX86_BUILTIN_SHUFPD512,
IX86_BUILTIN_SHUFPS512, IX86_BUILTIN_SHUF_F32x4,
IX86_BUILTIN_SHUF_F64x2, IX86_BUILTIN_SHUF_I32x4,
IX86_BUILTIN_SHUF_I64x2,
IX86_BUILTIN_SQRTPD512_MASK, IX86_BUILTIN_SQRTPS512_MASK,
IX86_BUILTIN_SQRTSD_MASK,
IX86_BUILTIN_SQRTSS_MASK, IX86_BUILTIN_STOREAPD512,
IX86_BUILTIN_STOREAPS512, IX86_BUILTIN_STOREDQUDI512,
IX86_BUILTIN_STOREDQUSI512, IX86_BUILTIN_STORESD,
IX86_BUILTIN_STORESS, IX86_BUILTIN_STOREUPD512,
IX86_BUILTIN_STOREUPS512, IX86_BUILTIN_SUBPD512,
IX86_BUILTIN_SUBPS512, IX86_BUILTIN_SUBSD_MASK,
IX86_BUILTIN_SUBSS_MASK, IX86_BUILTIN_UCMPD512, IX86_BUILTIN_UCMPQ512,
IX86_BUILTIN_UNPCKHPD512, IX86_BUILTIN_UNPCKHPS512,
IX86_BUILTIN_UNPCKLPD512, IX86_BUILTIN_UNPCKLPS512,
IX86_BUILTIN_VCVTSD2SI32, IX86_BUILTIN_VCVTSD2SI64,
IX86_BUILTIN_VCVTSD2USI32, IX86_BUILTIN_VCVTSD2USI64,
IX86_BUILTIN_VCVTSS2SI32, IX86_BUILTIN_VCVTSS2SI64,
IX86_BUILTIN_VCVTSS2USI32, IX86_BUILTIN_VCVTSS2USI64,
IX86_BUILTIN_VCVTTSD2SI32, IX86_BUILTIN_VCVTTSD2SI64,
IX86_BUILTIN_VCVTTSD2USI32, IX86_BUILTIN_VCVTTSD2USI64,
IX86_BUILTIN_VCVTTSS2SI32, IX86_BUILTIN_VCVTTSS2SI64,
IX86_BUILTIN_VCVTTSS2USI32, IX86_BUILTIN_VCVTTSS2USI64,
IX86_BUILTIN_VFMADDPD512_MASK, IX86_BUILTIN_VFMADDPD512_MASK3,
IX86_BUILTIN_VFMADDPD512_MASKZ, IX86_BUILTIN_VFMADDPS512_MASK,
IX86_BUILTIN_VFMADDPS512_MASK3, IX86_BUILTIN_VFMADDPS512_MASKZ,
IX86_BUILTIN_VFMADDSD3_MASK, IX86_BUILTIN_VFMADDSD3_MASK3,
IX86_BUILTIN_VFMADDSD3_MASKZ, IX86_BUILTIN_VFMADDSS3_MASK,
IX86_BUILTIN_VFMADDSS3_MASK3, IX86_BUILTIN_VFMADDSS3_MASKZ,
IX86_BUILTIN_VFMADDSUBPD512_MASK, IX86_BUILTIN_VFMADDSUBPD512_MASK3,
IX86_BUILTIN_VFMADDSUBPD512_MASKZ, IX86_BUILTIN_VFMADDSUBPS512_MASK,
IX86_BUILTIN_VFMADDSUBPS512_MASK3, IX86_BUILTIN_VFMADDSUBPS512_MASKZ,
IX86_BUILTIN_VFMSUBADDPD512_MASK3, IX86_BUILTIN_VFMSUBADDPS512_MASK3,
IX86_BUILTIN_VFMSUBPD512_MASK3, IX86_BUILTIN_VFMSUBPS512_MASK3,
IX86_BUILTIN_VFMSUBSD3_MASK3, IX86_BUILTIN_VFMSUBSS3_MASK3,
IX86_BUILTIN_VFNMADDPD512_MASK, IX86_BUILTIN_VFNMADDPS512_MASK,
IX86_BUILTIN_VFNMSUBPD512_MASK, IX86_BUILTIN_VFNMSUBPD512_MASK3,
IX86_BUILTIN_VFNMSUBPS512_MASK, IX86_BUILTIN_VFNMSUBPS512_MASK3,
IX86_BUILTIN_VPCLZCNTD512, IX86_BUILTIN_VPCLZCNTQ512,
IX86_BUILTIN_VPCONFLICTD512, IX86_BUILTIN_VPCONFLICTQ512,
IX86_BUILTIN_VPERMDF512, IX86_BUILTIN_VPERMDI512,
IX86_BUILTIN_VPERMI2VARD512, IX86_BUILTIN_VPERMI2VARPD512,
IX86_BUILTIN_VPERMI2VARPS512, IX86_BUILTIN_VPERMI2VARQ512,
IX86_BUILTIN_VPERMILPD512, IX86_BUILTIN_VPERMILPS512,
IX86_BUILTIN_VPERMILVARPD512, IX86_BUILTIN_VPERMILVARPS512,
IX86_BUILTIN_VPERMT2VARD512, IX86_BUILTIN_VPERMT2VARD512_MASKZ,
IX86_BUILTIN_VPERMT2VARPD512, IX86_BUILTIN_VPERMT2VARPD512_MASKZ,
IX86_BUILTIN_VPERMT2VARPS512, IX86_BUILTIN_VPERMT2VARPS512_MASKZ,
IX86_BUILTIN_VPERMT2VARQ512, IX86_BUILTIN_VPERMT2VARQ512_MASKZ,
IX86_BUILTIN_VPERMVARDF512, IX86_BUILTIN_VPERMVARDI512,
IX86_BUILTIN_VPERMVARSF512, IX86_BUILTIN_VPERMVARSI512,
IX86_BUILTIN_VTERNLOGD512_MASK, IX86_BUILTIN_VTERNLOGD512_MASKZ,
IX86_BUILTIN_VTERNLOGQ512_MASK, IX86_BUILTIN_VTERNLOGQ512_MASKZ,
IX86_BUILTIN_KAND16, IX86_BUILTIN_KANDN16, IX86_BUILTIN_KNOT16,
IX86_BUILTIN_KOR16, IX86_BUILTIN_KORTESTC16, IX86_BUILTIN_KORTESTZ16,
IX86_BUILTIN_KUNPCKBW, IX86_BUILTIN_KXNOR16, IX86_BUILTIN_KXOR16,
IX86_BUILTIN_GATHER3SIV8DI,
IX86_BUILTIN_SCATTERDIV16SF, IX86_BUILTIN_SCATTERDIV16SI,
IX86_BUILTIN_SCATTERDIV8DF, IX86_BUILTIN_SCATTERDIV8DI,
IX86_BUILTIN_SCATTERSIV16SF, IX86_BUILTIN_SCATTERSIV16SI,
IX86_BUILTIN_SCATTERSIV8DF, IX86_BUILTIN_SCATTERSIV8DI,
IX86_BUILTIN_GATHERPFDPS, IX86_BUILTIN_GATHERPFQPS,
IX86_BUILTIN_SCATTERPFDPS, IX86_BUILTIN_SCATTERPFQPS,
IX86_BUILTIN_EXP2PD_MASK, IX86_BUILTIN_EXP2PS_MASK,
IX86_BUILTIN_RCP28PD, IX86_BUILTIN_RCP28PS,
IX86_BUILTIN_RSQRT28PD, IX86_BUILTIN_RSQRT28PS.
(bdesc_special_args): Add __builtin_ia32_compressstoresf512_mask,
__builtin_ia32_compressstoresi512_mask,
__builtin_ia32_compressstoredf512_mask,
__builtin_ia32_compressstoredi512_mask,
__builtin_ia32_expandloadsf512_mask,
__builtin_ia32_expandloadsf512_maskz,
__builtin_ia32_expandloadsi512_mask,
__builtin_ia32_expandloadsi512_maskz,
__builtin_ia32_expandloaddf512_mask,
__builtin_ia32_expandloaddf512_maskz,
__builtin_ia32_expandloaddi512_mask,
__builtin_ia32_expandloaddi512_maskz,
__builtin_ia32_loaddqusi512_mask, __builtin_ia32_loaddqudi512_mask,
__builtin_ia32_loadsd_mask, __builtin_ia32_loadss_mask,
__builtin_ia32_loadupd512_mask, __builtin_ia32_loadups512_mask,
__builtin_ia32_loadaps512_mask, __builtin_ia32_movdqa32load512_mask,
__builtin_ia32_loadapd512_mask, __builtin_ia32_movdqa64load512_mask,
__builtin_ia32_movntps512, __builtin_ia32_movntpd512,
__builtin_ia32_movntdq512, __builtin_ia32_storedqusi512_mask,
__builtin_ia32_storedqudi512_mask, __builtin_ia32_storesd_mask,
__builtin_ia32_storess_mask, __builtin_ia32_storeupd512_mask,
__builtin_ia32_storeups512_mask, __builtin_ia32_storeaps512_mask,
__builtin_ia32_movdqa32store512_mask, __builtin_ia32_storeapd512_mask,
__builtin_ia32_movdqa64store512_mask, __builtin_ia32_alignd512_mask,
__builtin_ia32_alignq512_mask, __builtin_ia32_blendmd_512_mask,
__builtin_ia32_blendmpd_512_mask, __builtin_ia32_blendmps_512_mask,
__builtin_ia32_blendmq_512_mask, __builtin_ia32_broadcastf32x4_512,
__builtin_ia32_broadcastf64x4_512, __builtin_ia32_broadcasti32x4_512,
__builtin_ia32_broadcasti64x4_512, __builtin_ia32_broadcastsd512,
__builtin_ia32_broadcastss512, __builtin_ia32_cmpd512_mask,
__builtin_ia32_cmpq512_mask, __builtin_ia32_compressdf512_mask,
__builtin_ia32_compresssf512_mask, __builtin_ia32_cvtdq2pd512_mask,
__builtin_ia32_vcvtps2ph512_mask, __builtin_ia32_cvtudq2pd512_mask,
__builtin_ia32_cvtusi2sd32, __builtin_ia32_expanddf512_mask,
__builtin_ia32_expanddf512_maskz, __builtin_ia32_expandsf512_mask,
__builtin_ia32_expandsf512_maskz, __builtin_ia32_extractf32x4_mask,
__builtin_ia32_extractf64x4_mask, __builtin_ia32_extracti32x4_mask,
__builtin_ia32_extracti64x4_mask, __builtin_ia32_insertf32x4_mask,
__builtin_ia32_insertf64x4_mask, __builtin_ia32_inserti32x4_mask,
__builtin_ia32_inserti64x4_mask, __builtin_ia32_movapd512_mask,
__builtin_ia32_movaps512_mask, __builtin_ia32_movddup512_mask,
__builtin_ia32_movdqa32_512_mask, __builtin_ia32_movdqa64_512_mask,
__builtin_ia32_movesd_mask, __builtin_ia32_movess_mask,
__builtin_ia32_movshdup512_mask, __builtin_ia32_movsldup512_mask,
__builtin_ia32_pabsd512_mask, __builtin_ia32_pabsq512_mask,
__builtin_ia32_paddd512_mask, __builtin_ia32_paddq512_mask,
__builtin_ia32_pandd512_mask, __builtin_ia32_pandnd512_mask,
__builtin_ia32_pandnq512_mask, __builtin_ia32_pandq512_mask,
__builtin_ia32_pbroadcastd512, __builtin_ia32_pbroadcastd512_gpr_mask,
__builtin_ia32_broadcastmb512, __builtin_ia32_broadcastmw512,
__builtin_ia32_pbroadcastq512, __builtin_ia32_pbroadcastq512_gpr_mask,
__builtin_ia32_pbroadcastq512_mem_mask,
__builtin_ia32_pcmpeqd512_mask, __builtin_ia32_pcmpeqq512_mask,
__builtin_ia32_pcmpgtd512_mask, __builtin_ia32_pcmpgtq512_mask,
__builtin_ia32_compresssi512_mask, __builtin_ia32_compressdi512_mask,
__builtin_ia32_expandsi512_mask, __builtin_ia32_expandsi512_maskz,
__builtin_ia32_expanddi512_mask, __builtin_ia32_expanddi512_maskz,
__builtin_ia32_pmaxsd512_mask, __builtin_ia32_pmaxsq512_mask,
__builtin_ia32_pmaxud512_mask, __builtin_ia32_pmaxuq512_mask,
__builtin_ia32_pminsd512_mask, __builtin_ia32_pminsq512_mask,
__builtin_ia32_pminud512_mask, __builtin_ia32_pminuq512_mask,
__builtin_ia32_pmovdb512_mask, __builtin_ia32_pmovdw512_mask,
__builtin_ia32_pmovqb512_mask, __builtin_ia32_pmovqd512_mask,
__builtin_ia32_pmovqw512_mask, __builtin_ia32_pmovsdb512_mask,
__builtin_ia32_pmovsdw512_mask, __builtin_ia32_pmovsqb512_mask,
__builtin_ia32_pmovsqd512_mask, __builtin_ia32_pmovsqw512_mask,
__builtin_ia32_pmovsxbd512_mask, __builtin_ia32_pmovsxbq512_mask,
__builtin_ia32_pmovsxdq512_mask, __builtin_ia32_pmovsxwd512_mask,
__builtin_ia32_pmovsxwq512_mask, __builtin_ia32_pmovusdb512_mask,
__builtin_ia32_pmovusdw512_mask, __builtin_ia32_pmovusqb512_mask,
__builtin_ia32_pmovusqd512_mask, __builtin_ia32_pmovusqw512_mask,
__builtin_ia32_pmovzxbd512_mask, __builtin_ia32_pmovzxbq512_mask,
__builtin_ia32_pmovzxdq512_mask, __builtin_ia32_pmovzxwd512_mask,
__builtin_ia32_pmovzxwq512_mask, __builtin_ia32_pmuldq512_mask,
__builtin_ia32_pmulld512_mask, __builtin_ia32_pmuludq512_mask,
__builtin_ia32_pord512_mask, __builtin_ia32_porq512_mask,
__builtin_ia32_prold512_mask, __builtin_ia32_prolq512_mask,
__builtin_ia32_prolvd512_mask, __builtin_ia32_prolvq512_mask,
__builtin_ia32_prord512_mask, __builtin_ia32_prorq512_mask,
__builtin_ia32_prorvd512_mask, __builtin_ia32_prorvq512_mask,
__builtin_ia32_pshufd512_mask, __builtin_ia32_pslld512_mask,
__builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
__builtin_ia32_psllqi512_mask, __builtin_ia32_psllv16si_mask,
__builtin_ia32_psllv8di_mask, __builtin_ia32_psrad512_mask,
__builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
__builtin_ia32_psraqi512_mask, __builtin_ia32_psrav16si_mask,
__builtin_ia32_psrav8di_mask, __builtin_ia32_psrld512_mask,
__builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
__builtin_ia32_psrlqi512_mask, __builtin_ia32_psrlv16si_mask,
__builtin_ia32_psrlv8di_mask, __builtin_ia32_psubd512_mask,
__builtin_ia32_psubq512_mask, __builtin_ia32_ptestmd512,
__builtin_ia32_ptestmq512, __builtin_ia32_ptestnmd512,
__builtin_ia32_ptestnmq512, __builtin_ia32_punpckhdq512_mask,
__builtin_ia32_punpckhqdq512_mask, __builtin_ia32_punpckldq512_mask,
__builtin_ia32_punpcklqdq512_mask, __builtin_ia32_pxord512_mask,
__builtin_ia32_pxorq512_mask, __builtin_ia32_rcp14pd512_mask,
__builtin_ia32_rcp14ps512_mask, __builtin_ia32_rcp14sd_mask,
__builtin_ia32_rcp14ss_mask, __builtin_ia32_rsqrt14pd512_mask,
__builtin_ia32_rsqrt14ps512_mask, __builtin_ia32_rsqrt14sd_mask,
__builtin_ia32_rsqrt14ss_mask, __builtin_ia32_shufpd512_mask,
__builtin_ia32_shufps512_mask, __builtin_ia32_shuf_f32x4_mask,
__builtin_ia32_shuf_f64x2_mask, __builtin_ia32_shuf_i32x4_mask,
__builtin_ia32_shuf_i64x2_mask, __builtin_ia32_ucmpd512_mask,
__builtin_ia32_ucmpq512_mask, __builtin_ia32_unpckhpd512_mask,
__builtin_ia32_unpckhps512_mask, __builtin_ia32_unpcklpd512_mask,
__builtin_ia32_unpcklps512_mask, __builtin_ia32_vplzcntd_512_mask,
__builtin_ia32_vplzcntq_512_mask,
__builtin_ia32_vpconflictsi_512_mask,
__builtin_ia32_vpconflictdi_512_mask, __builtin_ia32_permdf512_mask,
__builtin_ia32_permdi512_mask, __builtin_ia32_vpermi2vard512_mask,
__builtin_ia32_vpermi2varpd512_mask,
__builtin_ia32_vpermi2varps512_mask,
__builtin_ia32_vpermi2varq512_mask, __builtin_ia32_vpermilpd512_mask,
__builtin_ia32_vpermilps512_mask, __builtin_ia32_vpermilvarpd512_mask,
__builtin_ia32_vpermilvarps512_mask,
__builtin_ia32_vpermt2vard512_mask,
__builtin_ia32_vpermt2vard512_maskz,
__builtin_ia32_vpermt2varpd512_mask,
__builtin_ia32_vpermt2varpd512_maskz,
__builtin_ia32_vpermt2varps512_mask,
__builtin_ia32_vpermt2varps512_maskz,
__builtin_ia32_vpermt2varq512_mask,
__builtin_ia32_vpermt2varq512_maskz, __builtin_ia32_permvardf512_mask,
__builtin_ia32_permvardi512_mask, __builtin_ia32_permvarsf512_mask,
__builtin_ia32_permvarsi512_mask, __builtin_ia32_pternlogd512_mask,
__builtin_ia32_pternlogd512_maskz, __builtin_ia32_pternlogq512_mask,
__builtin_ia32_pternlogq512_maskz, __builtin_ia32_copysignps512,
__builtin_ia32_copysignpd512, __builtin_ia32_sqrtpd512,
__builtin_ia32_sqrtps512, __builtin_ia32_exp2ps,
__builtin_ia32_roundpd_az_vec_pack_sfix512,
__builtin_ia32_floorpd_vec_pack_sfix512,
__builtin_ia32_ceilpd_vec_pack_sfix512, __builtin_ia32_kandhi,
__builtin_ia32_kandnhi, __builtin_ia32_knothi, __builtin_ia32_korhi,
__builtin_ia32_kortestchi, __builtin_ia32_kortestzhi,
__builtin_ia32_kunpckhi, __builtin_ia32_kxnorhi,
__builtin_ia32_kxorhi, __builtin_ia32_addpd512_mask,
__builtin_ia32_addps512_mask, __builtin_ia32_addsd_mask,
__builtin_ia32_addss_mask, __builtin_ia32_cmppd512_mask,
__builtin_ia32_cmpps512_mask, __builtin_ia32_cmpsd_mask,
__builtin_ia32_cmpss_mask, __builtin_ia32_vcomisd,
__builtin_ia32_vcomiss, __builtin_ia32_cvtdq2ps512_mask,
__builtin_ia32_cvtpd2dq512_mask, __builtin_ia32_cvtpd2ps512_mask,
__builtin_ia32_cvtpd2udq512_mask, __builtin_ia32_vcvtph2ps512_mask,
__builtin_ia32_cvtps2dq512_mask, __builtin_ia32_cvtps2pd512_mask,
__builtin_ia32_cvtps2udq512_mask, __builtin_ia32_cvtsd2ss_mask,
__builtin_ia32_cvtsi2sd64, __builtin_ia32_cvtsi2ss32,
__builtin_ia32_cvtsi2ss64, __builtin_ia32_cvtss2sd_mask,
__builtin_ia32_cvttpd2dq512_mask, __builtin_ia32_cvttpd2udq512_mask,
__builtin_ia32_cvttps2dq512_mask, __builtin_ia32_cvttps2udq512_mask,
__builtin_ia32_cvtudq2ps512_mask, __builtin_ia32_cvtusi2sd64,
__builtin_ia32_cvtusi2ss32, __builtin_ia32_cvtusi2ss64,
__builtin_ia32_divpd512_mask, __builtin_ia32_divps512_mask,
__builtin_ia32_divsd_mask, __builtin_ia32_divss_mask,
__builtin_ia32_fixupimmpd512_mask, __builtin_ia32_fixupimmpd512_maskz,
__builtin_ia32_fixupimmps512_mask, __builtin_ia32_fixupimmps512_maskz,
__builtin_ia32_fixupimmsd_mask, __builtin_ia32_fixupimmsd_maskz,
__builtin_ia32_fixupimmss_mask, __builtin_ia32_fixupimmss_maskz,
__builtin_ia32_getexppd512_mask, __builtin_ia32_getexpps512_mask,
__builtin_ia32_getexpsd128_mask, __builtin_ia32_getexpss128_mask,
__builtin_ia32_getmantpd512_mask, __builtin_ia32_getmantps512_mask,
__builtin_ia32_getmantsd_mask, __builtin_ia32_getmantss_mask,
__builtin_ia32_maxpd512_mask, __builtin_ia32_maxps512_mask,
__builtin_ia32_maxsd_mask, __builtin_ia32_maxss_mask,
__builtin_ia32_minpd512_mask, __builtin_ia32_minps512_mask,
__builtin_ia32_minsd_mask, __builtin_ia32_minss_mask,
__builtin_ia32_mulpd512_mask, __builtin_ia32_mulps512_mask,
__builtin_ia32_mulsd_mask, __builtin_ia32_mulss_mask,
__builtin_ia32_rndscalepd_mask, __builtin_ia32_rndscaleps_mask,
__builtin_ia32_rndscalesd_mask, __builtin_ia32_rndscaless_mask,
__builtin_ia32_scalefpd512_mask, __builtin_ia32_scalefps512_mask,
__builtin_ia32_scalefsd_mask, __builtin_ia32_scalefss_mask,
__builtin_ia32_sqrtpd512_mask, __builtin_ia32_sqrtps512_mask,
__builtin_ia32_sqrtsd_mask, __builtin_ia32_sqrtss_mask,
__builtin_ia32_subpd512_mask, __builtin_ia32_subps512_mask,
__builtin_ia32_subsd_mask, __builtin_ia32_subss_mask,
__builtin_ia32_vcvtsd2si32, __builtin_ia32_vcvtsd2si64,
__builtin_ia32_vcvtsd2usi32, __builtin_ia32_vcvtsd2usi64,
__builtin_ia32_vcvtss2si32, __builtin_ia32_vcvtss2si64,
__builtin_ia32_vcvtss2usi32, __builtin_ia32_vcvtss2usi64,
__builtin_ia32_vcvttsd2si32, __builtin_ia32_vcvttsd2si64,
__builtin_ia32_vcvttsd2usi32, __builtin_ia32_vcvttsd2usi64,
__builtin_ia32_vcvttss2si32, __builtin_ia32_vcvttss2si64,
__builtin_ia32_vcvttss2usi32, __builtin_ia32_vcvttss2usi64,
__builtin_ia32_vfmaddpd512_mask, __builtin_ia32_vfmaddpd512_mask3,
__builtin_ia32_vfmaddpd512_maskz, __builtin_ia32_vfmaddps512_mask,
__builtin_ia32_vfmaddps512_mask3, __builtin_ia32_vfmaddps512_maskz,
__builtin_ia32_vfmaddsd3_mask, __builtin_ia32_vfmaddsd3_mask3,
__builtin_ia32_vfmaddsd3_maskz, __builtin_ia32_vfmaddss3_mask,
__builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
__builtin_ia32_vfmaddsubpd512_mask,
__builtin_ia32_vfmaddsubpd512_mask3,
__builtin_ia32_vfmaddsubpd512_maskz,
__builtin_ia32_vfmaddsubps512_mask,
__builtin_ia32_vfmaddsubps512_mask3,
__builtin_ia32_vfmaddsubps512_maskz,
__builtin_ia32_vfmsubaddpd512_mask3,
__builtin_ia32_vfmsubaddps512_mask3, __builtin_ia32_vfmsubpd512_mask3,
__builtin_ia32_vfmsubps512_mask3, __builtin_ia32_vfmsubsd3_mask3,
__builtin_ia32_vfmsubss3_mask3, __builtin_ia32_vfnmaddpd512_mask,
__builtin_ia32_vfnmaddps512_mask, __builtin_ia32_vfnmsubpd512_mask,
__builtin_ia32_vfnmsubpd512_mask3, __builtin_ia32_vfnmsubps512_mask,
__builtin_ia32_vfnmsubps512_mask3, __builtin_ia32_exp2pd_mask,
__builtin_ia32_exp2ps_mask, __builtin_ia32_rcp28pd_mask,
__builtin_ia32_rcp28ps_mask, __builtin_ia32_rsqrt28pd_mask,
__builtin_ia32_rsqrt28ps_mask, __builtin_ia32_gathersiv16sf,
__builtin_ia32_gathersiv8df, __builtin_ia32_gatherdiv16sf,
__builtin_ia32_gatherdiv8df, __builtin_ia32_gathersiv16si,
__builtin_ia32_gathersiv8di, __builtin_ia32_gatherdiv16si,
__builtin_ia32_gatherdiv8di, __builtin_ia32_gatheraltsiv8df ,
__builtin_ia32_gatheraltdiv8sf , __builtin_ia32_gatheraltsiv8di ,
__builtin_ia32_gatheraltdiv8si , __builtin_ia32_scattersiv16sf,
__builtin_ia32_scattersiv8df, __builtin_ia32_scatterdiv16sf,
__builtin_ia32_scatterdiv8df, __builtin_ia32_scattersiv16si,
__builtin_ia32_scattersiv8di, __builtin_ia32_scatterdiv16si,
__builtin_ia32_scatterdiv8di, __builtin_ia32_gatherpfdps,
__builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdps,
__builtin_ia32_scatterpfqps.
(ix86_init_mmx_sse_builtins): Handle builtins with AVX512 embeded
rounding, builtins for AVX512 gathers/scatters.
(ix86_expand_args_builtin): Handle new functions types, add warnings
for masked builtins.
(ix86_erase_embedded_rounding): Handle patterns with embedded rounding.
(ix86_expand_sse_comi_round): Ditto.
(ix86_expand_round_builtin): Ditto.
(ix86_expand_builtin): Handle AVX512's gathers/scatters and kortest{z}.
Call ix86_expand_round_builtin.
* config/i386/immintrin.h: Add avx512fintrin.h, avx512erintrin.h,
avx512pfintrin.h, avx512cdintrin.h.
testsuite/
* gcc.target/i386/avx-1.c: Extend to AVX-512.
* gcc.target/i386/sse-22.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206261 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.target')
-rw-r--r-- | gcc/testsuite/gcc.target/i386/avx-1.c | 175 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/sse-22.c | 424 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/sse-23.c | 175 |
3 files changed, 770 insertions, 4 deletions
diff --git a/gcc/testsuite/gcc.target/i386/avx-1.c b/gcc/testsuite/gcc.target/i386/avx-1.c index 7496746aec8..75b6f04e24b 100644 --- a/gcc/testsuite/gcc.target/i386/avx-1.c +++ b/gcc/testsuite/gcc.target/i386/avx-1.c @@ -166,6 +166,181 @@ /* rtmintrin.h */ #define __builtin_ia32_xabort(I) __builtin_ia32_xabort(0) +/* avx512fintrin.h */ +#define __builtin_ia32_addpd512_mask(A, B, C, D, E) __builtin_ia32_addpd512_mask(A, B, C, D, 1) +#define __builtin_ia32_addps512_mask(A, B, C, D, E) __builtin_ia32_addps512_mask(A, B, C, D, 1) +#define __builtin_ia32_alignd512_mask(A, B, F, D, E) __builtin_ia32_alignd512_mask(A, B, 1, D, E) +#define __builtin_ia32_alignq512_mask(A, B, F, D, E) __builtin_ia32_alignq512_mask(A, B, 1, D, E) +#define __builtin_ia32_cmpd512_mask(A, B, E, D) __builtin_ia32_cmpd512_mask(A, B, 1, D) +#define __builtin_ia32_cmppd512_mask(A, B, F, D, E) __builtin_ia32_cmppd512_mask(A, B, 1, D, 5) +#define __builtin_ia32_cmpps512_mask(A, B, F, D, E) __builtin_ia32_cmpps512_mask(A, B, 1, D, 5) +#define __builtin_ia32_cmpq512_mask(A, B, E, D) __builtin_ia32_cmpq512_mask(A, B, 1, D) +#define __builtin_ia32_cmpsd_mask(A, B, F, D, E) __builtin_ia32_cmpsd_mask(A, B, 1, D, 5) +#define __builtin_ia32_cmpss_mask(A, B, F, D, E) __builtin_ia32_cmpss_mask(A, B, 1, D, 5) +#define __builtin_ia32_cvtdq2ps512_mask(A, B, C, D) __builtin_ia32_cvtdq2ps512_mask(A, B, C, 1) +#define __builtin_ia32_cvtpd2dq512_mask(A, B, C, D) __builtin_ia32_cvtpd2dq512_mask(A, B, C, 1) +#define __builtin_ia32_cvtpd2ps512_mask(A, B, C, D) __builtin_ia32_cvtpd2ps512_mask(A, B, C, 1) +#define __builtin_ia32_cvtpd2udq512_mask(A, B, C, D) __builtin_ia32_cvtpd2udq512_mask(A, B, C, 1) +#define __builtin_ia32_cvtps2dq512_mask(A, B, C, D) __builtin_ia32_cvtps2dq512_mask(A, B, C, 1) +#define __builtin_ia32_cvtps2pd512_mask(A, B, C, D) __builtin_ia32_cvtps2pd512_mask(A, B, C, 5) +#define __builtin_ia32_cvtps2udq512_mask(A, B, C, D) __builtin_ia32_cvtps2udq512_mask(A, B, C, 1) +#define __builtin_ia32_cvtsd2ss_mask(A, B, C, D, E) __builtin_ia32_cvtsd2ss_mask(A, B, C, D, 1) +#define __builtin_ia32_cvtsi2sd64(A, B, C) __builtin_ia32_cvtsi2sd64(A, B, 1) +#define __builtin_ia32_cvtsi2ss32(A, B, C) __builtin_ia32_cvtsi2ss32(A, B, 1) +#define __builtin_ia32_cvtsi2ss64(A, B, C) __builtin_ia32_cvtsi2ss64(A, B, 1) +#define __builtin_ia32_cvtss2sd_mask(A, B, C, D, E) __builtin_ia32_cvtss2sd_mask(A, B, C, D, 5) +#define __builtin_ia32_cvttpd2dq512_mask(A, B, C, D) __builtin_ia32_cvttpd2dq512_mask(A, B, C, 5) +#define __builtin_ia32_cvttpd2udq512_mask(A, B, C, D) __builtin_ia32_cvttpd2udq512_mask(A, B, C, 5) +#define __builtin_ia32_cvttps2dq512_mask(A, B, C, D) __builtin_ia32_cvttps2dq512_mask(A, B, C, 5) +#define __builtin_ia32_cvttps2udq512_mask(A, B, C, D) __builtin_ia32_cvttps2udq512_mask(A, B, C, 5) +#define __builtin_ia32_cvtudq2ps512_mask(A, B, C, D) __builtin_ia32_cvtudq2ps512_mask(A, B, C, 1) +#define __builtin_ia32_cvtusi2sd64(A, B, C) __builtin_ia32_cvtusi2sd64(A, B, 1) +#define __builtin_ia32_cvtusi2ss32(A, B, C) __builtin_ia32_cvtusi2ss32(A, B, 1) +#define __builtin_ia32_cvtusi2ss64(A, B, C) __builtin_ia32_cvtusi2ss64(A, B, 1) +#define __builtin_ia32_divpd512_mask(A, B, C, D, E) __builtin_ia32_divpd512_mask(A, B, C, D, 1) +#define __builtin_ia32_divps512_mask(A, B, C, D, E) __builtin_ia32_divps512_mask(A, B, C, D, 1) +#define __builtin_ia32_extractf32x4_mask(A, E, C, D) __builtin_ia32_extractf32x4_mask(A, 1, C, D) +#define __builtin_ia32_extractf64x4_mask(A, E, C, D) __builtin_ia32_extractf64x4_mask(A, 1, C, D) +#define __builtin_ia32_extracti32x4_mask(A, E, C, D) __builtin_ia32_extracti32x4_mask(A, 1, C, D) +#define __builtin_ia32_extracti64x4_mask(A, E, C, D) __builtin_ia32_extracti64x4_mask(A, 1, C, D) +#define __builtin_ia32_fixupimmpd512_mask(A, B, C, I, E, F) __builtin_ia32_fixupimmpd512_mask(A, B, C, 1, E, 5) +#define __builtin_ia32_fixupimmpd512_maskz(A, B, C, I, E, F) __builtin_ia32_fixupimmpd512_maskz(A, B, C, 1, E, 5) +#define __builtin_ia32_fixupimmps512_mask(A, B, C, I, E, F) __builtin_ia32_fixupimmps512_mask(A, B, C, 1, E, 5) +#define __builtin_ia32_fixupimmps512_maskz(A, B, C, I, E, F) __builtin_ia32_fixupimmps512_maskz(A, B, C, 1, E, 5) +#define __builtin_ia32_fixupimmsd_mask(A, B, C, I, E, F) __builtin_ia32_fixupimmsd_mask(A, B, C, 1, E, 5) +#define __builtin_ia32_fixupimmsd_maskz(A, B, C, I, E, F) __builtin_ia32_fixupimmsd_maskz(A, B, C, 1, E, 5) +#define __builtin_ia32_fixupimmss_mask(A, B, C, I, E, F) __builtin_ia32_fixupimmss_mask(A, B, C, 1, E, 5) +#define __builtin_ia32_fixupimmss_maskz(A, B, C, I, E, F) __builtin_ia32_fixupimmss_maskz(A, B, C, 1, E, 5) +#define __builtin_ia32_gatherdiv8df(A, B, C, D, F) __builtin_ia32_gatherdiv8df(A, B, C, D, 1) +#define __builtin_ia32_gatherdiv8di(A, B, C, D, F) __builtin_ia32_gatherdiv8di(A, B, C, D, 1) +#define __builtin_ia32_gatherdiv16sf(A, B, C, D, F) __builtin_ia32_gatherdiv16sf(A, B, C, D, 1) +#define __builtin_ia32_gatherdiv16si(A, B, C, D, F) __builtin_ia32_gatherdiv16si(A, B, C, D, 1) +#define __builtin_ia32_gathersiv16sf(A, B, C, D, F) __builtin_ia32_gathersiv16sf(A, B, C, D, 1) +#define __builtin_ia32_gathersiv16si(A, B, C, D, F) __builtin_ia32_gathersiv16si(A, B, C, D, 1) +#define __builtin_ia32_gathersiv8df(A, B, C, D, F) __builtin_ia32_gathersiv8df(A, B, C, D, 1) +#define __builtin_ia32_gathersiv8di(A, B, C, D, F) __builtin_ia32_gathersiv8di(A, B, C, D, 1) +#define __builtin_ia32_getexppd512_mask(A, B, C, D) __builtin_ia32_getexppd512_mask(A, B, C, 5) +#define __builtin_ia32_getexpps512_mask(A, B, C, D) __builtin_ia32_getexpps512_mask(A, B, C, 5) +#define __builtin_ia32_getmantpd512_mask(A, F, C, D, E) __builtin_ia32_getmantpd512_mask(A, 1, C, D, 5) +#define __builtin_ia32_getmantps512_mask(A, F, C, D, E) __builtin_ia32_getmantps512_mask(A, 1, C, D, 5) +#define __builtin_ia32_insertf32x4_mask(A, B, F, D, E) __builtin_ia32_insertf32x4_mask(A, B, 1, D, E) +#define __builtin_ia32_insertf64x4_mask(A, B, F, D, E) __builtin_ia32_insertf64x4_mask(A, B, 1, D, E) +#define __builtin_ia32_inserti32x4_mask(A, B, F, D, E) __builtin_ia32_inserti32x4_mask(A, B, 1, D, E) +#define __builtin_ia32_inserti64x4_mask(A, B, F, D, E) __builtin_ia32_inserti64x4_mask(A, B, 1, D, E) +#define __builtin_ia32_maxpd512_mask(A, B, C, D, E) __builtin_ia32_maxpd512_mask(A, B, C, D, 5) +#define __builtin_ia32_maxps512_mask(A, B, C, D, E) __builtin_ia32_maxps512_mask(A, B, C, D, 5) +#define __builtin_ia32_minpd512_mask(A, B, C, D, E) __builtin_ia32_minpd512_mask(A, B, C, D, 5) +#define __builtin_ia32_minps512_mask(A, B, C, D, E) __builtin_ia32_minps512_mask(A, B, C, D, 5) +#define __builtin_ia32_mulpd512_mask(A, B, C, D, E) __builtin_ia32_mulpd512_mask(A, B, C, D, 1) +#define __builtin_ia32_mulps512_mask(A, B, C, D, E) __builtin_ia32_mulps512_mask(A, B, C, D, 1) +#define __builtin_ia32_permdf512_mask(A, E, C, D) __builtin_ia32_permdf512_mask(A, 1, C, D) +#define __builtin_ia32_permdi512_mask(A, E, C, D) __builtin_ia32_permdi512_mask(A, 1, C, D) +#define __builtin_ia32_prold512_mask(A, E, C, D) __builtin_ia32_prold512_mask(A, 1, C, D) +#define __builtin_ia32_prolq512_mask(A, E, C, D) __builtin_ia32_prolq512_mask(A, 1, C, D) +#define __builtin_ia32_prord512_mask(A, E, C, D) __builtin_ia32_prord512_mask(A, 1, C, D) +#define __builtin_ia32_prorq512_mask(A, E, C, D) __builtin_ia32_prorq512_mask(A, 1, C, D) +#define __builtin_ia32_pshufd512_mask(A, E, C, D) __builtin_ia32_pshufd512_mask(A, 1, C, D) +#define __builtin_ia32_pslldi512_mask(A, E, C, D) __builtin_ia32_pslldi512_mask(A, 1, C, D) +#define __builtin_ia32_psllqi512_mask(A, E, C, D) __builtin_ia32_psllqi512_mask(A, 1, C, D) +#define __builtin_ia32_psradi512_mask(A, E, C, D) __builtin_ia32_psradi512_mask(A, 1, C, D) +#define __builtin_ia32_psraqi512_mask(A, E, C, D) __builtin_ia32_psraqi512_mask(A, 1, C, D) +#define __builtin_ia32_psrldi512_mask(A, E, C, D) __builtin_ia32_psrldi512_mask(A, 1, C, D) +#define __builtin_ia32_psrlqi512_mask(A, E, C, D) __builtin_ia32_psrlqi512_mask(A, 1, C, D) +#define __builtin_ia32_pternlogd512_mask(A, B, C, F, E) __builtin_ia32_pternlogd512_mask(A, B, C, 1, E) +#define __builtin_ia32_pternlogd512_maskz(A, B, C, F, E) __builtin_ia32_pternlogd512_maskz(A, B, C, 1, E) +#define __builtin_ia32_pternlogq512_mask(A, B, C, F, E) __builtin_ia32_pternlogq512_mask(A, B, C, 1, E) +#define __builtin_ia32_pternlogq512_maskz(A, B, C, F, E) __builtin_ia32_pternlogq512_maskz(A, B, C, 1, E) +#define __builtin_ia32_rndscalepd_mask(A, F, C, D, E) __builtin_ia32_rndscalepd_mask(A, 1, C, D, 5) +#define __builtin_ia32_rndscaleps_mask(A, F, C, D, E) __builtin_ia32_rndscaleps_mask(A, 1, C, D, 5) +#define __builtin_ia32_rndscalesd_mask(A, B, I, D, E, F) __builtin_ia32_rndscalesd_mask(A, B, 1, D, E, 5) +#define __builtin_ia32_rndscaless_mask(A, B, I, D, E, F) __builtin_ia32_rndscaless_mask(A, B, 1, D, E, 5) +#define __builtin_ia32_scalefpd512_mask(A, B, C, D, E) __builtin_ia32_scalefpd512_mask(A, B, C, D, 1) +#define __builtin_ia32_scalefps512_mask(A, B, C, D, E) __builtin_ia32_scalefps512_mask(A, B, C, D, 1) +#define __builtin_ia32_scatterdiv8df(A, B, C, D, F) __builtin_ia32_scatterdiv8df(A, B, C, D, 1) +#define __builtin_ia32_scatterdiv8di(A, B, C, D, F) __builtin_ia32_scatterdiv8di(A, B, C, D, 1) +#define __builtin_ia32_scatterdiv16sf(A, B, C, D, F) __builtin_ia32_scatterdiv16sf(A, B, C, D, 1) +#define __builtin_ia32_scatterdiv16si(A, B, C, D, F) __builtin_ia32_scatterdiv16si(A, B, C, D, 1) +#define __builtin_ia32_scattersiv16sf(A, B, C, D, F) __builtin_ia32_scattersiv16sf(A, B, C, D, 1) +#define __builtin_ia32_scattersiv16si(A, B, C, D, F) __builtin_ia32_scattersiv16si(A, B, C, D, 1) +#define __builtin_ia32_scattersiv8df(A, B, C, D, F) __builtin_ia32_scattersiv8df(A, B, C, D, 1) +#define __builtin_ia32_scattersiv8di(A, B, C, D, F) __builtin_ia32_scattersiv8di(A, B, C, D, 1) +#define __builtin_ia32_shuf_f32x4_mask(A, B, F, D, E) __builtin_ia32_shuf_f32x4_mask(A, B, 1, D, E) +#define __builtin_ia32_shuf_f64x2_mask(A, B, F, D, E) __builtin_ia32_shuf_f64x2_mask(A, B, 1, D, E) +#define __builtin_ia32_shuf_i32x4_mask(A, B, F, D, E) __builtin_ia32_shuf_i32x4_mask(A, B, 1, D, E) +#define __builtin_ia32_shuf_i64x2_mask(A, B, F, D, E) __builtin_ia32_shuf_i64x2_mask(A, B, 1, D, E) +#define __builtin_ia32_shufpd512_mask(A, B, F, D, E) __builtin_ia32_shufpd512_mask(A, B, 1, D, E) +#define __builtin_ia32_shufps512_mask(A, B, F, D, E) __builtin_ia32_shufps512_mask(A, B, 1, D, E) +#define __builtin_ia32_sqrtpd512_mask(A, B, C, D) __builtin_ia32_sqrtpd512_mask(A, B, C, 1) +#define __builtin_ia32_sqrtps512_mask(A, B, C, D) __builtin_ia32_sqrtps512_mask(A, B, C, 1) +#define __builtin_ia32_sqrtsd_mask(A, B, C, D, E) __builtin_ia32_sqrtsd_mask(A, B, C, D, 1) +#define __builtin_ia32_sqrtss_mask(A, B, C, D, E) __builtin_ia32_sqrtss_mask(A, B, C, D, 1) +#define __builtin_ia32_subpd512_mask(A, B, C, D, E) __builtin_ia32_subpd512_mask(A, B, C, D, 1) +#define __builtin_ia32_subps512_mask(A, B, C, D, E) __builtin_ia32_subps512_mask(A, B, C, D, 1) +#define __builtin_ia32_ucmpd512_mask(A, B, E, D) __builtin_ia32_ucmpd512_mask(A, B, 1, D) +#define __builtin_ia32_ucmpq512_mask(A, B, E, D) __builtin_ia32_ucmpq512_mask(A, B, 1, D) +#define __builtin_ia32_vcomisd(A, B, C, D) __builtin_ia32_vcomisd(A, B, 1, 5) +#define __builtin_ia32_vcomiss(A, B, C, D) __builtin_ia32_vcomiss(A, B, 1, 5) +#define __builtin_ia32_vcvtph2ps512_mask(A, B, C, D) __builtin_ia32_vcvtph2ps512_mask(A, B, C, 5) +#define __builtin_ia32_vcvtps2ph512_mask(A, E, C, D) __builtin_ia32_vcvtps2ph512_mask(A, 1, C, D) +#define __builtin_ia32_vcvtsd2si32(A, B) __builtin_ia32_vcvtsd2si32(A, 1) +#define __builtin_ia32_vcvtsd2si64(A, B) __builtin_ia32_vcvtsd2si64(A, 1) +#define __builtin_ia32_vcvtsd2usi32(A, B) __builtin_ia32_vcvtsd2usi32(A, 1) +#define __builtin_ia32_vcvtsd2usi64(A, B) __builtin_ia32_vcvtsd2usi64(A, 1) +#define __builtin_ia32_vcvtss2si32(A, B) __builtin_ia32_vcvtss2si32(A, 1) +#define __builtin_ia32_vcvtss2si64(A, B) __builtin_ia32_vcvtss2si64(A, 1) +#define __builtin_ia32_vcvtss2usi32(A, B) __builtin_ia32_vcvtss2usi32(A, 1) +#define __builtin_ia32_vcvtss2usi64(A, B) __builtin_ia32_vcvtss2usi64(A, 1) +#define __builtin_ia32_vcvttsd2si32(A, B) __builtin_ia32_vcvttsd2si32(A, 5) +#define __builtin_ia32_vcvttsd2si64(A, B) __builtin_ia32_vcvttsd2si64(A, 5) +#define __builtin_ia32_vcvttsd2usi32(A, B) __builtin_ia32_vcvttsd2usi32(A, 5) +#define __builtin_ia32_vcvttsd2usi64(A, B) __builtin_ia32_vcvttsd2usi64(A, 5) +#define __builtin_ia32_vcvttss2si32(A, B) __builtin_ia32_vcvttss2si32(A, 5) +#define __builtin_ia32_vcvttss2si64(A, B) __builtin_ia32_vcvttss2si64(A, 5) +#define __builtin_ia32_vcvttss2usi32(A, B) __builtin_ia32_vcvttss2usi32(A, 5) +#define __builtin_ia32_vcvttss2usi64(A, B) __builtin_ia32_vcvttss2usi64(A, 5) +#define __builtin_ia32_vfmaddpd512_mask(A, B, C, D, E) __builtin_ia32_vfmaddpd512_mask(A, B, C, D, 1) +#define __builtin_ia32_vfmaddpd512_mask3(A, B, C, D, E) __builtin_ia32_vfmaddpd512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmaddpd512_maskz(A, B, C, D, E) __builtin_ia32_vfmaddpd512_maskz(A, B, C, D, 1) +#define __builtin_ia32_vfmaddps512_mask(A, B, C, D, E) __builtin_ia32_vfmaddps512_mask(A, B, C, D, 1) +#define __builtin_ia32_vfmaddps512_mask3(A, B, C, D, E) __builtin_ia32_vfmaddps512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmaddps512_maskz(A, B, C, D, E) __builtin_ia32_vfmaddps512_maskz(A, B, C, D, 1) +#define __builtin_ia32_vfmaddsd3_mask(A, B, C, D, E) __builtin_ia32_vfmaddsd3_mask(A, B, C, D, 1) +#define __builtin_ia32_vfmaddsd3_mask3(A, B, C, D, E) __builtin_ia32_vfmaddsd3_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmaddsd3_maskz(A, B, C, D, E) __builtin_ia32_vfmaddsd3_maskz(A, B, C, D, 1) +#define __builtin_ia32_vfmaddss3_mask(A, B, C, D, E) __builtin_ia32_vfmaddss3_mask(A, B, C, D, 1) +#define __builtin_ia32_vfmaddss3_mask3(A, B, C, D, E) __builtin_ia32_vfmaddss3_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmaddss3_maskz(A, B, C, D, E) __builtin_ia32_vfmaddss3_maskz(A, B, C, D, 1) +#define __builtin_ia32_vfmaddsubpd512_mask(A, B, C, D, E) __builtin_ia32_vfmaddsubpd512_mask(A, B, C, D, 1) +#define __builtin_ia32_vfmaddsubpd512_mask3(A, B, C, D, E) __builtin_ia32_vfmaddsubpd512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmaddsubpd512_maskz(A, B, C, D, E) __builtin_ia32_vfmaddsubpd512_maskz(A, B, C, D, 1) +#define __builtin_ia32_vfmaddsubps512_mask(A, B, C, D, E) __builtin_ia32_vfmaddsubps512_mask(A, B, C, D, 1) +#define __builtin_ia32_vfmaddsubps512_mask3(A, B, C, D, E) __builtin_ia32_vfmaddsubps512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmaddsubps512_maskz(A, B, C, D, E) __builtin_ia32_vfmaddsubps512_maskz(A, B, C, D, 1) +#define __builtin_ia32_vfmsubaddpd512_mask3(A, B, C, D, E) __builtin_ia32_vfmsubaddpd512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmsubaddps512_mask3(A, B, C, D, E) __builtin_ia32_vfmsubaddps512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmsubpd512_mask3(A, B, C, D, E) __builtin_ia32_vfmsubpd512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmsubps512_mask3(A, B, C, D, E) __builtin_ia32_vfmsubps512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmsubsd3_mask3(A, B, C, D, E) __builtin_ia32_vfmsubsd3_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmsubss3_mask3(A, B, C, D, E) __builtin_ia32_vfmsubss3_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfnmaddpd512_mask(A, B, C, D, E) __builtin_ia32_vfnmaddpd512_mask(A, B, C, D, 1) +#define __builtin_ia32_vfnmaddps512_mask(A, B, C, D, E) __builtin_ia32_vfnmaddps512_mask(A, B, C, D, 1) +#define __builtin_ia32_vfnmsubpd512_mask(A, B, C, D, E) __builtin_ia32_vfnmsubpd512_mask(A, B, C, D, 1) +#define __builtin_ia32_vfnmsubpd512_mask3(A, B, C, D, E) __builtin_ia32_vfnmsubpd512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfnmsubps512_mask(A, B, C, D, E) __builtin_ia32_vfnmsubps512_mask(A, B, C, D, 1) +#define __builtin_ia32_vfnmsubps512_mask3(A, B, C, D, E) __builtin_ia32_vfnmsubps512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vpermilpd512_mask(A, E, C, D) __builtin_ia32_vpermilpd512_mask(A, 1, C, D) +#define __builtin_ia32_vpermilps512_mask(A, E, C, D) __builtin_ia32_vpermilps512_mask(A, 1, C, D) +#define __builtin_ia32_exp2ps_mask(A, B, C, D) __builtin_ia32_exp2ps_mask(A, B, C, 1) +#define __builtin_ia32_exp2pd_mask(A, B, C, D) __builtin_ia32_exp2pd_mask(A, B, C, 1) +#define __builtin_ia32_rcp28ps_mask(A, B, C, D) __builtin_ia32_exp2ps_mask(A, B, C, 1) +#define __builtin_ia32_rcp28pd_mask(A, B, C, D) __builtin_ia32_exp2pd_mask(A, B, C, 1) +#define __builtin_ia32_rsqrt28ps_mask(A, B, C, D) __builtin_ia32_rsqrt28ps_mask(A, B, C, 1) +#define __builtin_ia32_rsqrt28pd_mask(A, B, C, D) __builtin_ia32_rsqrt28pd_mask(A, B, C, 1) +#define __builtin_ia32_gatherpfdps(A, B, C, D, E) __builtin_ia32_gatherpfdps(A, B, C, 1, 1) +#define __builtin_ia32_gatherpfqps(A, B, C, D, E) __builtin_ia32_gatherpfqps(A, B, C, 1, 1) +#define __builtin_ia32_scatterpfdps(A, B, C, D, E) __builtin_ia32_scatterpfdps(A, B, C, 1, 1) +#define __builtin_ia32_scatterpfqps(A, B, C, D, E) __builtin_ia32_scatterpfqps(A, B, C, 1, 1) + #include <wmmintrin.h> #include <immintrin.h> #include <mm3dnow.h> diff --git a/gcc/testsuite/gcc.target/i386/sse-22.c b/gcc/testsuite/gcc.target/i386/sse-22.c index 8e4c4bd3ebd..6f625ad11c9 100644 --- a/gcc/testsuite/gcc.target/i386/sse-22.c +++ b/gcc/testsuite/gcc.target/i386/sse-22.c @@ -30,6 +30,10 @@ type _CONCAT(_,func) (op1_type A, int const I, int const L) \ { return func (A, imm1, imm2); } +#define test_1y(func, type, op1_type, imm1, imm2, imm3) \ + type _CONCAT(_,func) (op1_type A, int const I, int const L, int const R)\ + { return func (A, imm1, imm2, imm3); } + #define test_2(func, type, op1_type, op2_type, imm) \ type _CONCAT(_,func) (op1_type A, op2_type B, int const I) \ { return func (A, B, imm); } @@ -38,19 +42,64 @@ type _CONCAT(_,func) (op1_type A, op2_type B, int const I, int const L) \ { return func (A, B, imm1, imm2); } +#define test_2y(func, type, op1_type, op2_type, imm1, imm2, imm3) \ + type _CONCAT(_,func) (op1_type A, op2_type B, int const I, int const L,\ + int const R) \ + { return func (A, B, imm1, imm2, imm3); } + +#define test_2vx(func, op1_type, op2_type, imm1, imm2) \ + _CONCAT(_,func) (op1_type A, op2_type B, int const I, int const L) \ + { func (A, B, imm1, imm2); } + #define test_3(func, type, op1_type, op2_type, op3_type, imm) \ type _CONCAT(_,func) (op1_type A, op2_type B, \ op3_type C, int const I) \ { return func (A, B, C, imm); } +#define test_3x(func, type, op1_type, op2_type, op3_type, imm1, imm2) \ + type _CONCAT(_,func) (op1_type A, op2_type B, \ + op3_type C, int const I, int const L) \ + { return func (A, B, C, imm1, imm2); } + +#define test_3y(func, type, op1_type, op2_type, op3_type, imm1, imm2, imm3) \ + type _CONCAT(_,func) (op1_type A, op2_type B, \ + op3_type C, int const I, int const L, int const R) \ + { return func (A, B, C, imm1, imm2, imm3); } + +#define test_3v(func, op1_type, op2_type, op3_type, imm) \ + _CONCAT(_,func) (op1_type A, op2_type B, \ + op3_type C, int const I) \ + { func (A, B, C, imm); } + +#define test_3vx(func, op1_type, op2_type, op3_type, imm1, imm2) \ + _CONCAT(_,func) (op1_type A, op2_type B, \ + op3_type C, int const I, int const L) \ + { func (A, B, C, imm1, imm2); } + #define test_4(func, type, op1_type, op2_type, op3_type, op4_type, imm) \ type _CONCAT(_,func) (op1_type A, op2_type B, \ op3_type C, op4_type D, int const I) \ { return func (A, B, C, D, imm); } +#define test_4x(func, type, op1_type, op2_type, op3_type, op4_type, imm1, imm2) \ + type _CONCAT(_,func) (op1_type A, op2_type B, \ + op3_type C, op4_type D, int const I, int const L) \ + { return func (A, B, C, D, imm1, imm2); } + +#define test_4y(func, type, op1_type, op2_type, op3_type, op4_type, imm1, imm2, imm3) \ + type _CONCAT(_,func) (op1_type A, op2_type B, op3_type C, \ + op4_type D, int const I, int const L, int const R) \ + { return func (A, B, C, D, imm1, imm2, imm3); } + + +#define test_4v(func, op1_type, op2_type, op3_type, op4_type, imm) \ + _CONCAT(_,func) (op1_type A, op2_type B, \ + op3_type C, op4_type D, int const I) \ + { func (A, B, C, D, imm); } + #ifndef DIFFERENT_PRAGMAS -#pragma GCC target ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tbm,lwp,fsgsbase,rdrnd,f16c,rtm,rdseed,prfchw,adx,fxsr,xsaveopt") +#pragma GCC target ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tbm,lwp,fsgsbase,rdrnd,f16c,rtm,rdseed,prfchw,adx,fxsr,xsaveopt,avx512f,avx512pf,avx512er,avx512cd") #endif /* Following intrinsics require immediate arguments. They @@ -163,9 +212,9 @@ test_4 (_mm_cmpestro, int, __m128i, int, __m128i, int, 1) test_4 (_mm_cmpestrs, int, __m128i, int, __m128i, int, 1) test_4 (_mm_cmpestrz, int, __m128i, int, __m128i, int, 1) -/* immintrin.h (AVX/AVX2/RDRND/FSGSBASE/F16C/RTM) */ +/* immintrin.h (AVX/AVX2/RDRND/FSGSBASE/F16C/RTM/AVX512F) */ #ifdef DIFFERENT_PRAGMAS -#pragma GCC target ("avx,avx2,rdrnd,fsgsbase,f16c,rtm") +#pragma GCC target ("avx,avx2,rdrnd,fsgsbase,f16c,rtm,avx512f,avx512er,avx512cd,avx512pf") #endif #include <immintrin.h> test_1 (_cvtss_sh, unsigned short, float, 1) @@ -248,6 +297,375 @@ test_2 ( _mm256_i64gather_epi32, __m128i, int const *, __m256i, 1) /* rtmintrin.h */ test_0 ( _xabort, void, 1) +/* avx512fintrin.h */ +test_1 (_mm512_cvt_roundepi32_ps, __m512, __m512i, 1) +test_1 (_mm512_cvt_roundepu32_ps, __m512, __m512i, 1) +test_1 (_mm512_cvt_roundpd_epi32, __m256i, __m512d, 1) +test_1 (_mm512_cvt_roundpd_epu32, __m256i, __m512d, 1) +test_1 (_mm512_cvt_roundpd_ps, __m256, __m512d, 1) +test_1 (_mm512_cvt_roundph_ps, __m512, __m256i, 5) +test_1 (_mm512_cvt_roundps_epi32, __m512i, __m512, 1) +test_1 (_mm512_cvt_roundps_epu32, __m512i, __m512, 1) +test_1 (_mm512_cvt_roundps_pd, __m512d, __m256, 5) +test_1 (_mm512_cvtps_ph, __m256i, __m512, 1) +test_1 (_mm512_cvtt_roundpd_epi32, __m256i, __m512d, 5) +test_1 (_mm512_cvtt_roundpd_epu32, __m256i, __m512d, 5) +test_1 (_mm512_cvtt_roundps_epi32, __m512i, __m512, 5) +test_1 (_mm512_cvtt_roundps_epu32, __m512i, __m512, 5) +test_1 (_mm512_extractf32x4_ps, __m128, __m512, 1) +test_1 (_mm512_extractf64x4_pd, __m256d, __m512d, 1) +test_1 (_mm512_extracti32x4_epi32, __m128i, __m512i, 1) +test_1 (_mm512_extracti64x4_epi64, __m256i, __m512i, 1) +test_1 (_mm512_getexp_round_pd, __m512d, __m512d, 5) +test_1 (_mm512_getexp_round_ps, __m512, __m512, 5) +test_1y (_mm512_getmant_round_pd, __m512d, __m512d, 1, 1, 5) +test_1y (_mm512_getmant_round_ps, __m512, __m512, 1, 1, 5) +test_1 (_mm512_permute_pd, __m512d, __m512d, 1) +test_1 (_mm512_permute_ps, __m512, __m512, 1) +test_1 (_mm512_permutex_epi64, __m512i, __m512i, 1) +test_1 (_mm512_permutex_pd, __m512d, __m512d, 1) +test_1 (_mm512_rol_epi32, __m512i, __m512i, 1) +test_1 (_mm512_rol_epi64, __m512i, __m512i, 1) +test_1 (_mm512_ror_epi32, __m512i, __m512i, 1) +test_1 (_mm512_ror_epi64, __m512i, __m512i, 1) +test_1 (_mm512_shuffle_epi32, __m512i, __m512i, 1) +test_1 (_mm512_slli_epi32, __m512i, __m512i, 1) +test_1 (_mm512_slli_epi64, __m512i, __m512i, 1) +test_1 (_mm512_sqrt_round_pd, __m512d, __m512d, 1) +test_1 (_mm512_sqrt_round_ps, __m512, __m512, 1) +test_1 (_mm512_srai_epi32, __m512i, __m512i, 1) +test_1 (_mm512_srai_epi64, __m512i, __m512i, 1) +test_1 (_mm512_srli_epi32, __m512i, __m512i, 1) +test_1 (_mm512_srli_epi64, __m512i, __m512i, 1) +test_1 (_mm_cvt_roundsd_i32, int, __m128d, 1) +test_1 (_mm_cvt_roundsd_u32, unsigned, __m128d, 1) +test_1 (_mm_cvt_roundss_i32, int, __m128, 1) +test_1 (_mm_cvt_roundss_u32, unsigned, __m128, 1) +test_1 (_mm_cvtt_roundsd_i32, int, __m128d, 5) +test_1 (_mm_cvtt_roundsd_u32, unsigned, __m128d, 5) +test_1 (_mm_cvtt_roundss_i32, int, __m128, 5) +test_1 (_mm_cvtt_roundss_u32, unsigned, __m128, 5) +test_1x (_mm512_getmant_pd, __m512d, __m512d, 1, 1) +test_1x (_mm512_getmant_ps, __m512, __m512, 1, 1) +test_1x (_mm_cvt_roundi32_ss, __m128, __m128, 1, 1) +test_2 (_mm512_add_round_pd, __m512d, __m512d, __m512d, 1) +test_2 (_mm512_add_round_ps, __m512, __m512, __m512, 1) +test_2 (_mm512_alignr_epi32, __m512i, __m512i, __m512i, 1) +test_2 (_mm512_alignr_epi64, __m512i, __m512i, __m512i, 1) +test_2 (_mm512_cmp_epi32_mask, __mmask16, __m512i, __m512i, 1) +test_2 (_mm512_cmp_epi64_mask, __mmask8, __m512i, __m512i, 1) +test_2 (_mm512_cmp_epu32_mask, __mmask16, __m512i, __m512i, 1) +test_2 (_mm512_cmp_epu64_mask, __mmask8, __m512i, __m512i, 1) +test_2 (_mm512_cmp_pd_mask, __mmask8, __m512d, __m512d, 1) +test_2 (_mm512_cmp_ps_mask, __mmask16, __m512, __m512, 1) +test_2 (_mm512_div_round_pd, __m512d, __m512d, __m512d, 1) +test_2 (_mm512_div_round_ps, __m512, __m512, __m512, 1) +test_2 (_mm512_i32gather_epi32, __m512i, __m512i, void const *, 1) +test_2 (_mm512_i32gather_epi64, __m512i, __m256i, void const *, 1) +test_2 (_mm512_i32gather_pd, __m512d, __m256i, void const *, 1) +test_2 (_mm512_i32gather_ps, __m512, __m512i, void const *, 1) +test_2 (_mm512_i64gather_epi32, __m256i, __m512i, void const *, 1) +test_2 (_mm512_i64gather_epi64, __m512i, __m512i, void const *, 1) +test_2 (_mm512_i64gather_pd, __m512d, __m512i, void const *, 1) +test_2 (_mm512_i64gather_ps, __m256, __m512i, void const *, 1) +test_2 (_mm512_insertf32x4, __m512, __m512, __m128, 1) +test_2 (_mm512_insertf64x4, __m512d, __m512d, __m256d, 1) +test_2 (_mm512_inserti32x4, __m512i, __m512i, __m128i, 1) +test_2 (_mm512_inserti64x4, __m512i, __m512i, __m256i, 1) +test_2 (_mm512_maskz_cvt_roundepi32_ps, __m512, __mmask16, __m512i, 1) +test_2 (_mm512_maskz_cvt_roundepu32_ps, __m512, __mmask16, __m512i, 1) +test_2 (_mm512_maskz_cvt_roundpd_epi32, __m256i, __mmask8, __m512d, 1) +test_2 (_mm512_maskz_cvt_roundpd_epu32, __m256i, __mmask8, __m512d, 1) +test_2 (_mm512_maskz_cvt_roundpd_ps, __m256, __mmask8, __m512d, 1) +test_2 (_mm512_maskz_cvt_roundph_ps, __m512, __mmask16, __m256i, 5) +test_2 (_mm512_maskz_cvt_roundps_epi32, __m512i, __mmask16, __m512, 1) +test_2 (_mm512_maskz_cvt_roundps_epu32, __m512i, __mmask16, __m512, 1) +test_2 (_mm512_maskz_cvt_roundps_pd, __m512d, __mmask8, __m256, 5) +test_2 (_mm512_maskz_cvtps_ph, __m256i, __mmask16, __m512, 1) +test_2 (_mm512_maskz_cvtt_roundpd_epi32, __m256i, __mmask8, __m512d, 5) +test_2 (_mm512_maskz_cvtt_roundpd_epu32, __m256i, __mmask8, __m512d, 5) +test_2 (_mm512_maskz_cvtt_roundps_epi32, __m512i, __mmask16, __m512, 5) +test_2 (_mm512_maskz_cvtt_roundps_epu32, __m512i, __mmask16, __m512, 5) +test_2 (_mm512_maskz_extractf32x4_ps, __m128, __mmask8, __m512, 1) +test_2 (_mm512_maskz_extractf64x4_pd, __m256d, __mmask8, __m512d, 1) +test_2 (_mm512_maskz_extracti32x4_epi32, __m128i, __mmask8, __m512i, 1) +test_2 (_mm512_maskz_extracti64x4_epi64, __m256i, __mmask8, __m512i, 1) +test_2 (_mm512_maskz_getexp_round_pd, __m512d, __mmask8, __m512d, 5) +test_2 (_mm512_maskz_getexp_round_ps, __m512, __mmask16, __m512, 5) +test_2y (_mm512_maskz_getmant_round_pd, __m512d, __mmask8, __m512d, 1, 1, 5) +test_2y (_mm512_maskz_getmant_round_ps, __m512, __mmask16, __m512, 1, 1, 5) +test_2 (_mm512_maskz_permute_pd, __m512d, __mmask8, __m512d, 1) +test_2 (_mm512_maskz_permute_ps, __m512, __mmask16, __m512, 1) +test_2 (_mm512_maskz_permutex_epi64, __m512i, __mmask8, __m512i, 1) +test_2 (_mm512_maskz_permutex_pd, __m512d, __mmask8, __m512d, 1) +test_2 (_mm512_maskz_rol_epi32, __m512i, __mmask16, __m512i, 1) +test_2 (_mm512_maskz_rol_epi64, __m512i, __mmask8, __m512i, 1) +test_2 (_mm512_maskz_ror_epi32, __m512i, __mmask16, __m512i, 1) +test_2 (_mm512_maskz_ror_epi64, __m512i, __mmask8, __m512i, 1) +test_2 (_mm512_maskz_shuffle_epi32, __m512i, __mmask16, __m512i, 1) +test_2 (_mm512_maskz_slli_epi32, __m512i, __mmask16, __m512i, 1) +test_2 (_mm512_maskz_slli_epi64, __m512i, __mmask8, __m512i, 1) +test_2 (_mm512_maskz_sqrt_round_pd, __m512d, __mmask8, __m512d, 1) +test_2 (_mm512_maskz_sqrt_round_ps, __m512, __mmask16, __m512, 1) +test_2 (_mm512_maskz_srai_epi32, __m512i, __mmask16, __m512i, 1) +test_2 (_mm512_maskz_srai_epi64, __m512i, __mmask8, __m512i, 1) +test_2 (_mm512_maskz_srli_epi32, __m512i, __mmask16, __m512i, 1) +test_2 (_mm512_maskz_srli_epi64, __m512i, __mmask8, __m512i, 1) +test_2 (_mm512_max_round_pd, __m512d, __m512d, __m512d, 5) +test_2 (_mm512_max_round_ps, __m512, __m512, __m512, 5) +test_2 (_mm512_min_round_pd, __m512d, __m512d, __m512d, 5) +test_2 (_mm512_min_round_ps, __m512, __m512, __m512, 5) +test_2 (_mm512_mul_round_pd, __m512d, __m512d, __m512d, 1) +test_2 (_mm512_mul_round_ps, __m512, __m512, __m512, 1) +test_2 (_mm512_scalef_round_pd, __m512d, __m512d, __m512d, 1) +test_2 (_mm512_scalef_round_ps, __m512, __m512, __m512, 1) +test_2 (_mm512_shuffle_f32x4, __m512, __m512, __m512, 1) +test_2 (_mm512_shuffle_f64x2, __m512d, __m512d, __m512d, 1) +test_2 (_mm512_shuffle_i32x4, __m512i, __m512i, __m512i, 1) +test_2 (_mm512_shuffle_i64x2, __m512i, __m512i, __m512i, 1) +test_2 (_mm512_shuffle_pd, __m512d, __m512d, __m512d, 1) +test_2 (_mm512_shuffle_ps, __m512, __m512, __m512, 1) +test_2 (_mm512_sub_round_pd, __m512d, __m512d, __m512d, 1) +test_2 (_mm512_sub_round_ps, __m512, __m512, __m512, 1) +test_2 (_mm_cmp_sd_mask, __mmask8, __m128d, __m128d, 1) +test_2 (_mm_cmp_ss_mask, __mmask8, __m128, __m128, 1) +#ifdef __x86_64__ +test_2 (_mm_cvt_roundi64_sd, __m128d, __m128d, long long, 1) +test_2 (_mm_cvt_roundi64_ss, __m128, __m128, long long, 1) +#endif +test_2 (_mm_cvt_roundu32_ss, __m128, __m128, unsigned, 1) +#ifdef __x86_64__ +test_2 (_mm_cvt_roundu64_sd, __m128d, __m128d, unsigned long long, 1) +test_2 (_mm_cvt_roundu64_ss, __m128, __m128, unsigned long long, 1) +#endif +test_2x (_mm512_cmp_round_pd_mask, __mmask8, __m512d, __m512d, 1, 5) +test_2x (_mm512_cmp_round_ps_mask, __mmask16, __m512, __m512, 1, 5) +test_2x (_mm512_maskz_roundscale_round_pd, __m512d, __mmask8, __m512d, 1, 5) +test_2x (_mm512_maskz_roundscale_round_ps, __m512, __mmask16, __m512, 1, 5) +test_2x (_mm_cmp_round_sd_mask, __mmask8, __m128d, __m128d, 1, 5) +test_2x (_mm_cmp_round_ss_mask, __mmask8, __m128, __m128, 1, 5) +test_2x (_mm_comi_round_sd, int, __m128d, __m128d, 1, 5) +test_2x (_mm_comi_round_ss, int, __m128, __m128, 1, 5) +test_3 (_mm512_fmadd_round_pd, __m512d, __m512d, __m512d, __m512d, 1) +test_3 (_mm512_fmadd_round_ps, __m512, __m512, __m512, __m512, 1) +test_3 (_mm512_fmaddsub_round_pd, __m512d, __m512d, __m512d, __m512d, 1) +test_3 (_mm512_fmaddsub_round_ps, __m512, __m512, __m512, __m512, 1) +test_3 (_mm512_fmsub_round_pd, __m512d, __m512d, __m512d, __m512d, 1) +test_3 (_mm512_fmsub_round_ps, __m512, __m512, __m512, __m512, 1) +test_3 (_mm512_fmsubadd_round_pd, __m512d, __m512d, __m512d, __m512d, 1) +test_3 (_mm512_fmsubadd_round_ps, __m512, __m512, __m512, __m512, 1) +test_3 (_mm512_fnmadd_round_pd, __m512d, __m512d, __m512d, __m512d, 1) +test_3 (_mm512_fnmadd_round_ps, __m512, __m512, __m512, __m512, 1) +test_3 (_mm512_fnmsub_round_pd, __m512d, __m512d, __m512d, __m512d, 1) +test_3 (_mm512_fnmsub_round_ps, __m512, __m512, __m512, __m512, 1) +test_3 (_mm512_mask_cmp_epi32_mask, __mmask16, __mmask16, __m512i, __m512i, 1) +test_3 (_mm512_mask_cmp_epi64_mask, __mmask8, __mmask8, __m512i, __m512i, 1) +test_3 (_mm512_mask_cmp_epu32_mask, __mmask16, __mmask16, __m512i, __m512i, 1) +test_3 (_mm512_mask_cmp_epu64_mask, __mmask8, __mmask8, __m512i, __m512i, 1) +test_3 (_mm512_mask_cmp_pd_mask, __mmask8, __mmask8, __m512d, __m512d, 1) +test_3 (_mm512_mask_cmp_ps_mask, __mmask16, __mmask16, __m512, __m512, 1) +test_3 (_mm512_mask_cvt_roundepi32_ps, __m512, __m512, __mmask16, __m512i, 1) +test_3 (_mm512_mask_cvt_roundepu32_ps, __m512, __m512, __mmask16, __m512i, 1) +test_3 (_mm512_mask_cvt_roundpd_epi32, __m256i, __m256i, __mmask8, __m512d, 1) +test_3 (_mm512_mask_cvt_roundpd_epu32, __m256i, __m256i, __mmask8, __m512d, 1) +test_3 (_mm512_mask_cvt_roundpd_ps, __m256, __m256, __mmask8, __m512d, 1) +test_3 (_mm512_mask_cvt_roundph_ps, __m512, __m512, __mmask16, __m256i, 5) +test_3 (_mm512_mask_cvt_roundps_epi32, __m512i, __m512i, __mmask16, __m512, 1) +test_3 (_mm512_mask_cvt_roundps_epu32, __m512i, __m512i, __mmask16, __m512, 1) +test_3 (_mm512_mask_cvt_roundps_pd, __m512d, __m512d, __mmask8, __m256, 5) +test_3 (_mm512_mask_cvtps_ph, __m256i, __m256i, __mmask16, __m512, 1) +test_3 (_mm512_mask_cvtt_roundpd_epi32, __m256i, __m256i, __mmask8, __m512d, 5) +test_3 (_mm512_mask_cvtt_roundpd_epu32, __m256i, __m256i, __mmask8, __m512d, 5) +test_3 (_mm512_mask_cvtt_roundps_epi32, __m512i, __m512i, __mmask16, __m512, 5) +test_3 (_mm512_mask_cvtt_roundps_epu32, __m512i, __m512i, __mmask16, __m512, 5) +test_3 (_mm512_mask_extractf32x4_ps, __m128, __m128, __mmask8, __m512, 1) +test_3 (_mm512_mask_extractf64x4_pd, __m256d, __m256d, __mmask8, __m512d, 1) +test_3 (_mm512_mask_extracti32x4_epi32, __m128i, __m128i, __mmask8, __m512i, 1) +test_3 (_mm512_mask_extracti64x4_epi64, __m256i, __m256i, __mmask8, __m512i, 1) +test_3 (_mm512_mask_getexp_round_pd, __m512d, __m512d, __mmask8, __m512d, 5) +test_3 (_mm512_mask_getexp_round_ps, __m512, __m512, __mmask16, __m512, 5) +test_3y (_mm512_mask_getmant_round_pd, __m512d, __m512d, __mmask8, __m512d, 1, 1, 5) +test_3y (_mm512_mask_getmant_round_ps, __m512, __m512, __mmask16, __m512, 1, 1, 5) +test_3 (_mm512_mask_permute_pd, __m512d, __m512d, __mmask8, __m512d, 1) +test_3 (_mm512_mask_permute_ps, __m512, __m512, __mmask16, __m512, 1) +test_3 (_mm512_mask_permutex_epi64, __m512i, __m512i, __mmask8, __m512i, 1) +test_3 (_mm512_mask_permutex_pd, __m512d, __m512d, __mmask8, __m512d, 1) +test_3 (_mm512_mask_rol_epi32, __m512i, __m512i, __mmask16, __m512i, 1) +test_3 (_mm512_mask_rol_epi64, __m512i, __m512i, __mmask8, __m512i, 1) +test_3 (_mm512_mask_ror_epi32, __m512i, __m512i, __mmask16, __m512i, 1) +test_3 (_mm512_mask_ror_epi64, __m512i, __m512i, __mmask8, __m512i, 1) +test_3 (_mm512_mask_shuffle_epi32, __m512i, __m512i, __mmask16, __m512i, 1) +test_3 (_mm512_mask_slli_epi32, __m512i, __m512i, __mmask16, __m512i, 1) +test_3 (_mm512_mask_slli_epi64, __m512i, __m512i, __mmask8, __m512i, 1) +test_3 (_mm512_mask_sqrt_round_pd, __m512d, __m512d, __mmask8, __m512d, 1) +test_3 (_mm512_mask_sqrt_round_ps, __m512, __m512, __mmask16, __m512, 1) +test_3 (_mm512_mask_srai_epi32, __m512i, __m512i, __mmask16, __m512i, 1) +test_3 (_mm512_mask_srai_epi64, __m512i, __m512i, __mmask8, __m512i, 1) +test_3 (_mm512_mask_srli_epi32, __m512i, __m512i, __mmask16, __m512i, 1) +test_3 (_mm512_mask_srli_epi64, __m512i, __m512i, __mmask8, __m512i, 1) +test_3 (_mm512_maskz_add_round_pd, __m512d, __mmask8, __m512d, __m512d, 1) +test_3 (_mm512_maskz_add_round_ps, __m512, __mmask16, __m512, __m512, 1) +test_3 (_mm512_maskz_alignr_epi32, __m512i, __mmask16, __m512i, __m512i, 1) +test_3 (_mm512_maskz_alignr_epi64, __m512i, __mmask8, __m512i, __m512i, 1) +test_3 (_mm512_maskz_div_round_pd, __m512d, __mmask8, __m512d, __m512d, 1) +test_3 (_mm512_maskz_div_round_ps, __m512, __mmask16, __m512, __m512, 1) +test_3 (_mm512_maskz_insertf32x4, __m512, __mmask16, __m512, __m128, 1) +test_3 (_mm512_maskz_insertf64x4, __m512d, __mmask8, __m512d, __m256d, 1) +test_3 (_mm512_maskz_inserti32x4, __m512i, __mmask16, __m512i, __m128i, 1) +test_3 (_mm512_maskz_inserti64x4, __m512i, __mmask8, __m512i, __m256i, 1) +test_3 (_mm512_maskz_max_round_pd, __m512d, __mmask8, __m512d, __m512d, 5) +test_3 (_mm512_maskz_max_round_ps, __m512, __mmask16, __m512, __m512, 5) +test_3 (_mm512_maskz_min_round_pd, __m512d, __mmask8, __m512d, __m512d, 5) +test_3 (_mm512_maskz_min_round_ps, __m512, __mmask16, __m512, __m512, 5) +test_3 (_mm512_maskz_mul_round_pd, __m512d, __mmask8, __m512d, __m512d, 1) +test_3 (_mm512_maskz_mul_round_ps, __m512, __mmask16, __m512, __m512, 1) +test_3 (_mm512_maskz_scalef_round_pd, __m512d, __mmask8, __m512d, __m512d, 1) +test_3 (_mm512_maskz_scalef_round_ps, __m512, __mmask16, __m512, __m512, 1) +test_3 (_mm512_maskz_shuffle_f32x4, __m512, __mmask16, __m512, __m512, 1) +test_3 (_mm512_maskz_shuffle_f64x2, __m512d, __mmask8, __m512d, __m512d, 1) +test_3 (_mm512_maskz_shuffle_i32x4, __m512i, __mmask16, __m512i, __m512i, 1) +test_3 (_mm512_maskz_shuffle_i64x2, __m512i, __mmask8, __m512i, __m512i, 1) +test_3 (_mm512_maskz_shuffle_pd, __m512d, __mmask8, __m512d, __m512d, 1) +test_3 (_mm512_maskz_shuffle_ps, __m512, __mmask16, __m512, __m512, 1) +test_3 (_mm512_maskz_sub_round_pd, __m512d, __mmask8, __m512d, __m512d, 1) +test_3 (_mm512_maskz_sub_round_ps, __m512, __mmask16, __m512, __m512, 1) +test_3 (_mm512_ternarylogic_epi32, __m512i, __m512i, __m512i, __m512i, 1) +test_3 (_mm512_ternarylogic_epi64, __m512i, __m512i, __m512i, __m512i, 1) +test_3 (_mm_mask_cmp_sd_mask, __mmask8, __mmask8, __m128d, __m128d, 1) +test_3 (_mm_mask_cmp_ss_mask, __mmask8, __mmask8, __m128, __m128, 1) +test_3v (_mm512_i32scatter_epi32, void *, __m512i, __m512i, 1) +test_3v (_mm512_i32scatter_epi64, void *, __m256i, __m512i, 1) +test_3v (_mm512_i32scatter_pd, void *, __m256i, __m512d, 1) +test_3v (_mm512_i32scatter_ps, void *, __m512i, __m512, 1) +test_3v (_mm512_i64scatter_epi32, void *, __m512i, __m256i, 1) +test_3v (_mm512_i64scatter_epi64, void *, __m512i, __m512i, 1) +test_3v (_mm512_i64scatter_pd, void *, __m512i, __m512d, 1) +test_3v (_mm512_i64scatter_ps, void *, __m512i, __m256, 1) +test_3x (_mm512_mask_roundscale_round_pd, __m512d, __m512d, __mmask8, __m512d, 1, 5) +test_3x (_mm512_mask_roundscale_round_ps, __m512, __m512, __mmask16, __m512, 1, 5) +test_3x (_mm512_mask_cmp_round_pd_mask, __mmask8, __mmask8, __m512d, __m512d, 1, 5) +test_3x (_mm512_mask_cmp_round_ps_mask, __mmask16, __mmask16, __m512, __m512, 1, 5) +test_3x (_mm_fixupimm_round_sd, __m128d, __m128d, __m128d, __m128i, 1, 5) +test_3x (_mm_fixupimm_round_ss, __m128, __m128, __m128, __m128i, 1, 5) +test_3x (_mm_mask_cmp_round_sd_mask, __mmask8, __mmask8, __m128d, __m128d, 1, 5) +test_3x (_mm_mask_cmp_round_ss_mask, __mmask8, __mmask8, __m128, __m128, 1, 5) +test_4 (_mm512_mask3_fmadd_round_pd, __m512d, __m512d, __m512d, __m512d, __mmask8, 1) +test_4 (_mm512_mask3_fmadd_round_ps, __m512, __m512, __m512, __m512, __mmask16, 1) +test_4 (_mm512_mask3_fmaddsub_round_pd, __m512d, __m512d, __m512d, __m512d, __mmask8, 1) +test_4 (_mm512_mask3_fmaddsub_round_ps, __m512, __m512, __m512, __m512, __mmask16, 1) +test_4 (_mm512_mask3_fmsub_round_pd, __m512d, __m512d, __m512d, __m512d, __mmask8, 1) +test_4 (_mm512_mask3_fmsub_round_ps, __m512, __m512, __m512, __m512, __mmask16, 1) +test_4 (_mm512_mask3_fmsubadd_round_pd, __m512d, __m512d, __m512d, __m512d, __mmask8, 1) +test_4 (_mm512_mask3_fmsubadd_round_ps, __m512, __m512, __m512, __m512, __mmask16, 1) +test_4 (_mm512_mask3_fnmadd_round_pd, __m512d, __m512d, __m512d, __m512d, __mmask8, 1) +test_4 (_mm512_mask3_fnmadd_round_ps, __m512, __m512, __m512, __m512, __mmask16, 1) +test_4 (_mm512_mask3_fnmsub_round_pd, __m512d, __m512d, __m512d, __m512d, __mmask8, 1) +test_4 (_mm512_mask3_fnmsub_round_ps, __m512, __m512, __m512, __m512, __mmask16, 1) +test_4 (_mm512_mask_add_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 1) +test_4 (_mm512_mask_add_round_ps, __m512, __m512, __mmask16, __m512, __m512, 1) +test_4 (_mm512_mask_alignr_epi32, __m512i, __m512i, __mmask16, __m512i, __m512i, 1) +test_4 (_mm512_mask_alignr_epi64, __m512i, __m512i, __mmask8, __m512i, __m512i, 1) +test_4 (_mm512_mask_div_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 1) +test_4 (_mm512_mask_div_round_ps, __m512, __m512, __mmask16, __m512, __m512, 1) +test_4 (_mm512_mask_fmadd_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 1) +test_4 (_mm512_mask_fmadd_round_ps, __m512, __m512, __mmask16, __m512, __m512, 1) +test_4 (_mm512_mask_fmaddsub_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 1) +test_4 (_mm512_mask_fmaddsub_round_ps, __m512, __m512, __mmask16, __m512, __m512, 1) +test_4 (_mm512_mask_fmsub_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 1) +test_4 (_mm512_mask_fmsub_round_ps, __m512, __m512, __mmask16, __m512, __m512, 1) +test_4 (_mm512_mask_fmsubadd_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 1) +test_4 (_mm512_mask_fmsubadd_round_ps, __m512, __m512, __mmask16, __m512, __m512, 1) +test_4 (_mm512_mask_fnmadd_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 1) +test_4 (_mm512_mask_fnmadd_round_ps, __m512, __m512, __mmask16, __m512, __m512, 1) +test_4 (_mm512_mask_fnmsub_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 1) +test_4 (_mm512_mask_fnmsub_round_ps, __m512, __m512, __mmask16, __m512, __m512, 1) +test_4 (_mm512_mask_i32gather_epi32, __m512i, __m512i, __mmask16, __m512i, void const *, 1) +test_4 (_mm512_mask_i32gather_epi64, __m512i, __m512i, __mmask8, __m256i, void const *, 1) +test_4 (_mm512_mask_i32gather_pd, __m512d, __m512d, __mmask8, __m256i, void const *, 1) +test_4 (_mm512_mask_i32gather_ps, __m512, __m512, __mmask16, __m512i, void const *, 1) +test_4 (_mm512_mask_i64gather_epi32, __m256i, __m256i, __mmask8, __m512i, void const *, 1) +test_4 (_mm512_mask_i64gather_epi64, __m512i, __m512i, __mmask8, __m512i, void const *, 1) +test_4 (_mm512_mask_i64gather_pd, __m512d, __m512d, __mmask8, __m512i, void const *, 1) +test_4 (_mm512_mask_i64gather_ps, __m256, __m256, __mmask8, __m512i, void const *, 1) +test_4 (_mm512_mask_insertf32x4, __m512, __m512, __mmask16, __m512, __m128, 1) +test_4 (_mm512_mask_insertf64x4, __m512d, __m512d, __mmask8, __m512d, __m256d, 1) +test_4 (_mm512_mask_inserti32x4, __m512i, __m512i, __mmask16, __m512i, __m128i, 1) +test_4 (_mm512_mask_inserti64x4, __m512i, __m512i, __mmask8, __m512i, __m256i, 1) +test_4 (_mm512_mask_max_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 5) +test_4 (_mm512_mask_max_round_ps, __m512, __m512, __mmask16, __m512, __m512, 5) +test_4 (_mm512_mask_min_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 5) +test_4 (_mm512_mask_min_round_ps, __m512, __m512, __mmask16, __m512, __m512, 5) +test_4 (_mm512_mask_mul_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 1) +test_4 (_mm512_mask_mul_round_ps, __m512, __m512, __mmask16, __m512, __m512, 1) +test_4 (_mm512_mask_scalef_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 1) +test_4 (_mm512_mask_scalef_round_ps, __m512, __m512, __mmask16, __m512, __m512, 1) +test_4 (_mm512_mask_shuffle_f32x4, __m512, __m512, __mmask16, __m512, __m512, 1) +test_4 (_mm512_mask_shuffle_f64x2, __m512d, __m512d, __mmask8, __m512d, __m512d, 1) +test_4 (_mm512_mask_shuffle_i32x4, __m512i, __m512i, __mmask16, __m512i, __m512i, 1) +test_4 (_mm512_mask_shuffle_i64x2, __m512i, __m512i, __mmask8, __m512i, __m512i, 1) +test_4 (_mm512_mask_shuffle_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 1) +test_4 (_mm512_mask_shuffle_ps, __m512, __m512, __mmask16, __m512, __m512, 1) +test_4 (_mm512_mask_sub_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 1) +test_4 (_mm512_mask_sub_round_ps, __m512, __m512, __mmask16, __m512, __m512, 1) +test_4 (_mm512_mask_ternarylogic_epi32, __m512i, __m512i, __mmask16, __m512i, __m512i, 1) +test_4 (_mm512_mask_ternarylogic_epi64, __m512i, __m512i, __mmask8, __m512i, __m512i, 1) +test_4 (_mm512_maskz_fmadd_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512d, 1) +test_4 (_mm512_maskz_fmadd_round_ps, __m512, __mmask16, __m512, __m512, __m512, 1) +test_4 (_mm512_maskz_fmaddsub_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512d, 1) +test_4 (_mm512_maskz_fmaddsub_round_ps, __m512, __mmask16, __m512, __m512, __m512, 1) +test_4 (_mm512_maskz_fmsub_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512d, 1) +test_4 (_mm512_maskz_fmsub_round_ps, __m512, __mmask16, __m512, __m512, __m512, 1) +test_4 (_mm512_maskz_fmsubadd_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512d, 1) +test_4 (_mm512_maskz_fmsubadd_round_ps, __m512, __mmask16, __m512, __m512, __m512, 1) +test_4 (_mm512_maskz_fnmadd_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512d, 1) +test_4 (_mm512_maskz_fnmadd_round_ps, __m512, __mmask16, __m512, __m512, __m512, 1) +test_4 (_mm512_maskz_fnmsub_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512d, 1) +test_4 (_mm512_maskz_fnmsub_round_ps, __m512, __mmask16, __m512, __m512, __m512, 1) +test_4 (_mm512_maskz_ternarylogic_epi32, __m512i, __mmask16, __m512i, __m512i, __m512i, 1) +test_4 (_mm512_maskz_ternarylogic_epi64, __m512i, __mmask8, __m512i, __m512i, __m512i, 1) +test_4v (_mm512_mask_i32scatter_epi32, void *, __mmask16, __m512i, __m512i, 1) +test_4v (_mm512_mask_i32scatter_epi64, void *, __mmask8, __m256i, __m512i, 1) +test_4v (_mm512_mask_i32scatter_pd, void *, __mmask8, __m256i, __m512d, 1) +test_4v (_mm512_mask_i32scatter_ps, void *, __mmask16, __m512i, __m512, 1) +test_4v (_mm512_mask_i64scatter_epi32, void *, __mmask8, __m512i, __m256i, 1) +test_4v (_mm512_mask_i64scatter_epi64, void *, __mmask8, __m512i, __m512i, 1) +test_4v (_mm512_mask_i64scatter_pd, void *, __mmask8, __m512i, __m512d, 1) +test_4v (_mm512_mask_i64scatter_ps, void *, __mmask8, __m512i, __m256, 1) +test_4x (_mm512_mask_fixupimm_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512i, 1, 5) +test_4x (_mm512_mask_fixupimm_round_ps, __m512, __m512, __mmask16, __m512, __m512i, 1, 5) +test_4x (_mm512_maskz_fixupimm_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512i, 1, 5) +test_4x (_mm512_maskz_fixupimm_round_ps, __m512, __mmask16, __m512, __m512, __m512i, 1, 5) +test_4x (_mm_mask_fixupimm_round_sd, __m128d, __m128d, __mmask8, __m128d, __m128i, 1, 5) +test_4x (_mm_mask_fixupimm_round_ss, __m128, __m128, __mmask8, __m128, __m128i, 1, 5) +test_4x (_mm_maskz_fixupimm_round_sd, __m128d, __mmask8, __m128d, __m128d, __m128i, 1, 5) +test_4x (_mm_maskz_fixupimm_round_ss, __m128, __mmask8, __m128, __m128, __m128i, 1, 5) + +/* avx512pfintrin.h */ +test_3vx (_mm512_mask_prefetch_i32gather_ps, __m512i, __mmask16, void const *, 1, 1) +test_3vx (_mm512_mask_prefetch_i32scatter_ps, void const *, __mmask16, __m512i, 1, 1) +test_3vx (_mm512_mask_prefetch_i64gather_ps, __m512i, __mmask8, void const *, 1, 1) +test_3vx (_mm512_mask_prefetch_i64scatter_ps, void const *, __mmask8, __m512i, 1, 1) + +/* avx512erintrin.h */ +test_1 (_mm512_exp2a23_round_pd, __m512d, __m512d, 1) +test_1 (_mm512_exp2a23_round_ps, __m512, __m512, 1) +test_1 (_mm512_rcp28_round_pd, __m512d, __m512d, 1) +test_1 (_mm512_rcp28_round_ps, __m512, __m512, 1) +test_1 (_mm512_rsqrt28_round_pd, __m512d, __m512d, 1) +test_1 (_mm512_rsqrt28_round_ps, __m512, __m512, 1) +test_2 (_mm512_maskz_exp2a23_round_pd, __m512d, __mmask8, __m512d, 1) +test_2 (_mm512_maskz_exp2a23_round_ps, __m512, __mmask16, __m512, 1) +test_2 (_mm512_maskz_rcp28_round_pd, __m512d, __mmask8, __m512d, 1) +test_2 (_mm512_maskz_rcp28_round_ps, __m512, __mmask16, __m512, 1) +test_2 (_mm512_maskz_rsqrt28_round_pd, __m512d, __mmask8, __m512d, 1) +test_2 (_mm512_maskz_rsqrt28_round_ps, __m512, __mmask16, __m512, 1) +test_3 (_mm512_mask_exp2a23_round_pd, __m512d, __m512d, __mmask8, __m512d, 1) +test_3 (_mm512_mask_exp2a23_round_ps, __m512, __m512, __mmask16, __m512, 1) +test_3 (_mm512_mask_rcp28_round_pd, __m512d, __m512d, __mmask8, __m512d, 1) +test_3 (_mm512_mask_rcp28_round_ps, __m512, __m512, __mmask16, __m512, 1) +test_3 (_mm512_mask_rsqrt28_round_pd, __m512d, __m512d, __mmask8, __m512d, 1) +test_3 (_mm512_mask_rsqrt28_round_ps, __m512, __m512, __mmask16, __m512, 1) + /* wmmintrin.h (AES/PCLMUL). */ #ifdef DIFFERENT_PRAGMAS #pragma GCC target ("aes,pclmul") diff --git a/gcc/testsuite/gcc.target/i386/sse-23.c b/gcc/testsuite/gcc.target/i386/sse-23.c index 069f8e7cb80..f993c07cdf1 100644 --- a/gcc/testsuite/gcc.target/i386/sse-23.c +++ b/gcc/testsuite/gcc.target/i386/sse-23.c @@ -183,7 +183,180 @@ /* rtmintrin.h */ #define __builtin_ia32_xabort(M) __builtin_ia32_xabort(1) -#pragma GCC target ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tbm,lwp,fsgsbase,rdrnd,f16c,fma,rtm,rdseed,prfchw,adx,fxsr,xsaveopt") +/* avx512fintrin.h */ +#define __builtin_ia32_addpd512_mask(A, B, C, D, E) __builtin_ia32_addpd512_mask(A, B, C, D, 1) +#define __builtin_ia32_addps512_mask(A, B, C, D, E) __builtin_ia32_addps512_mask(A, B, C, D, 1) +#define __builtin_ia32_alignd512_mask(A, B, F, D, E) __builtin_ia32_alignd512_mask(A, B, 1, D, E) +#define __builtin_ia32_alignq512_mask(A, B, F, D, E) __builtin_ia32_alignq512_mask(A, B, 1, D, E) +#define __builtin_ia32_cmpd512_mask(A, B, E, D) __builtin_ia32_cmpd512_mask(A, B, 1, D) +#define __builtin_ia32_cmppd512_mask(A, B, F, D, E) __builtin_ia32_cmppd512_mask(A, B, 1, D, 5) +#define __builtin_ia32_cmpps512_mask(A, B, F, D, E) __builtin_ia32_cmpps512_mask(A, B, 1, D, 5) +#define __builtin_ia32_cmpq512_mask(A, B, E, D) __builtin_ia32_cmpq512_mask(A, B, 1, D) +#define __builtin_ia32_cmpsd_mask(A, B, F, D, E) __builtin_ia32_cmpsd_mask(A, B, 1, D, 5) +#define __builtin_ia32_cmpss_mask(A, B, F, D, E) __builtin_ia32_cmpss_mask(A, B, 1, D, 5) +#define __builtin_ia32_cvtdq2ps512_mask(A, B, C, D) __builtin_ia32_cvtdq2ps512_mask(A, B, C, 1) +#define __builtin_ia32_cvtpd2dq512_mask(A, B, C, D) __builtin_ia32_cvtpd2dq512_mask(A, B, C, 1) +#define __builtin_ia32_cvtpd2ps512_mask(A, B, C, D) __builtin_ia32_cvtpd2ps512_mask(A, B, C, 1) +#define __builtin_ia32_cvtpd2udq512_mask(A, B, C, D) __builtin_ia32_cvtpd2udq512_mask(A, B, C, 1) +#define __builtin_ia32_cvtps2dq512_mask(A, B, C, D) __builtin_ia32_cvtps2dq512_mask(A, B, C, 1) +#define __builtin_ia32_cvtps2pd512_mask(A, B, C, D) __builtin_ia32_cvtps2pd512_mask(A, B, C, 5) +#define __builtin_ia32_cvtps2udq512_mask(A, B, C, D) __builtin_ia32_cvtps2udq512_mask(A, B, C, 1) +#define __builtin_ia32_cvtsi2sd64(A, B, C) __builtin_ia32_cvtsi2sd64(A, B, 1) +#define __builtin_ia32_cvtsi2ss32(A, B, C) __builtin_ia32_cvtsi2ss32(A, B, 1) +#define __builtin_ia32_cvtsi2ss64(A, B, C) __builtin_ia32_cvtsi2ss64(A, B, 1) +#define __builtin_ia32_cvttpd2dq512_mask(A, B, C, D) __builtin_ia32_cvttpd2dq512_mask(A, B, C, 5) +#define __builtin_ia32_cvttpd2udq512_mask(A, B, C, D) __builtin_ia32_cvttpd2udq512_mask(A, B, C, 5) +#define __builtin_ia32_cvttps2dq512_mask(A, B, C, D) __builtin_ia32_cvttps2dq512_mask(A, B, C, 5) +#define __builtin_ia32_cvttps2udq512_mask(A, B, C, D) __builtin_ia32_cvttps2udq512_mask(A, B, C, 5) +#define __builtin_ia32_cvtudq2ps512_mask(A, B, C, D) __builtin_ia32_cvtudq2ps512_mask(A, B, C, 1) +#define __builtin_ia32_cvtusi2sd64(A, B, C) __builtin_ia32_cvtusi2sd64(A, B, 1) +#define __builtin_ia32_cvtusi2ss32(A, B, C) __builtin_ia32_cvtusi2ss32(A, B, 1) +#define __builtin_ia32_cvtusi2ss64(A, B, C) __builtin_ia32_cvtusi2ss64(A, B, 1) +#define __builtin_ia32_divpd512_mask(A, B, C, D, E) __builtin_ia32_divpd512_mask(A, B, C, D, 1) +#define __builtin_ia32_divps512_mask(A, B, C, D, E) __builtin_ia32_divps512_mask(A, B, C, D, 1) +#define __builtin_ia32_extractf32x4_mask(A, E, C, D) __builtin_ia32_extractf32x4_mask(A, 1, C, D) +#define __builtin_ia32_extractf64x4_mask(A, E, C, D) __builtin_ia32_extractf64x4_mask(A, 1, C, D) +#define __builtin_ia32_extracti32x4_mask(A, E, C, D) __builtin_ia32_extracti32x4_mask(A, 1, C, D) +#define __builtin_ia32_extracti64x4_mask(A, E, C, D) __builtin_ia32_extracti64x4_mask(A, 1, C, D) +#define __builtin_ia32_fixupimmpd512_mask(A, B, C, I, E, F) __builtin_ia32_fixupimmpd512_mask(A, B, C, 1, E, 5) +#define __builtin_ia32_fixupimmpd512_maskz(A, B, C, I, E, F) __builtin_ia32_fixupimmpd512_maskz(A, B, C, 1, E, 5) +#define __builtin_ia32_fixupimmps512_mask(A, B, C, I, E, F) __builtin_ia32_fixupimmps512_mask(A, B, C, 1, E, 5) +#define __builtin_ia32_fixupimmps512_maskz(A, B, C, I, E, F) __builtin_ia32_fixupimmps512_maskz(A, B, C, 1, E, 5) +#define __builtin_ia32_fixupimmsd_mask(A, B, C, I, E, F) __builtin_ia32_fixupimmsd_mask(A, B, C, 1, E, 5) +#define __builtin_ia32_fixupimmsd_maskz(A, B, C, I, E, F) __builtin_ia32_fixupimmsd_maskz(A, B, C, 1, E, 5) +#define __builtin_ia32_fixupimmss_mask(A, B, C, I, E, F) __builtin_ia32_fixupimmss_mask(A, B, C, 1, E, 5) +#define __builtin_ia32_fixupimmss_maskz(A, B, C, I, E, F) __builtin_ia32_fixupimmss_maskz(A, B, C, 1, E, 5) +#define __builtin_ia32_gatherdiv8df(A, B, C, D, F) __builtin_ia32_gatherdiv8df(A, B, C, D, 1) +#define __builtin_ia32_gatherdiv8di(A, B, C, D, F) __builtin_ia32_gatherdiv8di(A, B, C, D, 1) +#define __builtin_ia32_gatherdiv16sf(A, B, C, D, F) __builtin_ia32_gatherdiv16sf(A, B, C, D, 1) +#define __builtin_ia32_gatherdiv16si(A, B, C, D, F) __builtin_ia32_gatherdiv16si(A, B, C, D, 1) +#define __builtin_ia32_gathersiv16sf(A, B, C, D, F) __builtin_ia32_gathersiv16sf(A, B, C, D, 1) +#define __builtin_ia32_gathersiv16si(A, B, C, D, F) __builtin_ia32_gathersiv16si(A, B, C, D, 1) +#define __builtin_ia32_gathersiv8df(A, B, C, D, F) __builtin_ia32_gathersiv8df(A, B, C, D, 1) +#define __builtin_ia32_gathersiv8di(A, B, C, D, F) __builtin_ia32_gathersiv8di(A, B, C, D, 1) +#define __builtin_ia32_getexppd512_mask(A, B, C, D) __builtin_ia32_getexppd512_mask(A, B, C, 5) +#define __builtin_ia32_getexpps512_mask(A, B, C, D) __builtin_ia32_getexpps512_mask(A, B, C, 5) +#define __builtin_ia32_getmantpd512_mask(A, F, C, D, E) __builtin_ia32_getmantpd512_mask(A, 1, C, D, 5) +#define __builtin_ia32_getmantps512_mask(A, F, C, D, E) __builtin_ia32_getmantps512_mask(A, 1, C, D, 5) +#define __builtin_ia32_insertf32x4_mask(A, B, F, D, E) __builtin_ia32_insertf32x4_mask(A, B, 1, D, E) +#define __builtin_ia32_insertf64x4_mask(A, B, F, D, E) __builtin_ia32_insertf64x4_mask(A, B, 1, D, E) +#define __builtin_ia32_inserti32x4_mask(A, B, F, D, E) __builtin_ia32_inserti32x4_mask(A, B, 1, D, E) +#define __builtin_ia32_inserti64x4_mask(A, B, F, D, E) __builtin_ia32_inserti64x4_mask(A, B, 1, D, E) +#define __builtin_ia32_maxpd512_mask(A, B, C, D, E) __builtin_ia32_maxpd512_mask(A, B, C, D, 5) +#define __builtin_ia32_maxps512_mask(A, B, C, D, E) __builtin_ia32_maxps512_mask(A, B, C, D, 5) +#define __builtin_ia32_minpd512_mask(A, B, C, D, E) __builtin_ia32_minpd512_mask(A, B, C, D, 5) +#define __builtin_ia32_minps512_mask(A, B, C, D, E) __builtin_ia32_minps512_mask(A, B, C, D, 5) +#define __builtin_ia32_mulpd512_mask(A, B, C, D, E) __builtin_ia32_mulpd512_mask(A, B, C, D, 1) +#define __builtin_ia32_mulps512_mask(A, B, C, D, E) __builtin_ia32_mulps512_mask(A, B, C, D, 1) +#define __builtin_ia32_permdf512_mask(A, E, C, D) __builtin_ia32_permdf512_mask(A, 1, C, D) +#define __builtin_ia32_permdi512_mask(A, E, C, D) __builtin_ia32_permdi512_mask(A, 1, C, D) +#define __builtin_ia32_prold512_mask(A, E, C, D) __builtin_ia32_prold512_mask(A, 1, C, D) +#define __builtin_ia32_prolq512_mask(A, E, C, D) __builtin_ia32_prolq512_mask(A, 1, C, D) +#define __builtin_ia32_prord512_mask(A, E, C, D) __builtin_ia32_prord512_mask(A, 1, C, D) +#define __builtin_ia32_prorq512_mask(A, E, C, D) __builtin_ia32_prorq512_mask(A, 1, C, D) +#define __builtin_ia32_pshufd512_mask(A, E, C, D) __builtin_ia32_pshufd512_mask(A, 1, C, D) +#define __builtin_ia32_pslldi512_mask(A, E, C, D) __builtin_ia32_pslldi512_mask(A, 1, C, D) +#define __builtin_ia32_psllqi512_mask(A, E, C, D) __builtin_ia32_psllqi512_mask(A, 1, C, D) +#define __builtin_ia32_psradi512_mask(A, E, C, D) __builtin_ia32_psradi512_mask(A, 1, C, D) +#define __builtin_ia32_psraqi512_mask(A, E, C, D) __builtin_ia32_psraqi512_mask(A, 1, C, D) +#define __builtin_ia32_psrldi512_mask(A, E, C, D) __builtin_ia32_psrldi512_mask(A, 1, C, D) +#define __builtin_ia32_psrlqi512_mask(A, E, C, D) __builtin_ia32_psrlqi512_mask(A, 1, C, D) +#define __builtin_ia32_pternlogd512_mask(A, B, C, F, E) __builtin_ia32_pternlogd512_mask(A, B, C, 1, E) +#define __builtin_ia32_pternlogd512_maskz(A, B, C, F, E) __builtin_ia32_pternlogd512_maskz(A, B, C, 1, E) +#define __builtin_ia32_pternlogq512_mask(A, B, C, F, E) __builtin_ia32_pternlogq512_mask(A, B, C, 1, E) +#define __builtin_ia32_pternlogq512_maskz(A, B, C, F, E) __builtin_ia32_pternlogq512_maskz(A, B, C, 1, E) +#define __builtin_ia32_rndscalepd_mask(A, F, C, D, E) __builtin_ia32_rndscalepd_mask(A, 1, C, D, 5) +#define __builtin_ia32_rndscaleps_mask(A, F, C, D, E) __builtin_ia32_rndscaleps_mask(A, 1, C, D, 5) +#define __builtin_ia32_scalefpd512_mask(A, B, C, D, E) __builtin_ia32_scalefpd512_mask(A, B, C, D, 1) +#define __builtin_ia32_scalefps512_mask(A, B, C, D, E) __builtin_ia32_scalefps512_mask(A, B, C, D, 1) +#define __builtin_ia32_scatterdiv8df(A, B, C, D, F) __builtin_ia32_scatterdiv8df(A, B, C, D, 1) +#define __builtin_ia32_scatterdiv8di(A, B, C, D, F) __builtin_ia32_scatterdiv8di(A, B, C, D, 1) +#define __builtin_ia32_scatterdiv16sf(A, B, C, D, F) __builtin_ia32_scatterdiv16sf(A, B, C, D, 1) +#define __builtin_ia32_scatterdiv16si(A, B, C, D, F) __builtin_ia32_scatterdiv16si(A, B, C, D, 1) +#define __builtin_ia32_scattersiv16sf(A, B, C, D, F) __builtin_ia32_scattersiv16sf(A, B, C, D, 1) +#define __builtin_ia32_scattersiv16si(A, B, C, D, F) __builtin_ia32_scattersiv16si(A, B, C, D, 1) +#define __builtin_ia32_scattersiv8df(A, B, C, D, F) __builtin_ia32_scattersiv8df(A, B, C, D, 1) +#define __builtin_ia32_scattersiv8di(A, B, C, D, F) __builtin_ia32_scattersiv8di(A, B, C, D, 1) +#define __builtin_ia32_shuf_f32x4_mask(A, B, F, D, E) __builtin_ia32_shuf_f32x4_mask(A, B, 1, D, E) +#define __builtin_ia32_shuf_f64x2_mask(A, B, F, D, E) __builtin_ia32_shuf_f64x2_mask(A, B, 1, D, E) +#define __builtin_ia32_shuf_i32x4_mask(A, B, F, D, E) __builtin_ia32_shuf_i32x4_mask(A, B, 1, D, E) +#define __builtin_ia32_shuf_i64x2_mask(A, B, F, D, E) __builtin_ia32_shuf_i64x2_mask(A, B, 1, D, E) +#define __builtin_ia32_shufpd512_mask(A, B, F, D, E) __builtin_ia32_shufpd512_mask(A, B, 1, D, E) +#define __builtin_ia32_shufps512_mask(A, B, F, D, E) __builtin_ia32_shufps512_mask(A, B, 1, D, E) +#define __builtin_ia32_sqrtpd512_mask(A, B, C, D) __builtin_ia32_sqrtpd512_mask(A, B, C, 1) +#define __builtin_ia32_sqrtps512_mask(A, B, C, D) __builtin_ia32_sqrtps512_mask(A, B, C, 1) +#define __builtin_ia32_subpd512_mask(A, B, C, D, E) __builtin_ia32_subpd512_mask(A, B, C, D, 1) +#define __builtin_ia32_subps512_mask(A, B, C, D, E) __builtin_ia32_subps512_mask(A, B, C, D, 1) +#define __builtin_ia32_ucmpd512_mask(A, B, E, D) __builtin_ia32_ucmpd512_mask(A, B, 1, D) +#define __builtin_ia32_ucmpq512_mask(A, B, E, D) __builtin_ia32_ucmpq512_mask(A, B, 1, D) +#define __builtin_ia32_vcomisd(A, B, C, D) __builtin_ia32_vcomisd(A, B, 1, 5) +#define __builtin_ia32_vcomiss(A, B, C, D) __builtin_ia32_vcomiss(A, B, 1, 5) +#define __builtin_ia32_vcvtph2ps512_mask(A, B, C, D) __builtin_ia32_vcvtph2ps512_mask(A, B, C, 5) +#define __builtin_ia32_vcvtps2ph512_mask(A, E, C, D) __builtin_ia32_vcvtps2ph512_mask(A, 1, C, D) +#define __builtin_ia32_vcvtsd2si32(A, B) __builtin_ia32_vcvtsd2si32(A, 1) +#define __builtin_ia32_vcvtsd2si64(A, B) __builtin_ia32_vcvtsd2si64(A, 1) +#define __builtin_ia32_vcvtsd2usi32(A, B) __builtin_ia32_vcvtsd2usi32(A, 1) +#define __builtin_ia32_vcvtsd2usi64(A, B) __builtin_ia32_vcvtsd2usi64(A, 1) +#define __builtin_ia32_vcvtss2si32(A, B) __builtin_ia32_vcvtss2si32(A, 1) +#define __builtin_ia32_vcvtss2si64(A, B) __builtin_ia32_vcvtss2si64(A, 1) +#define __builtin_ia32_vcvtss2usi32(A, B) __builtin_ia32_vcvtss2usi32(A, 1) +#define __builtin_ia32_vcvtss2usi64(A, B) __builtin_ia32_vcvtss2usi64(A, 1) +#define __builtin_ia32_vcvttsd2si32(A, B) __builtin_ia32_vcvttsd2si32(A, 5) +#define __builtin_ia32_vcvttsd2si64(A, B) __builtin_ia32_vcvttsd2si64(A, 5) +#define __builtin_ia32_vcvttsd2usi32(A, B) __builtin_ia32_vcvttsd2usi32(A, 5) +#define __builtin_ia32_vcvttsd2usi64(A, B) __builtin_ia32_vcvttsd2usi64(A, 5) +#define __builtin_ia32_vcvttss2si32(A, B) __builtin_ia32_vcvttss2si32(A, 5) +#define __builtin_ia32_vcvttss2si64(A, B) __builtin_ia32_vcvttss2si64(A, 5) +#define __builtin_ia32_vcvttss2usi32(A, B) __builtin_ia32_vcvttss2usi32(A, 5) +#define __builtin_ia32_vcvttss2usi64(A, B) __builtin_ia32_vcvttss2usi64(A, 5) +#define __builtin_ia32_vfmaddpd512_mask(A, B, C, D, E) __builtin_ia32_vfmaddpd512_mask(A, B, C, D, 1) +#define __builtin_ia32_vfmaddpd512_mask3(A, B, C, D, E) __builtin_ia32_vfmaddpd512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmaddpd512_maskz(A, B, C, D, E) __builtin_ia32_vfmaddpd512_maskz(A, B, C, D, 1) +#define __builtin_ia32_vfmaddps512_mask(A, B, C, D, E) __builtin_ia32_vfmaddps512_mask(A, B, C, D, 1) +#define __builtin_ia32_vfmaddps512_mask3(A, B, C, D, E) __builtin_ia32_vfmaddps512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmaddps512_maskz(A, B, C, D, E) __builtin_ia32_vfmaddps512_maskz(A, B, C, D, 1) +#define __builtin_ia32_vfmaddsd3_mask(A, B, C, D, E) __builtin_ia32_vfmaddsd3_mask(A, B, C, D, 1) +#define __builtin_ia32_vfmaddsd3_mask3(A, B, C, D, E) __builtin_ia32_vfmaddsd3_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmaddsd3_maskz(A, B, C, D, E) __builtin_ia32_vfmaddsd3_maskz(A, B, C, D, 1) +#define __builtin_ia32_vfmaddss3_mask(A, B, C, D, E) __builtin_ia32_vfmaddss3_mask(A, B, C, D, 1) +#define __builtin_ia32_vfmaddss3_mask3(A, B, C, D, E) __builtin_ia32_vfmaddss3_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmaddss3_maskz(A, B, C, D, E) __builtin_ia32_vfmaddss3_maskz(A, B, C, D, 1) +#define __builtin_ia32_vfmaddsubpd512_mask(A, B, C, D, E) __builtin_ia32_vfmaddsubpd512_mask(A, B, C, D, 1) +#define __builtin_ia32_vfmaddsubpd512_mask3(A, B, C, D, E) __builtin_ia32_vfmaddsubpd512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmaddsubpd512_maskz(A, B, C, D, E) __builtin_ia32_vfmaddsubpd512_maskz(A, B, C, D, 1) +#define __builtin_ia32_vfmaddsubps512_mask(A, B, C, D, E) __builtin_ia32_vfmaddsubps512_mask(A, B, C, D, 1) +#define __builtin_ia32_vfmaddsubps512_mask3(A, B, C, D, E) __builtin_ia32_vfmaddsubps512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmaddsubps512_maskz(A, B, C, D, E) __builtin_ia32_vfmaddsubps512_maskz(A, B, C, D, 1) +#define __builtin_ia32_vfmsubaddpd512_mask3(A, B, C, D, E) __builtin_ia32_vfmsubaddpd512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmsubaddps512_mask3(A, B, C, D, E) __builtin_ia32_vfmsubaddps512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmsubpd512_mask3(A, B, C, D, E) __builtin_ia32_vfmsubpd512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmsubps512_mask3(A, B, C, D, E) __builtin_ia32_vfmsubps512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmsubsd3_mask3(A, B, C, D, E) __builtin_ia32_vfmsubsd3_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfmsubss3_mask3(A, B, C, D, E) __builtin_ia32_vfmsubss3_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfnmaddpd512_mask(A, B, C, D, E) __builtin_ia32_vfnmaddpd512_mask(A, B, C, D, 1) +#define __builtin_ia32_vfnmaddps512_mask(A, B, C, D, E) __builtin_ia32_vfnmaddps512_mask(A, B, C, D, 1) +#define __builtin_ia32_vfnmsubpd512_mask(A, B, C, D, E) __builtin_ia32_vfnmsubpd512_mask(A, B, C, D, 1) +#define __builtin_ia32_vfnmsubpd512_mask3(A, B, C, D, E) __builtin_ia32_vfnmsubpd512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vfnmsubps512_mask(A, B, C, D, E) __builtin_ia32_vfnmsubps512_mask(A, B, C, D, 1) +#define __builtin_ia32_vfnmsubps512_mask3(A, B, C, D, E) __builtin_ia32_vfnmsubps512_mask3(A, B, C, D, 1) +#define __builtin_ia32_vpermilpd512_mask(A, E, C, D) __builtin_ia32_vpermilpd512_mask(A, 1, C, D) +#define __builtin_ia32_vpermilps512_mask(A, E, C, D) __builtin_ia32_vpermilps512_mask(A, 1, C, D) + +/* avx512pfintrin.h */ +#define __builtin_ia32_gatherpfdps(A, B, C, D, E) __builtin_ia32_gatherpfdps(A, B, C, 1, 1) +#define __builtin_ia32_gatherpfqps(A, B, C, D, E) __builtin_ia32_gatherpfqps(A, B, C, 1, 1) +#define __builtin_ia32_scatterpfdps(A, B, C, D, E) __builtin_ia32_scatterpfdps(A, B, C, 1, 1) +#define __builtin_ia32_scatterpfqps(A, B, C, D, E) __builtin_ia32_scatterpfqps(A, B, C, 1, 1) + +/* avx512erintrin.h */ +#define __builtin_ia32_exp2pd_mask(A, B, C, D) __builtin_ia32_exp2pd_mask (A, B, C, 1) +#define __builtin_ia32_exp2ps_mask(A, B, C, D) __builtin_ia32_exp2ps_mask (A, B, C, 1) +#define __builtin_ia32_rcp28pd_mask(A, B, C, D) __builtin_ia32_rcp28pd_mask (A, B, C, 1) +#define __builtin_ia32_rcp28ps_mask(A, B, C, D) __builtin_ia32_rcp28ps_mask (A, B, C, 1) +#define __builtin_ia32_rsqrt28pd_mask(A, B, C, D) __builtin_ia32_rsqrt28pd_mask (A, B, C, 1) +#define __builtin_ia32_rsqrt28ps_mask(A, B, C, D) __builtin_ia32_rsqrt28ps_mask (A, B, C, 1) + +#pragma GCC target ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tbm,lwp,fsgsbase,rdrnd,f16c,fma,rtm,rdseed,prfchw,adx,fxsr,xsaveopt,avx512f,avx512er,avx512pf,avx512cd") #include <wmmintrin.h> #include <smmintrin.h> #include <mm3dnow.h> |