20#ifndef GCC_INTERNAL_FN_H
21#define GCC_INTERNAL_FN_H
23#include "insn-codes.h"
24#include "insn-opinit.h"
43#define IFN_UNIQUE_CODES \
45 DEF(OACC_FORK), DEF(OACC_JOIN), \
46 DEF(OACC_HEAD_MARK), DEF(OACC_TAIL_MARK), \
50#define DEF(X) IFN_UNIQUE_##X
72#define IFN_GOACC_LOOP_CODES \
73 DEF(CHUNKS), DEF(STEP), DEF(OFFSET), DEF(BOUND)
75#define DEF(X) IFN_GOACC_LOOP_##X
95#define IFN_GOACC_REDUCTION_CODES \
96 DEF(SETUP), DEF(INIT), DEF(FINI), DEF(TEARDOWN)
98#define DEF(X) IFN_GOACC_REDUCTION_##X
246#define VECT_PARTIAL_BIAS_UNSUPPORTED 127
252 bool,
bool,
bool,
bool,
tree *);
std::pair< tree, tree > tree_pair
Definition coretypes.h:374
const union tree_node * const_tree
Definition coretypes.h:98
#define GTY(x)
Definition coretypes.h:41
union tree_node * tree
Definition coretypes.h:97
optimization_type
Definition coretypes.h:272
internal_fn
Definition genmatch.cc:360
@ IFN_LAST
Definition genmatch.cc:362
tree_code
Definition genmatch.cc:347
T * ggc_alloc(ALONE_CXX_MEM_STAT_INFO)
Definition ggc.h:184
bool set_edom_supported_p(void)
Definition internal-fn.cc:4327
bool vectorizable_internal_fn_p(internal_fn fn)
Definition internal-fn.h:181
signed char internal_len_load_store_bias(internal_fn ifn, machine_mode)
Definition internal-fn.cc:4917
const direct_internal_fn_info & direct_internal_fn(internal_fn fn)
Definition internal-fn.h:190
bool direct_internal_fn_p(internal_fn fn)
Definition internal-fn.h:170
bool internal_gather_scatter_fn_p(internal_fn)
Definition internal-fn.cc:4674
int internal_fn_mask_index(internal_fn)
Definition internal-fn.cc:4806
#define IFN_GOACC_REDUCTION_CODES
Definition internal-fn.h:95
int first_commutative_argument(internal_fn)
Definition internal-fn.cc:4255
void expand_CLZ(internal_fn, gcall *)
Definition internal-fn.cc:5181
tree_pair direct_internal_fn_types(internal_fn, tree, tree *)
Definition internal-fn.cc:3982
tree_code conditional_internal_fn_code(internal_fn)
Definition internal-fn.cc:4417
bool commutative_binary_fn_p(internal_fn)
Definition internal-fn.cc:4186
const_tree internal_fn_fnspec(enum internal_fn fn)
Definition internal-fn.h:139
internal_fn get_len_internal_fn(internal_fn)
Definition internal-fn.cc:4507
int internal_fn_flags(enum internal_fn fn)
Definition internal-fn.h:129
internal_fn get_unconditional_internal_fn(internal_fn)
Definition internal-fn.cc:4527
const char * internal_fn_name(enum internal_fn fn)
Definition internal-fn.h:113
void expand_addsub_overflow(location_t, tree_code, tree, tree, tree, bool, bool, bool, bool, tree *)
Definition internal-fn.cc:1057
void expand_MULBITINT(internal_fn, gcall *)
Definition internal-fn.cc:5056
bool internal_load_fn_p(internal_fn)
Definition internal-fn.cc:4628
const direct_internal_fn_info direct_internal_fn_array[IFN_LAST+1]
Definition internal-fn.cc:193
void init_internal_fns()
Definition internal-fn.cc:146
internal_fn get_conditional_len_internal_fn(tree_code)
Definition internal-fn.cc:4454
void expand_DIVMODBITINT(internal_fn, gcall *)
Definition internal-fn.cc:5067
#define IFN_GOACC_LOOP_CODES
Definition internal-fn.h:72
const_tree internal_fn_fnspec_array[IFN_LAST+1]
Definition internal-fn.cc:143
bool internal_check_ptrs_fn_supported_p(internal_fn, tree, poly_uint64, unsigned int)
Definition internal-fn.cc:4897
void expand_POPCOUNT(internal_fn, gcall *)
Definition internal-fn.cc:5209
int internal_fn_stored_value_index(internal_fn)
Definition internal-fn.cc:4839
ifn_unique_kind
Definition internal-fn.h:49
void expand_FLOATTOBITINT(internal_fn, gcall *)
Definition internal-fn.cc:5078
void expand_CTZ(internal_fn, gcall *)
Definition internal-fn.cc:5188
const char *const internal_fn_name_array[]
Definition internal-fn.cc:63
bool widening_fn_p(code_helper)
Definition internal-fn.cc:4299
int internal_fn_len_index(internal_fn)
Definition internal-fn.cc:4695
void expand_FFS(internal_fn, gcall *)
Definition internal-fn.cc:5195
void expand_SHUFFLEVECTOR(internal_fn, gcall *)
Definition internal-fn.cc:5008
ifn_goacc_loop_kind
Definition internal-fn.h:74
const int internal_fn_flags_array[]
Definition internal-fn.cc:70
void expand_SPACESHIP(internal_fn, gcall *)
Definition internal-fn.cc:5020
void expand_TRAP(internal_fn, gcall *)
#define IFN_UNIQUE_CODES
Definition internal-fn.h:43
void lookup_hilo_internal_fn(internal_fn, internal_fn *, internal_fn *)
Definition internal-fn.cc:100
bool commutative_ternary_fn_p(internal_fn)
Definition internal-fn.cc:4219
ifn_goacc_reduction_kind
Definition internal-fn.h:97
void expand_PHI(internal_fn, gcall *)
Definition internal-fn.cc:5014
bool can_interpret_as_conditional_op_p(gimple *, tree *, tree_code *, tree(&)[3], tree *, tree *, tree *)
Definition internal-fn.cc:4574
void expand_internal_call(gcall *)
Definition internal-fn.cc:4965
void expand_MASK_CALL(internal_fn, gcall *)
Definition internal-fn.cc:5049
bool associative_binary_fn_p(internal_fn)
Definition internal-fn.cc:4238
int internal_fn_else_index(internal_fn)
Definition internal-fn.cc:4745
internal_fn get_conditional_internal_fn(tree_code)
Definition internal-fn.cc:4401
optab direct_internal_fn_optab(internal_fn, tree_pair)
Definition internal-fn.cc:4084
void lookup_evenodd_internal_fn(internal_fn, internal_fn *, internal_fn *)
Definition internal-fn.cc:122
void expand_CLRSB(internal_fn, gcall *)
Definition internal-fn.cc:5174
bool internal_gather_scatter_fn_supported_p(internal_fn, tree, tree, tree, int)
Definition internal-fn.cc:4872
bool direct_internal_fn_supported_p(internal_fn, tree_pair, optimization_type)
Definition internal-fn.cc:4130
void expand_BITINTTOFLOAT(internal_fn, gcall *)
Definition internal-fn.cc:5115
@ ATOMIC_OP_FETCH_CMP_0_EQ
Definition internal-fn.h:275
@ ATOMIC_OP_FETCH_CMP_0_GT
Definition internal-fn.h:279
@ ATOMIC_OP_FETCH_CMP_0_LE
Definition internal-fn.h:278
@ ATOMIC_OP_FETCH_CMP_0_LT
Definition internal-fn.h:277
@ ATOMIC_OP_FETCH_CMP_0_GE
Definition internal-fn.h:280
@ ATOMIC_OP_FETCH_CMP_0_NE
Definition internal-fn.h:276
void expand_PARITY(internal_fn, gcall *)
Definition internal-fn.cc:5202
bool internal_store_fn_p(internal_fn)
Definition internal-fn.cc:4651
void expand_ASSUME(internal_fn, gcall *)
Definition internal-fn.cc:5044
internal_fn lookup_internal_fn(const char *)
Definition internal-fn.cc:80
bool vectorized_internal_fn_supported_p(internal_fn, tree)
Definition internal-fn.cc:4976
Definition internal-fn.h:146
signed int type1
Definition internal-fn.h:154
signed int type0
Definition internal-fn.h:153
unsigned int vectorizable
Definition internal-fn.h:162
#define gcc_checking_assert(EXPR)
Definition system.h:828