aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-analyze.c
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2007-09-30 14:45:32 +0200
committerUros Bizjak <uros@gcc.gnu.org>2007-09-30 14:45:32 +0200
commit94a73152cc79020dbcb1f6874bdd0661c2a4a30b (patch)
tree73e0fba4c2a3214d2d3cb31d5f41dbc16fee3a08 /gcc/tree-vect-analyze.c
parentdc472c59a52d068c37cb0c14e94564da8729f232 (diff)
downloadgcc-94a73152cc79020dbcb1f6874bdd0661c2a4a30b.zip
gcc-94a73152cc79020dbcb1f6874bdd0661c2a4a30b.tar.gz
gcc-94a73152cc79020dbcb1f6874bdd0661c2a4a30b.tar.bz2
re PR tree-optimization/33597 (Internal compiler error while compiling libswscale from ffmpeg)
PR tree-optimization/33597 * tree-vect-analyze.c (vect_build_slp_tree): Check if optab handler for LSHIFT_EXPR and RSHIFT_EXPR is available for vec_mode. testsuite/ChangeLog: PR tree-optimization/33597 * gcc.dg/vect/pr33597.c: New testcase. From-SVN: r128891
Diffstat (limited to 'gcc/tree-vect-analyze.c')
-rw-r--r--gcc/tree-vect-analyze.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/tree-vect-analyze.c b/gcc/tree-vect-analyze.c
index 86ca6b6..92ef5be 100644
--- a/gcc/tree-vect-analyze.c
+++ b/gcc/tree-vect-analyze.c
@@ -2696,6 +2696,13 @@ vect_build_slp_tree (loop_vec_info loop_vinfo, slp_tree *node,
return false;
}
icode = (int) optab->handlers[(int) vec_mode].insn_code;
+ if (icode == CODE_FOR_nothing)
+ {
+ if (vect_print_dump_info (REPORT_SLP))
+ fprintf (vect_dump,
+ "Build SLP failed: op not supported by target.");
+ return false;
+ }
optab_op2_mode = insn_data[icode].operand[2].mode;
if (!VECTOR_MODE_P (optab_op2_mode))
{