Operations

Enumerations

enum  arbb_opcode_t {
  arbb_op_abs, arbb_op_acos, arbb_op_asin, arbb_op_atan,
  arbb_op_ceil, arbb_op_copy, arbb_op_cos, arbb_op_cosh,
  arbb_op_exp, arbb_op_exp10, arbb_op_floor, arbb_op_ln,
  arbb_op_log10, arbb_op_log_not, arbb_op_bit_not, arbb_op_rcp,
  arbb_op_round, arbb_op_rsqrt, arbb_op_sin, arbb_op_sinh,
  arbb_op_sqrt, arbb_op_tan, arbb_op_tanh, arbb_op_neg,
  arbb_op_add, arbb_op_bit_and, arbb_op_atan2, arbb_op_compare,
  arbb_op_div, arbb_op_div_tan, arbb_op_equal, arbb_op_geq,
  arbb_op_greater, arbb_op_bit_or, arbb_op_leq, arbb_op_less,
  arbb_op_log_and, arbb_op_log_or, arbb_op_lsh, arbb_op_max,
  arbb_op_min, arbb_op_mod, arbb_op_mul, arbb_op_neq,
  arbb_op_pow, arbb_op_rsh, arbb_op_sub, arbb_op_bit_xor,
  arbb_op_select, arbb_op_gather, arbb_op_scatter, arbb_op_pack,
  arbb_op_unpack, arbb_op_shuffle, arbb_op_unshuffle, arbb_op_repeat,
  arbb_op_distribute, arbb_op_repeat_row, arbb_op_repeat_col, arbb_op_repeat_page,
  arbb_op_transpose, arbb_op_swap_col, arbb_op_swap_row, arbb_op_swap_page,
  arbb_op_shift_constant, arbb_op_shift_clamp, arbb_op_rotate, arbb_op_reverse,
  arbb_op_length, arbb_op_new_vector, arbb_op_apply_nesting, arbb_op_get_nesting,
  arbb_op_cat, arbb_op_cast, arbb_op_extract, arbb_op_split,
  arbb_op_unsplit, arbb_op_kill, arbb_op_index, arbb_op_mask,
  arbb_op_copy_nesting, arbb_op_flatten, arbb_op_const_vector, arbb_op_sort,
  arbb_op_sort_rank, arbb_op_replace, arbb_op_wall_clock, arbb_op_set_regular_nesting,
  arbb_op_replace_row, arbb_op_replace_col, arbb_op_replace_page, arbb_op_get_nrows,
  arbb_op_get_ncols, arbb_op_get_npages, arbb_op_replace_2d_section, arbb_op_extract_row,
  arbb_op_extract_col, arbb_op_extract_page, arbb_op_section, arbb_op_all_set,
  arbb_op_copy_length, arbb_op_segment, arbb_op_replace_segment, arbb_op_alloc,
  arbb_op_alloc_as, arbb_op_dump, arbb_op_create_dumper, arbb_op_kill_dumper,
  arbb_op_set_dumper_fmt, arbb_op_replace_element, arbb_op_get_elt_coord, arbb_op_reset_dbg,
  arbb_op_set_dbg, arbb_op_bitwise_cast, arbb_op_get_neighbor, arbb_op_expect_size,
  arbb_op_add_reduce, arbb_op_mul_reduce, arbb_op_max_reduce, arbb_op_max_reduce_loc,
  arbb_op_min_reduce, arbb_op_min_reduce_loc, arbb_op_and_reduce, arbb_op_ior_reduce,
  arbb_op_xor_reduce, arbb_op_add_scan, arbb_op_mul_scan, arbb_op_max_scan,
  arbb_op_min_scan, arbb_op_and_scan, arbb_op_ior_scan, arbb_op_xor_scan,
  arbb_op_add_merge
}
 

The set of operations that can be performed using arbb_op() or arbb_op_dynamic().

More...

Functions

ARBB_VM_EXPORT arbb_error_t arbb_op (arbb_function_t function, arbb_opcode_t opcode, const arbb_variable_t *outputs, const arbb_variable_t *inputs, void *debug_data_ptrs[], arbb_error_details_t *details)
 Adds a new instruction to the given function or executes the provided operation.
ARBB_VM_EXPORT arbb_error_t arbb_op_dynamic (arbb_function_t function, arbb_opcode_t opcode, unsigned int num_outputs, const arbb_variable_t *outputs, unsigned int num_inputs, const arbb_variable_t *inputs, void *debug_data_ptrs[], arbb_error_details_t *details)
 Adds a new instruction to the given function or executes the provided operation.

Enumeration Type Documentation

The set of operations that can be performed using arbb_op() or arbb_op_dynamic().

