gcc/ * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BITALG_SET, OPTION_MASK_ISA_AVX512BITALG_UNSET): New. (ix86_handle_option): Handle -mavx512bitalg, fix 4VNNIW formatting. * config.gcc: Add avx512vpopcntdqvlintrin.h and avx512bitalgintrin.h. * config/i386/avx512bitalgintrin.h (_mm512_popcnt_epi8, _mm512_popcnt_epi16, _mm512_mask_popcnt_epi8, _mm512_maskz_popcnt_epi8, _mm512_mask_popcnt_epi16, _mm512_maskz_popcnt_epi16, _mm512_bitshuffle_epi64_mask, _mm256_popcnt_epi8, _mm512_mask_bitshuffle_epi64_mask, _mm256_mask_popcnt_epi8, _mm_popcnt_epi8, _mm256_maskz_popcnt_epi8, _mm_bitshuffle_epi64_mask, _mm256_popcnt_epi16, _mm_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask, _mm256_mask_bitshuffle_epi64_mask, _mm_popcnt_epi16, _mm_maskz_popcnt_epi8, _mm256_mask_popcnt_epi16, _mm256_maskz_popcnt_epi16, _mm_mask_popcnt_epi8, _mm_mask_popcnt_epi16, _mm_maskz_popcnt_epi16): New intrinsics. * config/i386/avx512vpopcntdqvlintrin.h (_mm_popcnt_epi32, _mm_popcnt_epi64, _mm_mask_popcnt_epi32, _mm_maskz_popcnt_epi32, _mm256_popcnt_epi32, _mm256_mask_popcnt_epi32, _mm256_maskz_popcnt_epi32, _mm_mask_popcnt_epi64, _mm_maskz_popcnt_epi64, _mm256_popcnt_epi64, _mm256_mask_popcnt_epi64, _mm256_maskz_popcnt_epi64): New intrinsics. * config/i386/cpuid.h (bit_AVX512BITALG): New bit. * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mavx512bitalg. * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI, V64QI_FTYPE_V64QI, V4DI_FTYPE_V4DI, UHI_FTYPE_V2DI_V2DI_UHI, USI_FTYPE_V4DI_V4DI_USI, V4SI_FTYPE_V4SI_V4SI_UHI, V8SI_FTYPE_V8SI_V8SI_UHI): New types. * config/i386/i386-builtin.def (__builtin_ia32_vpopcountq_v4di, __builtin_ia32_vpopcountq_v4di_mask, __builtin_ia32_vpopcountq_v2di, __builtin_ia32_vpopcountq_v2di_mask, __builtin_ia32_vpopcountd_v4si, __builtin_ia32_vpopcountd_v4si_mask, __builtin_ia32_vpopcountd_v8si, __builtin_ia32_vpopcountd_v8si_mask, __builtin_ia32_vpopcountb_v64qi, __builtin_ia32_vpopcountb_v64qi_mask, __builtin_ia32_vpopcountb_v32qi, __builtin_ia32_vpopcountb_v32qi_mask, __builtin_ia32_vpopcountb_v16qi, __builtin_ia32_vpopcountb_v16qi_mask, __builtin_ia32_vpopcountw_v32hi, __builtin_ia32_vpopcountw_v32hi_mask, __builtin_ia32_vpopcountw_v16hi, __builtin_ia32_vpopcountw_v16hi_mask, __builtin_ia32_vpopcountw_v8hi, __builtin_ia32_vpopcountw_v8hi_mask, __builtin_ia32_vpshufbitqmb128_mask, __builtin_ia32_vpshufbitqmb256_mask, __builtin_ia32_vpshufbitqmb512_mask): New builtins. * config/i386/i386-c.c (__AVX512BITALG__): New. * config/i386/i386.c (isa2_opts): Add -mavx512bitalg. (ix86_valid_target_attribute_inner_p): Ditto. (ix86_expand_args_builtin): Handle new types. * config/i386/i386.h (TARGET_AVX512BITALG, TARGET_AVX512BITALG_P): New. * config/i386/i386.opt: Add -mavx512bitalg. * config/i386/immintrin.h: Add avx512vpopcntdqvlintrin.h and avx512bitalgintrin.h. * config/i386/sse.md (VI48_AVX512VLBW): New iterator. (vpopcount<mode><mask_name>): Add more types. (avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): New. * doc/invoke.texi: Add -mavx512bitalg and -mavx512vpopcntdq. gcc/testsuite/ * g++.dg/other/i386-2.C: Add new options. * g++.dg/other/i386-3.C: Ditto. * gcc.target/i386/sse-12.c: Ditto. * gcc.target/i386/sse-13.c: Ditto. * gcc.target/i386/sse-22.c: Ditto. * gcc.target/i386/sse-23.c: Ditto. * gcc.target/i386/avx512-check.h: Handle bit_AVX512BITALG. * gcc.target/i386/avx512bitalg-vpopcntb-1.c: New. * gcc.target/i386/avx512bitalg-vpopcntb.c: Ditto. * gcc.target/i386/avx512bitalg-vpopcntbvl.c: Ditto. * gcc.target/i386/avx512bitalg-vpopcntw-1.c: Ditto. * gcc.target/i386/avx512bitalg-vpopcntw.c: Ditto. * gcc.target/i386/avx512bitalg-vpopcntwvl.c: Ditto. * gcc.target/i386/avx512bitalg-vpshufbitqmb-1.c: Ditto. * gcc.target/i386/avx512bitalg-vpshufbitqmb.c: Ditto. * gcc.target/i386/avx512bitalgvl-vpopcntb-1.c: Ditto. * gcc.target/i386/avx512bitalgvl-vpopcntw-1.c: Ditto. * gcc.target/i386/avx512bitalgvl-vpshufbitqmb-1.c: Ditto. * gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c: Ditto. * gcc.target/i386/avx512vpopcntdqvl-vpopcntq-1.c: Ditto. * gcc.target/i386/i386.exp (check_effective_target_avx512bitalg): New. * gcc.target/i386/avx512vpopcntdq-vpopcntd-1.c: Add more types. * gcc.target/i386/avx512vpopcntdq-vpopcntd.c: Handle new intrinsics. * gcc.target/i386/avx512vpopcntdq-vpopcntq-1.c: Ditto. * gcc.target/i386/avx512vpopcntdq-vpopcntq.c: Ditto. Co-Authored-By: Sebastian Peryt <sebastian.peryt@intel.com> From-SVN: r255975
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
PR23205.C | Loading commit data... | |
abstract1.C | Loading commit data... | |
abstract2.C | Loading commit data... | |
abstract3.C | Loading commit data... | |
abstract4.C | Loading commit data... | |
abstract5.C | Loading commit data... | |
abstract6.C | Loading commit data... | |
access1.C | Loading commit data... | |
access2.C | Loading commit data... | |
access3.C | Loading commit data... | |
accessor-fixits-1.C | Loading commit data... | |
accessor-fixits-2.C | Loading commit data... | |
accessor-fixits-3.C | Loading commit data... | |
accessor-fixits-4.C | Loading commit data... | |
anon-struct.C | Loading commit data... | |
anon-union.C | Loading commit data... | |
anon-union2.C | Loading commit data... | |
anon-union3.C | Loading commit data... | |
anon-union4.C | Loading commit data... | |
anon2.C | Loading commit data... | |
anon3.C | Loading commit data... | |
anon4.C | Loading commit data... | |
anon5.C | Loading commit data... | |
anon6.C | Loading commit data... | |
anon7.C | Loading commit data... | |
anon8.C | Loading commit data... | |
arm-neon-1.C | Loading commit data... | |
armv7m-1.C | Loading commit data... | |
array1.C | Loading commit data... | |
array2.C | Loading commit data... | |
array3.C | Loading commit data... | |
array4.C | Loading commit data... | |
array5.C | Loading commit data... | |
array6.C | Loading commit data... | |
array7.C | Loading commit data... | |
assign1.C | Loading commit data... | |
big-struct.C | Loading commit data... | |
bitfield1.C | Loading commit data... | |
bitfield2.C | Loading commit data... | |
bitfield3.C | Loading commit data... | |
bitfield4.C | Loading commit data... | |
bitfield5.C | Loading commit data... | |
bitfield6.C | Loading commit data... | |
builtin-unreachable-1.C | Loading commit data... | |
builtin1.C | Loading commit data... | |
canon-31724.C | Loading commit data... | |
canon-33194.C | Loading commit data... | |
canon-37342.C | Loading commit data... | |
classkey1.C | Loading commit data... | |
complex1.C | Loading commit data... | |
component1.C | Loading commit data... | |
const1.C | Loading commit data... | |
const2.C | Loading commit data... | |
const3.C | Loading commit data... | |
const4.C | Loading commit data... | |
const5.C | Loading commit data... | |
constref1.C | Loading commit data... | |
constref2.C | Loading commit data... | |
conversion1.C | Loading commit data... | |
copy1.C | Loading commit data... | |
copy2.C | Loading commit data... | |
crash-1.C | Loading commit data... | |
crash-10.C | Loading commit data... | |
crash-11.C | Loading commit data... | |
crash-12.C | Loading commit data... | |
crash-2.C | Loading commit data... | |
crash-3.C | Loading commit data... | |
crash-4.C | Loading commit data... | |
crash-5.C | Loading commit data... | |
crash-6.C | Loading commit data... | |
crash-7.C | Loading commit data... | |
crash-8.C | Loading commit data... | |
crash-9.C | Loading commit data... | |
ctor1.C | Loading commit data... | |
ctor2.C | Loading commit data... | |
cv_func.C | Loading commit data... | |
cv_func2.C | Loading commit data... | |
cv_func3.C | Loading commit data... | |
cv_func4.C | Loading commit data... | |
cxa-atexit1.C | Loading commit data... | |
darwin-cfstring1.C | Loading commit data... | |
darwin-minversion-1.C | Loading commit data... | |
datasec1.C | Loading commit data... | |
default1.C | Loading commit data... | |
default10.C | Loading commit data... | |
default11.C | Loading commit data... | |
default12.C | Loading commit data... | |
default2.C | Loading commit data... | |
default3.C | Loading commit data... | |
default4.C | Loading commit data... | |
default5.C | Loading commit data... | |
default6.C | Loading commit data... | |
default7.C | Loading commit data... | |
default8.C | Loading commit data... | |
default9.C | Loading commit data... | |
do1.C | Loading commit data... | |
dtor1.C | Loading commit data... | |
dtor2.C | Loading commit data... | |
dump-ada-spec-1.C | Loading commit data... | |
dump-ada-spec-10.C | Loading commit data... | |
dump-ada-spec-2.C | Loading commit data... | |
dump-ada-spec-3.C | Loading commit data... | |
dump-ada-spec-4.C | Loading commit data... | |
dump-ada-spec-5.C | Loading commit data... | |
dump-ada-spec-6.C | Loading commit data... | |
dump-ada-spec-7.C | Loading commit data... | |
dump-ada-spec-8.C | Loading commit data... | |
dump-ada-spec-9.C | Loading commit data... | |
ellipsis1.C | Loading commit data... | |
empty-class.C | Loading commit data... | |
enum1.C | Loading commit data... | |
enum2.C | Loading commit data... | |
enum3.C | Loading commit data... | |
error1.C | Loading commit data... | |
error10.C | Loading commit data... | |
error11.C | Loading commit data... | |
error13.C | Loading commit data... | |
error14.C | Loading commit data... | |
error15.C | Loading commit data... | |
error16.C | Loading commit data... | |
error17.C | Loading commit data... | |
error18.C | Loading commit data... | |
error19.C | Loading commit data... | |
error2.C | Loading commit data... | |
error20.C | Loading commit data... | |
error21.C | Loading commit data... | |
error22.C | Loading commit data... | |
error23.C | Loading commit data... | |
error24.C | Loading commit data... | |
error25.C | Loading commit data... | |
error26.C | Loading commit data... | |
error27.C | Loading commit data... | |
error28.C | Loading commit data... | |
error29.C | Loading commit data... | |
error3.C | Loading commit data... | |
error30.C | Loading commit data... | |
error31.C | Loading commit data... | |
error32.C | Loading commit data... | |
error33.C | Loading commit data... | |
error34.C | Loading commit data... | |
error4.C | Loading commit data... | |
error5.C | Loading commit data... | |
error6.C | Loading commit data... | |
error7.C | Loading commit data... | |
error8.C | Loading commit data... | |
error9.C | Loading commit data... | |
field1.C | Loading commit data... | |
final1.C | Loading commit data... | |
final2.C | Loading commit data... | |
first-global.C | Loading commit data... | |
fold1.C | Loading commit data... | |
friend1.C | Loading commit data... | |
friend2.C | Loading commit data... | |
friend3.C | Loading commit data... | |
friend4.C | Loading commit data... | |
friend5.C | Loading commit data... | |
friend6.C | Loading commit data... | |
friend7.C | Loading commit data... | |
fsyntax-only1.C | Loading commit data... | |
fsyntax-only2.C | Loading commit data... | |
gc1.C | Loading commit data... | |
gc2.C | Loading commit data... | |
gc3.C | Loading commit data... | |
gc4.C | Loading commit data... | |
gc5.C | Loading commit data... | |
i386-1.C | Loading commit data... | |
i386-10.C | Loading commit data... | |
i386-11.C | Loading commit data... | |
i386-2.C | Loading commit data... | |
i386-3.C | Loading commit data... | |
i386-4.C | Loading commit data... | |
i386-7.C | Loading commit data... | |
i386-8.C | Loading commit data... | |
i386-9.C | Loading commit data... | |
incomplete1.C | Loading commit data... | |
incomplete2.C | Loading commit data... | |
incomplete3.C | Loading commit data... | |
increment1.C | Loading commit data... | |
infloop-1.C | Loading commit data... | |
init1.C | Loading commit data... | |
init2.C | Loading commit data... | |
isnan.C | Loading commit data... | |
label1.C | Loading commit data... | |
large-size-array.C | Loading commit data... | |
linkage1.C | Loading commit data... | |
linkage2.C | Loading commit data... | |
macro-1.C | Loading commit data... | |
main1.C | Loading commit data... | |
mmintrin.C | Loading commit data... | |
mult-stor1.C | Loading commit data... | |
nested-extern-1.C | Loading commit data... | |
nested-extern-2.C | Loading commit data... | |
nested-extern.cc | Loading commit data... | |
new-size-type.C | Loading commit data... | |
new1.C | Loading commit data... | |
nontype-1.C | Loading commit data... | |
ns1.C | Loading commit data... | |
offsetof1.C | Loading commit data... | |
offsetof2.C | Loading commit data... | |
offsetof3.C | Loading commit data... | |
offsetof4.C | Loading commit data... | |
offsetof5.C | Loading commit data... | |
offsetof6.C | Loading commit data... | |
offsetof7.C | Loading commit data... | |
offsetof8.C | Loading commit data... | |
offsetof9.C | Loading commit data... | |
old-style-cast-fixits.C | Loading commit data... | |
opaque-1.C | Loading commit data... | |
opaque-2.C | Loading commit data... | |
opaque-3.C | Loading commit data... | |
operator1.C | Loading commit data... | |
operator2.C | Loading commit data... | |
operator3.C | Loading commit data... | |
packed1.C | Loading commit data... | |
pr20366.C | Loading commit data... | |
pr22003.C | Loading commit data... | |
pr22358.C | Loading commit data... | |
pr23205-2.C | Loading commit data... | |
pr24623.C | Loading commit data... | |
pr25632.C | Loading commit data... | |
pr27495.C | Loading commit data... | |
pr28114.C | Loading commit data... | |
pr28304.C | Loading commit data... | |
pr28432.C | Loading commit data... | |
pr29610.C | Loading commit data... | |
pr31078.C | Loading commit data... | |
pr33558-2.C | Loading commit data... | |
pr33558.C | Loading commit data... | |
pr33601.C | Loading commit data... | |
pr34435.C | Loading commit data... | |
pr35504.C | Loading commit data... | |
pr36944.C | Loading commit data... | |
pr37394.C | Loading commit data... | |
pr37789.C | Loading commit data... | |
pr38706.C | Loading commit data... | |
pr39060.C | Loading commit data... | |
pr39496.C | Loading commit data... | |
pr40446.C | Loading commit data... | |
pr40561.C | Loading commit data... | |
pr42645-1.C | Loading commit data... | |
pr42645-2.C | Loading commit data... | |
pr42685.C | Loading commit data... | |
pr42806.C | Loading commit data... | |
pr43116.C | Loading commit data... | |
pr43631.C | Loading commit data... | |
pr47218-1.C | Loading commit data... | |
pr47218.C | Loading commit data... | |
pr47218.h | Loading commit data... | |
pr49133.C | Loading commit data... | |
pr49912.C | Loading commit data... | |
pr50212.C | Loading commit data... | |
pr50464.C | Loading commit data... | |
pr52048.C | Loading commit data... | |
pr53574.C | Loading commit data... | |
pr53811.C | Loading commit data... | |
pr55650.C | Loading commit data... | |
pr55650.cc | Loading commit data... | |
pr59492.C | Loading commit data... | |
pr61753.C | Loading commit data... | |
pr63815.C | Loading commit data... | |
pr66130.C | Loading commit data... | |
pr67065.C | Loading commit data... | |
pr68252.C | Loading commit data... | |
pr71728.C | Loading commit data... | |
pr77626.C | Loading commit data... | |
pr77759.C | Loading commit data... | |
pr79232.C | Loading commit data... | |
pr80423.C | Loading commit data... | |
pr80534-1.C | Loading commit data... | |
pr80534-2.C | Loading commit data... | |
pr81355.C | Loading commit data... | |
pr82032.C | Loading commit data... | |
pragma-re-1.C | Loading commit data... | |
pragma-re-2.C | Loading commit data... | |
profile1.C | Loading commit data... | |
ptrmem1.C | Loading commit data... | |
ptrmem10.C | Loading commit data... | |
ptrmem11.C | Loading commit data... | |
ptrmem2.C | Loading commit data... | |
ptrmem3.C | Loading commit data... | |
ptrmem4.C | Loading commit data... | |
ptrmem5.C | Loading commit data... | |
ptrmem6.C | Loading commit data... | |
ptrmem7.C | Loading commit data... | |
ptrmem8.C | Loading commit data... | |
ptrmem9.C | Loading commit data... | |
qual1.C | Loading commit data... | |
redecl1.C | Loading commit data... | |
redecl2.C | Loading commit data... | |
redecl3.C | Loading commit data... | |
return1.C | Loading commit data... | |
s390-1.C | Loading commit data... | |
scope1.C | Loading commit data... | |
semicolon.C | Loading commit data... | |
spu2vmx-1.C | Loading commit data... | |
static1.C | Loading commit data... | |
static11.C | Loading commit data... | |
static2.C | Loading commit data... | |
stdarg1.C | Loading commit data... | |
stdarg2.C | Loading commit data... | |
stdarg3.C | Loading commit data... | |
struct-va_list.C | Loading commit data... | |
switch1.C | Loading commit data... | |
switch2.C | Loading commit data... | |
switch3.C | Loading commit data... | |
synth1.C | Loading commit data... | |
typedef1.C | Loading commit data... | |
typedef2.C | Loading commit data... | |
typedef3.C | Loading commit data... | |
typedef4.C | Loading commit data... | |
ucnid-1.C | Loading commit data... | |
unreachable1.C | Loading commit data... | |
unused1.C | Loading commit data... | |
var_copy-1.C | Loading commit data... | |
vararg-1.C | Loading commit data... | |
vararg-2.C | Loading commit data... | |
vararg-3.C | Loading commit data... | |
vararg-4.C | Loading commit data... | |
vararg-5.C | Loading commit data... | |
vector-compare.C | Loading commit data... | |
virtual1.C | Loading commit data... | |
virtual2.C | Loading commit data... | |
virtual3.C | Loading commit data... | |
void1.C | Loading commit data... | |
void2.C | Loading commit data... | |
void3.C | Loading commit data... | |
vrp1.C | Loading commit data... | |
vthunk1.C | Loading commit data... | |
warning1.C | Loading commit data... |