2011-08-19 Andrew Stubbs <ams@codesourcery.com>
commitaff5fb4dd5c1a7a34b1dc1fd6d5f3bdc8335e14f
authorams <ams@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Aug 2011 14:21:48 +0000 (19 14:21 +0000)
committerams <ams@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Aug 2011 14:21:48 +0000 (19 14:21 +0000)
tree07832b1f8a143dfb806a099e0cf2d8e103e38162
parent5a574e8bc02ccbac0d8fb40b989a8a17af6917bc
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* config/arm/arm.md (maddhidi4): Remove '*' from name.
* expr.c (expand_expr_real_2): Use find_widening_optab_handler.
* optabs.c (find_widening_optab_handler_and_mode): New function.
(expand_widen_pattern_expr): Use find_widening_optab_handler.
(expand_binop_directly): Likewise.
(expand_binop): Likewise.
* optabs.h (find_widening_optab_handler): New macro define.
(find_widening_optab_handler_and_mode): New prototype.
* tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
type precision rules.
(verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
* tree-ssa-math-opts.c (build_and_insert_cast): New function.
(is_widening_mult_rhs_p): Allow widening by more than one mode.
Explicitly disallow mis-matched input types.
(convert_mult_to_widen): Use find_widening_optab_handler, and cast
input types to fit the new handler.
(convert_plusminus_to_widen): Likewise.

gcc/testsuite/
* gcc.target/arm/wmul-bitfield-1.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177902 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/arm/arm.md
gcc/expr.c
gcc/optabs.c
gcc/optabs.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/wmul-bitfield-1.c [new file with mode: 0644]
gcc/tree-cfg.c
gcc/tree-ssa-math-opts.c