Enumerator:
arbb_op_abs 
arbb_op_acos 
arbb_op_asin 
arbb_op_atan 
arbb_op_ceil 
arbb_op_copy 
arbb_op_cos 
arbb_op_cosh 
arbb_op_exp 
arbb_op_exp10 
arbb_op_floor 
arbb_op_ln 
arbb_op_log10 
arbb_op_log_not 
arbb_op_bit_not 
arbb_op_rcp 
arbb_op_round 
arbb_op_rsqrt 
arbb_op_sin 
arbb_op_sinh 
arbb_op_sqrt 
arbb_op_tan 
arbb_op_tanh 
arbb_op_neg 
arbb_op_add 
arbb_op_bit_and 
arbb_op_atan2 
arbb_op_compare 
arbb_op_div 
arbb_op_div_tan 
arbb_op_equal 
arbb_op_geq 
arbb_op_greater 
arbb_op_bit_or 
arbb_op_leq 
arbb_op_less 
arbb_op_log_and 
arbb_op_log_or 
arbb_op_lsh 
arbb_op_max 
arbb_op_min 
arbb_op_mod 
arbb_op_mul 
arbb_op_neq 
arbb_op_pow 
arbb_op_rsh 
arbb_op_sub 
arbb_op_bit_xor 
arbb_op_select 
arbb_op_gather 
arbb_op_scatter 
arbb_op_pack 
arbb_op_unpack 
arbb_op_shuffle 
arbb_op_unshuffle 
arbb_op_repeat 
arbb_op_distribute 
arbb_op_repeat_row 
arbb_op_repeat_col 
arbb_op_repeat_page 
arbb_op_transpose 
arbb_op_swap_col 
arbb_op_swap_row 
arbb_op_swap_page 
arbb_op_shift_constant 
arbb_op_shift_clamp 
arbb_op_rotate 
arbb_op_reverse 
arbb_op_length 
arbb_op_new_vector 
arbb_op_apply_nesting 
arbb_op_get_nesting 
arbb_op_cat 
arbb_op_cast 
arbb_op_extract 
arbb_op_split 
arbb_op_unsplit 
arbb_op_kill 
arbb_op_index 
arbb_op_mask 
arbb_op_copy_nesting 
arbb_op_flatten 
arbb_op_const_vector 
arbb_op_sort 
arbb_op_sort_rank 
arbb_op_replace 
arbb_op_wall_clock 
arbb_op_set_regular_nesting 
arbb_op_replace_row 
arbb_op_replace_col 
arbb_op_replace_page 
arbb_op_get_nrows 
arbb_op_get_ncols 
arbb_op_get_npages 
arbb_op_replace_2d_section 
arbb_op_extract_row 
arbb_op_extract_col 
arbb_op_extract_page 
arbb_op_section 
arbb_op_all_set 
arbb_op_copy_length 
arbb_op_segment 
arbb_op_replace_segment 
arbb_op_alloc 
arbb_op_alloc_as 
arbb_op_dump 
arbb_op_create_dumper 
arbb_op_kill_dumper 
arbb_op_set_dumper_fmt 
arbb_op_replace_element 
arbb_op_get_elt_coord 
arbb_op_reset_dbg 
arbb_op_set_dbg 
arbb_op_bitwise_cast 
arbb_op_get_neighbor 
arbb_op_expect_size 
arbb_op_add_reduce 
arbb_op_mul_reduce 
arbb_op_max_reduce 
arbb_op_max_reduce_loc 
arbb_op_min_reduce 
arbb_op_min_reduce_loc 
arbb_op_and_reduce 
arbb_op_ior_reduce 
arbb_op_xor_reduce 
arbb_op_add_scan 
arbb_op_mul_scan 
arbb_op_max_scan 
arbb_op_min_scan 
arbb_op_and_scan 
arbb_op_ior_scan 
arbb_op_xor_scan 
arbb_op_add_merge 

Definition at line 604 of file arbb_vmapi.h.


Function Documentation

ARBB_VM_EXPORT arbb_error_t arbb_op ( arbb_function_t  function,
arbb_opcode_t  opcode,
const arbb_variable_t outputs,
const arbb_variable_t inputs,
void *  debug_data_ptrs[],
arbb_error_details_t details 
)

Adds a new instruction to the given function or executes the provided operation.

If function is a null pointer, all inputs and outputs must be globals and the operation executes immediately. The number of inputs and outputs of the given opcode must be static. The arguments passed to the outputs and inputs parameters must be arrays of length matching the operation arity.

Returns:
An error code depending on the result of the operation:
ARBB_VM_EXPORT arbb_error_t arbb_op_dynamic ( arbb_function_t  function,
arbb_opcode_t  opcode,
unsigned int  num_outputs,
const arbb_variable_t outputs,
unsigned int  num_inputs,
const arbb_variable_t inputs,
void *  debug_data_ptrs[],
arbb_error_details_t details 
)

Adds a new instruction to the given function or executes the provided operation.

If function is a null pointer, all inputs and outputs must be globals and the operation executes immediately. The provided opcode must have a dynamic number of inputs and/or outputs. The arguments passed to the outputs and inputs parameters must be arrays of length num_outputs and num_inputs, respectively.

Returns:
An error code depending on the result of the operation:

Submit feedback on this help topic

Copyright © 2010, Intel Corporation. All rights reserved.