From bfdeda2cc6478b97c7fb6a1c2cc8dbbb516becae Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 12 Jun 2013 15:01:49 +0200 Subject: [PATCH] re PR tree-optimization/57537 (gcc.dg/vect/slp-widen-mult-half.c generating wrong code on PowerPC64) PR tree-optimization/57537 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If vect_handle_widen_op_by_const, convert oprnd1 to half_type1. From-SVN: r200000 --- gcc/ChangeLog | 6 ++++++ gcc/tree-vect-patterns.c | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 25d746afa6c..5eb96066d63 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-06-12 Jakub Jelinek + + PR tree-optimization/57537 + * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If + vect_handle_widen_op_by_const, convert oprnd1 to half_type1. + 2013-06-12 Richard Biener * data-streamer.h (streamer_write_char_stream): CSE diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c index 648385a9b0c..0a48727821a 100644 --- a/gcc/tree-vect-patterns.c +++ b/gcc/tree-vect-patterns.c @@ -640,7 +640,10 @@ vect_recog_widen_mult_pattern (vec *stmts, && vect_handle_widen_op_by_const (last_stmt, MULT_EXPR, oprnd1, &oprnd0, stmts, type, &half_type0, def_stmt0)) - half_type1 = half_type0; + { + half_type1 = half_type0; + oprnd1 = fold_convert (half_type1, oprnd1); + } else return NULL; } -- 2.30.2