< prev index next >

src/hotspot/share/opto/library_call.hpp

Print this page

314   bool inline_isCompileConstant();
315 
316   // Vector API support
317   bool inline_vector_nary_operation(int n);
318   bool inline_vector_frombits_coerced();
319   bool inline_vector_shuffle_to_vector();
320   bool inline_vector_shuffle_iota();
321   bool inline_vector_mask_operation();
322   bool inline_vector_mem_operation(bool is_store);
323   bool inline_vector_mem_masked_operation(bool is_store);
324   bool inline_vector_gather_scatter(bool is_scatter);
325   bool inline_vector_reduction();
326   bool inline_vector_test();
327   bool inline_vector_blend();
328   bool inline_vector_rearrange();
329   bool inline_vector_compare();
330   bool inline_vector_broadcast_int();
331   bool inline_vector_convert();
332   bool inline_vector_extract();
333   bool inline_vector_insert();


334   Node* gen_call_to_svml(int vector_api_op_id, BasicType bt, int num_elem, Node* opd1, Node* opd2);
335 
336   enum VectorMaskUseType {
337     VecMaskUseLoad  = 1 << 0,
338     VecMaskUseStore = 1 << 1,
339     VecMaskUseAll   = VecMaskUseLoad | VecMaskUseStore,
340     VecMaskUsePred  = 1 << 2,
341     VecMaskNotUsed  = 1 << 3
342   };
343 
344   bool arch_supports_vector(int op, int num_elem, BasicType type, VectorMaskUseType mask_use_type, bool has_scalar_args = false);
345   bool arch_supports_vector_rotate(int opc, int num_elem, BasicType elem_bt, VectorMaskUseType mask_use_type, bool has_scalar_args = false);
346 
347   void clear_upper_avx() {
348 #ifdef X86
349     if (UseAVX >= 2) {
350       C->set_clear_upper_avx(true);
351     }
352 #endif
353   }

314   bool inline_isCompileConstant();
315 
316   // Vector API support
317   bool inline_vector_nary_operation(int n);
318   bool inline_vector_frombits_coerced();
319   bool inline_vector_shuffle_to_vector();
320   bool inline_vector_shuffle_iota();
321   bool inline_vector_mask_operation();
322   bool inline_vector_mem_operation(bool is_store);
323   bool inline_vector_mem_masked_operation(bool is_store);
324   bool inline_vector_gather_scatter(bool is_scatter);
325   bool inline_vector_reduction();
326   bool inline_vector_test();
327   bool inline_vector_blend();
328   bool inline_vector_rearrange();
329   bool inline_vector_compare();
330   bool inline_vector_broadcast_int();
331   bool inline_vector_convert();
332   bool inline_vector_extract();
333   bool inline_vector_insert();
334   bool inline_vector_compress_expand();
335 
336   Node* gen_call_to_svml(int vector_api_op_id, BasicType bt, int num_elem, Node* opd1, Node* opd2);
337 
338   enum VectorMaskUseType {
339     VecMaskUseLoad  = 1 << 0,
340     VecMaskUseStore = 1 << 1,
341     VecMaskUseAll   = VecMaskUseLoad | VecMaskUseStore,
342     VecMaskUsePred  = 1 << 2,
343     VecMaskNotUsed  = 1 << 3
344   };
345 
346   bool arch_supports_vector(int op, int num_elem, BasicType type, VectorMaskUseType mask_use_type, bool has_scalar_args = false);
347   bool arch_supports_vector_rotate(int opc, int num_elem, BasicType elem_bt, VectorMaskUseType mask_use_type, bool has_scalar_args = false);
348 
349   void clear_upper_avx() {
350 #ifdef X86
351     if (UseAVX >= 2) {
352       C->set_clear_upper_avx(true);
353     }
354 #endif
355   }
< prev index next >