< prev index next >

src/hotspot/share/opto/library_call.cpp

Print this page

        

@@ -6923,11 +6923,11 @@
   VecMaskUseStore,
   VecMaskUseAll,
   VecMaskNotUsed
 };
 
-static bool arch_supports_vector(int op, int num_elem, BasicType type, VectorMaskUseType mask_use_type) {
+static bool arch_supports_vector(int op, int num_elem, BasicType type, VectorMaskUseType mask_use_type, int meta = 0) {
   // Check that the operation is valid.
   if (op <= 0) {
 #ifndef PRODUCT
     if (DebugVectorApi) {
       tty->print_cr("Rejected intrinsification because no valid vector op could be extracted");

@@ -6935,11 +6935,11 @@
 #endif
     return false;
   }
 
   // Check that architecture supports this op-size-type combination.
-  if (!Matcher::match_rule_supported_vector(op, num_elem, type)) {
+  if (!Matcher::match_rule_supported_vector(op, num_elem, type, meta)) {
 #ifndef PRODUCT
     if (DebugVectorApi) {
       tty->print_cr("Rejected vector op (%s,%s,%d) because architecture does not support it",
                     NodeClassNames[op], type2name(type), num_elem);
     }

@@ -7248,11 +7248,11 @@
   int sopc = VectorNode::opcode(opc, elem_bt); // get_node_id(opr->get_con(), elem_bt);
   ciKlass* vbox_klass = vector_klass->const_oop()->as_instance()->java_lang_Class_klass();
   const TypeInstPtr* vbox_type = TypeInstPtr::make_exact(TypePtr::NotNull, vbox_klass);
 
   // TODO When mask usage is supported, VecMaskNotUsed needs to be VecMaskUseLoad.
-  if (!arch_supports_vector(sopc, num_elem, elem_bt, vbox_klass->is_vectormask() ? VecMaskUseAll : VecMaskNotUsed)) {
+  if (!arch_supports_vector(sopc, num_elem, elem_bt, vbox_klass->is_vectormask() ? VecMaskUseAll : VecMaskNotUsed, n)) {
     return false; // not supported
   }
 
   Node* opd1 = NULL; Node* opd2 = NULL; Node* opd3 = NULL;
   switch (n) {
< prev index next >