diff options
Diffstat (limited to 'gcc/target.h')
-rw-r--r-- | gcc/target.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/target.h b/gcc/target.h index 6824c13562e..9f766ae18dd 100644 --- a/gcc/target.h +++ b/gcc/target.h @@ -282,6 +282,23 @@ struct gcc_target bool (* is_costly_dependence) (rtx, rtx, rtx, int, int); } sched; + /* Functions relating to vectorization. */ + struct vectorize + { + /* The following member value is a pointer to a function called + by the vectorizer, and when expanding a MISALIGNED_INDIREC_REF + expression. If the hook returns true (false) then a move* pattern + to/from memory can (cannot) be generated for this mode even if the + memory location is unaligned. */ + bool (* misaligned_mem_ok) (enum machine_mode); + + /* The following member values are pointers to functions called + by the vectorizer, and return the decl of the target builtin + function. */ + tree (* builtin_mask_for_load) (void); + tree (* builtin_mask_for_store) (void); + } vectorize; + /* Return machine mode for filter value. */ enum machine_mode (* eh_return_filter_mode) (void); |