< prev index next >

src/cpu/x86/vm/x86.ad

Print this page




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))


< prev index next >