GCC Middle and Back End API Reference
|
Public Member Functions | |
void | build (vec_info *) final override |
Static Public Member Functions | |
static internal_fn | matches (complex_operation_t op, slp_tree_to_load_perm_map_t *, slp_compat_nodes_map_t *, slp_tree *, vec< slp_tree > *) |
static vect_pattern * | recognize (slp_tree_to_load_perm_map_t *, slp_compat_nodes_map_t *, slp_tree *) |
static vect_pattern * | mkInstance (slp_tree *node, vec< slp_tree > *m_ops, internal_fn ifn) |
static internal_fn | matches (complex_operation_t op, slp_tree_to_load_perm_map_t *, slp_tree *, vec< slp_tree > *) |
Protected Member Functions | |
complex_add_pattern (slp_tree *node, vec< slp_tree > *m_ops, internal_fn ifn) | |
Protected Attributes | |
auto_vec< slp_tree > | m_workset |
unsigned | m_num_args |
internal_fn | m_ifn |
slp_tree * | m_node |
vec< slp_tree > | m_ops |
|
inlineprotected |
References vect_pattern::m_num_args.
Referenced by mkInstance(), and recognize().
|
finaloverridevirtual |
Perform a replacement of the detected complex add pattern with the new instruction sequences.
Implements vect_pattern.
References complex_pattern::build(), vect_pattern::m_node, vect_pattern::m_ops, SLP_TREE_CHILDREN, SLP_TREE_REF_COUNT, vect_build_swap_evenodd_node(), and vect_free_slp_tree().
|
static |
Pattern matcher for trying to match complex addition pattern in SLP tree. If no match is found then IFN is set to IFN_LAST. This function matches the patterns shaped as: c[i] = a[i] - b[i+1]; c[i+1] = a[i+1] + b[i]; If a match occurred then TRUE is returned, else FALSE. The initial match is expected to be in OP1 and the initial match operands in args0.
References gcc_assert, linear_loads_p(), MINUS_PLUS, PERM_EVENODD, PERM_ODDEVEN, PLUS_MINUS, SLP_TREE_CHILDREN, and vect_pattern_validate_optab().
Referenced by recognize(), and complex_operations_pattern::recognize().
|
staticinherited |
|
inlinestatic |
References complex_add_pattern(), and vect_pattern::m_ops.
Referenced by complex_operations_pattern::recognize().
|
static |
Attempt to recognize a complex add pattern.
References complex_add_pattern(), matches(), NULL, and vect_detect_pair_op().
|
protectedinherited |
Referenced by addsub_pattern::build(), complex_mul_pattern::build(), and complex_pattern::build().
|
protectedinherited |
Referenced by addsub_pattern::build(), build(), complex_fms_pattern::build(), and complex_mul_pattern::build().
|
protectedinherited |
Referenced by complex_pattern::build().