838 UseCRC32CIntrinsics = true; 839 } 840 } else if (UseCRC32CIntrinsics) { 841 if (!FLAG_IS_DEFAULT(UseCRC32CIntrinsics)) { 842 warning("CRC32C intrinsics are not available on this CPU"); 843 } 844 FLAG_SET_DEFAULT(UseCRC32CIntrinsics, false); 845 } 846 847 // GHASH/GCM intrinsics 848 if (UseCLMUL && (UseSSE > 2)) { 849 if (FLAG_IS_DEFAULT(UseGHASHIntrinsics)) { 850 UseGHASHIntrinsics = true; 851 } 852 } else if (UseGHASHIntrinsics) { 853 if (!FLAG_IS_DEFAULT(UseGHASHIntrinsics)) 854 warning("GHASH intrinsic requires CLMUL and SSE2 instructions on this CPU"); 855 FLAG_SET_DEFAULT(UseGHASHIntrinsics, false); 856 } 857 858 if (supports_fma() && UseSSE >= 2) { // Check UseSSE since FMA code uses SSE instructions 859 if (FLAG_IS_DEFAULT(UseFMA)) { 860 UseFMA = true; 861 } 862 } else if (UseFMA) { 863 warning("FMA instructions are not available on this CPU"); 864 FLAG_SET_DEFAULT(UseFMA, false); 865 } 866 867 if (supports_sha() LP64_ONLY(|| supports_avx2() && supports_bmi2())) { 868 if (FLAG_IS_DEFAULT(UseSHA)) { 869 UseSHA = true; 870 } 871 } else if (UseSHA) { 872 warning("SHA instructions are not available on this CPU"); 873 FLAG_SET_DEFAULT(UseSHA, false); 874 } 875 876 if (supports_sha() && UseSHA) { 877 if (FLAG_IS_DEFAULT(UseSHA1Intrinsics)) { | 838 UseCRC32CIntrinsics = true; 839 } 840 } else if (UseCRC32CIntrinsics) { 841 if (!FLAG_IS_DEFAULT(UseCRC32CIntrinsics)) { 842 warning("CRC32C intrinsics are not available on this CPU"); 843 } 844 FLAG_SET_DEFAULT(UseCRC32CIntrinsics, false); 845 } 846 847 // GHASH/GCM intrinsics 848 if (UseCLMUL && (UseSSE > 2)) { 849 if (FLAG_IS_DEFAULT(UseGHASHIntrinsics)) { 850 UseGHASHIntrinsics = true; 851 } 852 } else if (UseGHASHIntrinsics) { 853 if (!FLAG_IS_DEFAULT(UseGHASHIntrinsics)) 854 warning("GHASH intrinsic requires CLMUL and SSE2 instructions on this CPU"); 855 FLAG_SET_DEFAULT(UseGHASHIntrinsics, false); 856 } 857 858 // Base64 Intrinsics (Check the condition for which the intrinsic will be active) 859 if ((UseAVX > 2) && supports_avx512vl() && supports_avx512bw()) { 860 if (FLAG_IS_DEFAULT(UseBASE64Intrinsics)) { 861 UseBASE64Intrinsics = true; 862 } 863 } else if (UseBASE64Intrinsics) { 864 if (!FLAG_IS_DEFAULT(UseBASE64Intrinsics)) 865 warning("Base64 intrinsic requires EVEX instructions on this CPU"); 866 FLAG_SET_DEFAULT(UseBASE64Intrinsics, false); 867 } 868 869 if (supports_fma() && UseSSE >= 2) { // Check UseSSE since FMA code uses SSE instructions 870 if (FLAG_IS_DEFAULT(UseFMA)) { 871 UseFMA = true; 872 } 873 } else if (UseFMA) { 874 warning("FMA instructions are not available on this CPU"); 875 FLAG_SET_DEFAULT(UseFMA, false); 876 } 877 878 if (supports_sha() LP64_ONLY(|| supports_avx2() && supports_bmi2())) { 879 if (FLAG_IS_DEFAULT(UseSHA)) { 880 UseSHA = true; 881 } 882 } else if (UseSHA) { 883 warning("SHA instructions are not available on this CPU"); 884 FLAG_SET_DEFAULT(UseSHA, false); 885 } 886 887 if (supports_sha() && UseSHA) { 888 if (FLAG_IS_DEFAULT(UseSHA1Intrinsics)) { |