From: Jakub Jelinek Date: Fri, 27 Sep 2019 15:48:51 +0000 (+0200) Subject: re PR target/91919 (arm-linux-eabi ICE with building kernel) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=88e032f105da53ef628f0eecd1f5a6fc372d022b;p=gcc.git re PR target/91919 (arm-linux-eabi ICE with building kernel) PR target/91919 * config/arm/arm.md (mlal): Remove SE wrappers around operands of SImode MULT. * gcc.c-torture/compile/pr91919.c: New.test From-SVN: r276183 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0258bfc43ad..8e4e143edc4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-09-27 Jakub Jelinek + + PR target/91919 + * config/arm/arm.md (mlal): Remove SE wrappers around operands + of SImode MULT. + 2019-09-27 Richard Biener * tree-vectorizer.h (_stmt_vec_info::reduc_fn): New. diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index d3ee59a37ad..f861c72ccfc 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -1812,8 +1812,8 @@ [(set (match_operand:SI 0 "s_register_operand" "=r,&r") (plus:SI (mult:SI - (SE:DI (match_operand:SI 4 "s_register_operand" "%r,r")) - (SE:DI (match_operand:SI 5 "s_register_operand" "r,r"))) + (match_operand:SI 4 "s_register_operand" "%r,r") + (match_operand:SI 5 "s_register_operand" "r,r")) (match_operand:SI 1 "s_register_operand" "0,0"))) (set (match_operand:SI 2 "s_register_operand" "=r,&r") (plus:SI diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d53d67afbe4..8386c33770b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-09-27 Jakub Jelinek + + PR target/91919 + * gcc.c-torture/compile/pr91919.c: New.test + 2019-09-27 Manfred Schwarb * gfortran.dg/associate_48.f90: Fix a dg directive. diff --git a/gcc/testsuite/gcc.c-torture/compile/pr91919.c b/gcc/testsuite/gcc.c-torture/compile/pr91919.c new file mode 100644 index 00000000000..9d0c95ea061 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr91919.c @@ -0,0 +1,7 @@ +/* PR target/91919 */ + +unsigned int +foo (unsigned int x, int y) +{ + return (x * 3355443200ULL + (y * 1801439851ULL >> 29) >> 25); +}