diff options
Diffstat (limited to 'conf/machine/include/tune-skylake.inc')
-rw-r--r-- | conf/machine/include/tune-skylake.inc | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/conf/machine/include/tune-skylake.inc b/conf/machine/include/tune-skylake.inc new file mode 100644 index 00000000..4882600b --- /dev/null +++ b/conf/machine/include/tune-skylake.inc @@ -0,0 +1,48 @@ +# Settings for the GCC(1) cpu-type "skylake": +# +# Intel Skylake CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, +# SSE4.2, AVX, AVX2 and POPCNT instruction set support. +# +# This tune is recommended for Intel Skylake CPU (and beyond). +# +DEFAULTTUNE ?= "skylake-64" + +# Include the previous tune to pull in PACKAGE_EXTRA_ARCHS +require conf/machine/include/tune-corei7.inc + +# Extra tune features +TUNEVALID[skylake] = "Enable skylake specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'skylake', ' -march=skylake ${SKYLAKE_TUNE} -mfpmath=sse', '', d)}" + +# Extra tune selections + +AVAILTUNES += "skylake-64" +TUNE_FEATURES_tune-skylake-64 = "${TUNE_FEATURES_tune-x86-64} skylake" +BASE_LIB_tune-skylake-64 = "lib64" +TUNE_PKGARCH_tune-skylake-64 = "skylake-64" +PACKAGE_EXTRA_ARCHS_tune-skylake-64 = "${PACKAGE_EXTRA_ARCHS_tune-core2-64} skylake-64" +QEMU_EXTRAOPTIONS_skylake-64 = " -cpu Skylake-Client" + + +# Disable QEMU usermode by default (get avx2) +MACHINE_FEATURES_remove = "qemu-usermode" + +# If qemu-usermode is enabled, we have to disable avx2 ISA extensions, but we can keep mtune as skylake vs generic +SKYLAKE_TUNE .= "${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', ' -mtune=skylake ${QEMU_UNAVAILABLE_ISA}', '-mtune=generic -mavx2', d)}" + +QEMU_UNAVAILABLE_ISA = " \ +-mno-avx \ +-mno-avx2 \ +-mno-avx512f \ +-mno-avx512er \ +-mno-avx512cd \ +-mno-avx512pf \ +-mno-avx512dq \ +-mno-avx512bw \ +-mno-avx512vl \ +-mno-avx512ifma \ +-mno-avx512vbmi \ +-mno-avx512vbmi2 \ +-mno-avx512vnni \ +-mno-avx512bitalg \ +" |