aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-generic.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-vect-generic.cc')
-rw-r--r--gcc/tree-vect-generic.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/tree-vect-generic.cc b/gcc/tree-vect-generic.cc
index b7d4a91..df04a0d 100644
--- a/gcc/tree-vect-generic.cc
+++ b/gcc/tree-vect-generic.cc
@@ -44,6 +44,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-fold.h"
#include "gimple-match.h"
#include "recog.h" /* FIXME: for insn_data */
+#include "optabs-libfuncs.h"
/* Build a ternary operation and gimplify it. Emit code before GSI.
@@ -1714,7 +1715,9 @@ get_compute_type (enum tree_code code, optab op, tree type)
machine_mode compute_mode = TYPE_MODE (compute_type);
if (VECTOR_MODE_P (compute_mode))
{
- if (op && optab_handler (op, compute_mode) != CODE_FOR_nothing)
+ if (op
+ && (optab_handler (op, compute_mode) != CODE_FOR_nothing
+ || optab_libfunc (op, compute_mode)))
return compute_type;
if (code == MULT_HIGHPART_EXPR
&& can_mult_highpart_p (compute_mode,