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