650 }
651 if (FLAG_IS_DEFAULT(UseAVX)) {
652 FLAG_SET_DEFAULT(UseAVX, use_avx_limit);
653 } else if (UseAVX > use_avx_limit) {
654 warning("UseAVX=%d is not supported on this CPU, setting it to UseAVX=%d", (int) UseAVX, use_avx_limit);
655 FLAG_SET_DEFAULT(UseAVX, use_avx_limit);
656 } else if (UseAVX < 0) {
657 warning("UseAVX=%d is not valid, setting it to UseAVX=0", (int) UseAVX);
658 FLAG_SET_DEFAULT(UseAVX, 0);
659 }
660
661 if (UseAVX < 3) {
662 _features &= ~CPU_AVX512F;
663 _features &= ~CPU_AVX512DQ;
664 _features &= ~CPU_AVX512CD;
665 _features &= ~CPU_AVX512BW;
666 _features &= ~CPU_AVX512VL;
667 _features &= ~CPU_AVX512_VPOPCNTDQ;
668 _features &= ~CPU_VPCLMULQDQ;
669 _features &= ~CPU_VAES;
670 }
671
672 if (UseAVX < 2)
673 _features &= ~CPU_AVX2;
674
675 if (UseAVX < 1) {
676 _features &= ~CPU_AVX;
677 _features &= ~CPU_VZEROUPPER;
678 }
679
680 if (logical_processors_per_package() == 1) {
681 // HT processor could be installed on a system which doesn't support HT.
682 _features &= ~CPU_HT;
683 }
684
685 if( is_intel() ) { // Intel cpus specific settings
686 if (is_knights_family()) {
687 _features &= ~CPU_VZEROUPPER;
688 }
689 }
|
650 }
651 if (FLAG_IS_DEFAULT(UseAVX)) {
652 FLAG_SET_DEFAULT(UseAVX, use_avx_limit);
653 } else if (UseAVX > use_avx_limit) {
654 warning("UseAVX=%d is not supported on this CPU, setting it to UseAVX=%d", (int) UseAVX, use_avx_limit);
655 FLAG_SET_DEFAULT(UseAVX, use_avx_limit);
656 } else if (UseAVX < 0) {
657 warning("UseAVX=%d is not valid, setting it to UseAVX=0", (int) UseAVX);
658 FLAG_SET_DEFAULT(UseAVX, 0);
659 }
660
661 if (UseAVX < 3) {
662 _features &= ~CPU_AVX512F;
663 _features &= ~CPU_AVX512DQ;
664 _features &= ~CPU_AVX512CD;
665 _features &= ~CPU_AVX512BW;
666 _features &= ~CPU_AVX512VL;
667 _features &= ~CPU_AVX512_VPOPCNTDQ;
668 _features &= ~CPU_VPCLMULQDQ;
669 _features &= ~CPU_VAES;
670 _features &= ~CPU_AVX512VBMI;
671 }
672
673 if (UseAVX < 2)
674 _features &= ~CPU_AVX2;
675
676 if (UseAVX < 1) {
677 _features &= ~CPU_AVX;
678 _features &= ~CPU_VZEROUPPER;
679 }
680
681 if (logical_processors_per_package() == 1) {
682 // HT processor could be installed on a system which doesn't support HT.
683 _features &= ~CPU_HT;
684 }
685
686 if( is_intel() ) { // Intel cpus specific settings
687 if (is_knights_family()) {
688 _features &= ~CPU_VZEROUPPER;
689 }
690 }
|