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