1701 case Op_SqrtVD:
1702 if (UseAVX < 1) // enabled for AVX only
1703 ret_value = false;
1704 break;
1705 case Op_CompareAndSwapL:
1706 #ifdef _LP64
1707 case Op_CompareAndSwapP:
1708 #endif
1709 if (!VM_Version::supports_cx8())
1710 ret_value = false;
1711 break;
1712 case Op_CMoveVD:
1713 if (UseAVX < 1 || UseAVX > 2)
1714 ret_value = false;
1715 break;
1716 case Op_StrIndexOf:
1717 if (!UseSSE42Intrinsics)
1718 ret_value = false;
1719 break;
1720 case Op_StrIndexOfChar:
1721 if (!(UseSSE > 4))
1722 ret_value = false;
1723 break;
1724 case Op_OnSpinWait:
1725 if (VM_Version::supports_on_spin_wait() == false)
1726 ret_value = false;
1727 break;
1728 }
1729
1730 return ret_value; // Per default match rules are supported.
1731 }
1732
1733 const bool Matcher::match_rule_supported_vector(int opcode, int vlen) {
1734 // identify extra cases that we might want to provide match rules for
1735 // e.g. Op_ vector nodes and other intrinsics while guarding with vlen
1736 bool ret_value = match_rule_supported(opcode);
1737 if (ret_value) {
1738 switch (opcode) {
1739 case Op_AddVB:
1740 case Op_SubVB:
1741 if ((vlen == 64) && (VM_Version::supports_avx512bw() == false))
|
1701 case Op_SqrtVD:
1702 if (UseAVX < 1) // enabled for AVX only
1703 ret_value = false;
1704 break;
1705 case Op_CompareAndSwapL:
1706 #ifdef _LP64
1707 case Op_CompareAndSwapP:
1708 #endif
1709 if (!VM_Version::supports_cx8())
1710 ret_value = false;
1711 break;
1712 case Op_CMoveVD:
1713 if (UseAVX < 1 || UseAVX > 2)
1714 ret_value = false;
1715 break;
1716 case Op_StrIndexOf:
1717 if (!UseSSE42Intrinsics)
1718 ret_value = false;
1719 break;
1720 case Op_StrIndexOfChar:
1721 if (UseSSE < 4)
1722 ret_value = false;
1723 break;
1724 case Op_OnSpinWait:
1725 if (VM_Version::supports_on_spin_wait() == false)
1726 ret_value = false;
1727 break;
1728 }
1729
1730 return ret_value; // Per default match rules are supported.
1731 }
1732
1733 const bool Matcher::match_rule_supported_vector(int opcode, int vlen) {
1734 // identify extra cases that we might want to provide match rules for
1735 // e.g. Op_ vector nodes and other intrinsics while guarding with vlen
1736 bool ret_value = match_rule_supported(opcode);
1737 if (ret_value) {
1738 switch (opcode) {
1739 case Op_AddVB:
1740 case Op_SubVB:
1741 if ((vlen == 64) && (VM_Version::supports_avx512bw() == false))
|