Add new AVX512 extensions found in Intel CLX, ICL and ICX processors
Cascade Lake (CLX) added AVX512VNNI, Ice Lake has added that plus the integer multiplication (IFMA), the vector bit manipulation instructions (VBMI and VBMI2), bit algorithms (BITALG), the extended vector AES instructions (VAES), among others. I haven't turned on the configure check for those yet. I believe the VBMI and IFMA instructions will be interesting for Qt image algorithms, but we'll need some Ice Lakes to do benchmarking on. Change-Id: Ib5d667bf77a740c28d2efffd15cb43dd821d4b2d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>bb10
parent
bf2216c32b
commit
02eb9df851
|
|
@ -105,8 +105,15 @@ QMAKE_CFLAGS_AVX512BW += -mavx512bw
|
|||
QMAKE_CFLAGS_AVX512VL += -mavx512vl
|
||||
QMAKE_CFLAGS_AVX512IFMA += -mavx512ifma
|
||||
QMAKE_CFLAGS_AVX512VBMI += -mavx512vbmi
|
||||
QMAKE_CFLAGS_AVX512VNNI += -mavx512vnni
|
||||
QMAKE_CFLAGS_AVX512IFMA += -mavx512ifma
|
||||
QMAKE_CFLAGS_AVX512VBMI += -mavx512vbmi
|
||||
QMAKE_CFLAGS_AVX512VBMI2 += -mavx512vbmi2
|
||||
QMAKE_CFLAGS_AVX512BITALG += -mavx512bitalg
|
||||
QMAKE_CFLAGS_AVX512POPCNTDQ += -mavx512vpopcntd
|
||||
QMAKE_CFLAGS_AESNI += -maes
|
||||
QMAKE_CFLAGS_SHANI += -msha
|
||||
QMAKE_CFLAGS_VAES += -mvaes
|
||||
QMAKE_CFLAGS_NEON += -mfpu=neon
|
||||
QMAKE_CFLAGS_MIPS_DSP += -mdsp
|
||||
QMAKE_CFLAGS_MIPS_DSPR2 += -mdspr2
|
||||
|
|
|
|||
|
|
@ -48,11 +48,18 @@ QMAKE_CFLAGS_AVX512PF += -march=knl
|
|||
QMAKE_CFLAGS_AVX512DQ += -march=skylake-avx512
|
||||
QMAKE_CFLAGS_AVX512BW += -march=skylake-avx512
|
||||
QMAKE_CFLAGS_AVX512VL += -march=skylake-avx512
|
||||
QMAKE_CFLAGS_AVX512VNNI += -march=cascadelake
|
||||
QMAKE_CFLAGS_AVX512IFMA += -march=icelake-client # technically, cannonlake
|
||||
QMAKE_CFLAGS_AVX512VBMI += -march=icelake-client # ditto
|
||||
QMAKE_CFLAGS_AVX512VBMI2 += -march=icelake-client
|
||||
QMAKE_CFLAGS_AVX512BITALG += -march=icelake-client
|
||||
QMAKE_CFLAGS_AVX512POPCNTDQ += -march=icelake-client
|
||||
QMAKE_CFLAGS_AESNI += -maes
|
||||
QMAKE_CFLAGS_F16C += $$QMAKE_CFLAGS_AVX2
|
||||
QMAKE_CFLAGS_RDRND += -mrdrnd
|
||||
QMAKE_CFLAGS_RDSEED += -mrdseed
|
||||
QMAKE_CFLAGS_SHANI += -msha
|
||||
QMAKE_CFLAGS_VAES += -mvaes
|
||||
|
||||
QMAKE_CXX = icpc
|
||||
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
|
||||
|
|
|
|||
|
|
@ -124,6 +124,7 @@ addSimdCompiler(sse4_1)
|
|||
addSimdCompiler(sse4_2)
|
||||
addSimdCompiler(aesni)
|
||||
addSimdCompiler(shani)
|
||||
addSimdCompiler(vaes)
|
||||
addSimdCompiler(avx)
|
||||
addSimdCompiler(avx2)
|
||||
addSimdCompiler(avx512f)
|
||||
|
|
@ -133,8 +134,12 @@ addSimdCompiler(avx512pf)
|
|||
addSimdCompiler(avx512dq)
|
||||
addSimdCompiler(avx512bw)
|
||||
addSimdCompiler(avx512vl)
|
||||
addSimdCompiler(avx512vnni)
|
||||
addSimdCompiler(avx512ifma)
|
||||
addSimdCompiler(avx512vbmi)
|
||||
addSimdCompiler(avx512vbmi2)
|
||||
addSimdCompiler(avx512bitalg)
|
||||
addSimdCompiler(avx512vpopcntd)
|
||||
addSimdCompiler(f16c)
|
||||
addSimdCompiler(rdrnd)
|
||||
addSimdCompiler(rdseed)
|
||||
|
|
|
|||
|
|
@ -38,6 +38,12 @@ QMAKE_CFLAGS_AVX512PF += -QxMIC-AVX512
|
|||
QMAKE_CFLAGS_AVX512DQ += -QxCORE-AVX512
|
||||
QMAKE_CFLAGS_AVX512BW += -QxCORE-AVX512
|
||||
QMAKE_CFLAGS_AVX512VL += -QxCORE-AVX512
|
||||
QMAKE_CFLAGS_AVX512VNNI += -QxCASCADELAKE
|
||||
QMAKE_CFLAGS_AVX512IFMA += -QxICELAKE-CLIENT # technically, cannonlake
|
||||
QMAKE_CFLAGS_AVX512VBMI += -QxICELAKE-CLIENT # ditto
|
||||
QMAKE_CFLAGS_AVX512VBMI2 += QxICELAKE-CLIENT
|
||||
QMAKE_CFLAGS_AVX512BITALG += QxICELAKE-CLIENT
|
||||
QMAKE_CFLAGS_AVX512POPCNTDQ += QxICELAKE-CLIENT
|
||||
QMAKE_CFLAGS_F16C = $$QMAKE_CFLAGS_AVX2
|
||||
QMAKE_CFLAGS_RDRND = $$QMAKE_CFLAGS_AVX2
|
||||
# ICC on Windows lacks the mrdseed compiler option that sets the RDSEED macro
|
||||
|
|
@ -46,6 +52,7 @@ QMAKE_CFLAGS_ARCH_HASWELL = $$QMAKE_CFLAGS_AVX2
|
|||
|
||||
QMAKE_CFLAGS_AESNI = -QxSSE2
|
||||
QMAKE_CFLAGS_SHANI = -QxSSE4.2
|
||||
QMAKE_CFLAGS_VAES = -QxCORE-AVX512
|
||||
|
||||
QMAKE_CXX = $$QMAKE_CC
|
||||
QMAKE_CXXFLAGS += -Qprec -Zm200 -Zc:forScope
|
||||
|
|
|
|||
Loading…
Reference in New Issue