< prev index next >

src/hotspot/share/opto/library_call.hpp

Print this page
@@ -316,10 +316,11 @@
    bool inline_vector_broadcast_coerced();
    bool inline_vector_shuffle_to_vector();
    bool inline_vector_shuffle_iota();
    bool inline_vector_mask_operation();
    bool inline_vector_mem_operation(bool is_store);
+   bool inline_vector_mem_masked_operation(bool is_store);
    bool inline_vector_gather_scatter(bool is_scatter);
    bool inline_vector_reduction();
    bool inline_vector_test();
    bool inline_vector_blend();
    bool inline_vector_rearrange();

@@ -329,18 +330,19 @@
    bool inline_vector_extract();
    bool inline_vector_insert();
    Node* gen_call_to_svml(int vector_api_op_id, BasicType bt, int num_elem, Node* opd1, Node* opd2);
  
    enum VectorMaskUseType {
-     VecMaskUseLoad,
-     VecMaskUseStore,
-     VecMaskUseAll,
-     VecMaskNotUsed
+     VecMaskUseLoad  = 1 << 0,
+     VecMaskUseStore = 1 << 1,
+     VecMaskUseAll   = VecMaskUseLoad | VecMaskUseStore,
+     VecMaskUsePred  = 1 << 2,
+     VecMaskNotUsed  = 1 << 3
    };
  
    bool arch_supports_vector(int op, int num_elem, BasicType type, VectorMaskUseType mask_use_type, bool has_scalar_args = false);
-   bool arch_supports_vector_rotate(int opc, int num_elem, BasicType elem_bt, bool has_scalar_args = false);
+   bool arch_supports_vector_rotate(int opc, int num_elem, BasicType elem_bt, VectorMaskUseType mask_use_type, bool has_scalar_args = false);
  
    void clear_upper_avx() {
  #ifdef X86
      if (UseAVX >= 2) {
        C->set_clear_upper_avx(true);
< prev index next >