diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-10-03 15:13:26 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-10-03 15:13:26 +0000 |
commit | 6cf89e0496c6011f63a9bc1f9a37e09274f1f6ab (patch) | |
tree | f49377e311033773555fb0a2471ab04986fefafe /gcc/optabs.h | |
parent | 9adacac79c8a02257d837ad96e3428e9d0222c06 (diff) | |
download | gcc-6cf89e0496c6011f63a9bc1f9a37e09274f1f6ab.tar.gz |
Vector shuffling patch from Artem Shinkarov.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179462 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/optabs.h')
-rw-r--r-- | gcc/optabs.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/optabs.h b/gcc/optabs.h index 56df6718462..5d5593bb095 100644 --- a/gcc/optabs.h +++ b/gcc/optabs.h @@ -617,6 +617,7 @@ enum convert_optab_index #define vec_store_lanes_optab (&convert_optab_table[COI_vec_store_lanes]) #define vcond_optab (&convert_optab_table[(int) COI_vcond]) #define vcondu_optab (&convert_optab_table[(int) COI_vcondu]) +#define vshuffle_optab (&direct_optab_table[(int) DOI_vshuffle]) /* Contains the optab used for each rtx code. */ extern optab code_to_optab[NUM_RTX_CODE + 1]; @@ -638,6 +639,9 @@ enum direct_optab_index DOI_reload_in, DOI_reload_out, + /* Vector shuffling. */ + DOI_vshuffle, + /* Block move operation. */ DOI_movmem, @@ -884,6 +888,12 @@ extern rtx expand_vec_cond_expr (tree, tree, tree, tree, rtx); /* Generate code for VEC_LSHIFT_EXPR and VEC_RSHIFT_EXPR. */ extern rtx expand_vec_shift_expr (sepops, rtx); +/* Return tree if target supports vector operations for VEC_SHUFFLE_EXPR. */ +bool expand_vec_shuffle_expr_p (enum machine_mode, tree, tree, tree); + +/* Generate code for VEC_SHUFFLE_EXPR. */ +extern rtx expand_vec_shuffle_expr (tree, tree, tree, tree, rtx); + /* Return the insn used to implement mode MODE of OP, or CODE_FOR_nothing if the target does not have such an insn. */ |