341 bool inline_vector_nary_operation(int n);
342 bool inline_vector_frombits_coerced();
343 bool inline_vector_shuffle_to_vector();
344 bool inline_vector_shuffle_iota();
345 bool inline_vector_mask_operation();
346 bool inline_vector_mem_operation(bool is_store);
347 bool inline_vector_mem_masked_operation(bool is_store);
348 bool inline_vector_gather_scatter(bool is_scatter);
349 bool inline_vector_reduction();
350 bool inline_vector_test();
351 bool inline_vector_blend();
352 bool inline_vector_rearrange();
353 bool inline_vector_compare();
354 bool inline_vector_broadcast_int();
355 bool inline_vector_convert();
356 bool inline_vector_extract();
357 bool inline_vector_insert();
358 bool inline_vector_compress_expand();
359 bool inline_index_vector();
360
361 Node* gen_call_to_svml(int vector_api_op_id, BasicType bt, int num_elem, Node* opd1, Node* opd2);
362
363 enum VectorMaskUseType {
364 VecMaskUseLoad = 1 << 0,
365 VecMaskUseStore = 1 << 1,
366 VecMaskUseAll = VecMaskUseLoad | VecMaskUseStore,
367 VecMaskUsePred = 1 << 2,
368 VecMaskNotUsed = 1 << 3
369 };
370
371 bool arch_supports_vector(int op, int num_elem, BasicType type, VectorMaskUseType mask_use_type, bool has_scalar_args = false);
372 bool arch_supports_vector_rotate(int opc, int num_elem, BasicType elem_bt, VectorMaskUseType mask_use_type, bool has_scalar_args = false);
373
374 void clear_upper_avx() {
375 #ifdef X86
376 if (UseAVX >= 2) {
377 C->set_clear_upper_avx(true);
378 }
379 #endif
380 }
381
382 bool inline_getObjectSize();
383
384 bool inline_blackhole();
385 };
386
|
341 bool inline_vector_nary_operation(int n);
342 bool inline_vector_frombits_coerced();
343 bool inline_vector_shuffle_to_vector();
344 bool inline_vector_shuffle_iota();
345 bool inline_vector_mask_operation();
346 bool inline_vector_mem_operation(bool is_store);
347 bool inline_vector_mem_masked_operation(bool is_store);
348 bool inline_vector_gather_scatter(bool is_scatter);
349 bool inline_vector_reduction();
350 bool inline_vector_test();
351 bool inline_vector_blend();
352 bool inline_vector_rearrange();
353 bool inline_vector_compare();
354 bool inline_vector_broadcast_int();
355 bool inline_vector_convert();
356 bool inline_vector_extract();
357 bool inline_vector_insert();
358 bool inline_vector_compress_expand();
359 bool inline_index_vector();
360
361 bool inline_timestamp(bool serial);
362
363 Node* gen_call_to_svml(int vector_api_op_id, BasicType bt, int num_elem, Node* opd1, Node* opd2);
364
365 enum VectorMaskUseType {
366 VecMaskUseLoad = 1 << 0,
367 VecMaskUseStore = 1 << 1,
368 VecMaskUseAll = VecMaskUseLoad | VecMaskUseStore,
369 VecMaskUsePred = 1 << 2,
370 VecMaskNotUsed = 1 << 3
371 };
372
373 bool arch_supports_vector(int op, int num_elem, BasicType type, VectorMaskUseType mask_use_type, bool has_scalar_args = false);
374 bool arch_supports_vector_rotate(int opc, int num_elem, BasicType elem_bt, VectorMaskUseType mask_use_type, bool has_scalar_args = false);
375
376 void clear_upper_avx() {
377 #ifdef X86
378 if (UseAVX >= 2) {
379 C->set_clear_upper_avx(true);
380 }
381 #endif
382 }
383
384 bool inline_getObjectSize();
385
386 bool inline_blackhole();
387
388 bool inline_sizeOf();
389 bool inline_sizeOf_impl(Node* obj);
390
391 bool inline_addressOf();
392
393 };
394
|