20#ifndef GCC_OPTABS_QUERY_H
21#define GCC_OPTABS_QUERY_H
23#include "insn-opinit.h"
40 unsigned scode = (op << 20) | mode;
42 return raw_optab_handler (scode);
51 machine_mode from_mode)
53 unsigned scode = (op << 20) | (from_mode << 10) | to_mode;
55 return raw_optab_handler (scode);
78 return (unoptab == negv_optab
79 || unoptab == absv_optab);
87 return (binoptab == addv_optab
88 || binoptab == subv_optab
89 || binoptab == smulv_optab);
98 optab tab = uns ? vec_cmpu_optab : vec_cmp_optab;
117 enum insn_code icode = CODE_FOR_nothing;
169 unsigned HOST_WIDE_INT, machine_mode);
172 HOST_WIDE_INT, HOST_WIDE_INT, machine_mode);
174enum insn_code
can_extend_p (machine_mode, machine_mode,
int);
175enum insn_code
can_float_p (machine_mode, machine_mode,
int);
176enum insn_code
can_fix_p (machine_mode, machine_mode,
int,
bool *);
184#define find_widening_optab_handler(A, B, C) \
185 find_widening_optab_handler_and_mode (A, B, C, NULL)
204 const T &from_mode, T *found_mode)
208 (op, machine_mode (to_mode), machine_mode (from_mode), &tmp);
209 if (icode != CODE_FOR_nothing && found_mode)
Definition machmode.h:427
Definition vec-perm-indices.h:51
optimization_type
Definition coretypes.h:275
@ unknown_optab
Definition gensupport.h:58
T as_a(U *p)
Definition is-a.h:253
bool trapv_binoptab_p(optab binoptab)
Definition optabs-query.h:85
bool get_best_mem_extraction_insn(extraction_insn *, enum extraction_pattern, HOST_WIDE_INT, HOST_WIDE_INT, machine_mode)
Definition optabs-query.cc:259
enum insn_code find_widening_optab_handler_and_mode(optab, machine_mode, machine_mode, machine_mode *)
Definition optabs-query.cc:471
bool can_vec_perm_const_p(machine_mode, machine_mode, const vec_perm_indices &, bool=true)
Definition optabs-query.cc:421
bool supports_vec_gather_load_p(machine_mode=E_VOIDmode)
Definition optabs-query.cc:689
enum insn_code get_vcond_eq_icode(machine_mode vmode, machine_mode cmode)
Definition optabs-query.h:138
bool lshift_cheap_p(bool)
Definition optabs-query.cc:641
enum insn_code get_vec_cmp_icode(machine_mode vmode, machine_mode mask_mode, bool uns)
Definition optabs-query.h:96
enum insn_code can_float_p(machine_mode, machine_mode, int)
Definition optabs-query.cc:292
bool can_vec_extract(machine_mode, machine_mode)
Definition optabs-query.cc:722
enum insn_code get_vec_cmp_eq_icode(machine_mode vmode, machine_mode mask_mode)
Definition optabs-query.h:106
enum insn_code can_extend_p(machine_mode, machine_mode, int)
Definition optabs-query.cc:277
bool can_vec_perm_var_p(machine_mode)
Definition optabs-query.cc:379
bool can_conditionally_move_p(machine_mode mode)
Definition optabs-query.cc:345
enum insn_code get_vcond_icode(machine_mode vmode, machine_mode cmode, bool uns)
Definition optabs-query.h:115
bool can_compare_and_swap_p(machine_mode, bool)
Definition optabs-query.cc:580
opt_machine_mode qimode_for_vec_perm(machine_mode)
Definition optabs-query.cc:356
enum insn_code can_fix_p(machine_mode, machine_mode, int, bool *)
Definition optabs-query.cc:307
enum insn_code convert_optab_handler(convert_optab op, machine_mode to_mode, machine_mode from_mode)
Definition optabs-query.h:50
enum insn_code optab_handler(optab op, machine_mode mode)
Definition optabs-query.h:38
bool convert_optab_p(optab op)
Definition optabs-query.h:29
int can_mult_highpart_p(machine_mode, bool)
Definition optabs-query.cc:511
extraction_pattern
Definition optabs-query.h:144
@ EP_extzv
Definition optabs-query.h:144
@ EP_insv
Definition optabs-query.h:144
@ EP_extv
Definition optabs-query.h:144
enum insn_code get_vcond_mask_icode(machine_mode vmode, machine_mode mmode)
Definition optabs-query.h:129
bool can_atomic_load_p(machine_mode)
Definition optabs-query.cc:623
bool trapv_unoptab_p(optab unoptab)
Definition optabs-query.h:76
enum insn_code direct_optab_handler(direct_optab op, machine_mode mode)
Definition optabs-query.h:65
bool get_best_reg_extraction_insn(extraction_insn *, enum extraction_pattern, unsigned HOST_WIDE_INT, machine_mode)
Definition optabs-query.cc:240
bool supports_vec_scatter_store_p(machine_mode=E_VOIDmode)
Definition optabs-query.cc:706
bool selector_fits_mode_p(machine_mode, const vec_perm_indices &)
Definition optabs-query.cc:367
bool can_atomic_exchange_p(machine_mode, bool)
Definition optabs-query.cc:603
#define gcc_assert(EXPR)
Definition system.h:821