re PR tree-optimization/50318 (ICE optimizing widening multiply-and-accumulate)
authorAndrew Stubbs <ams@codesourcery.com>
Thu, 8 Sep 2011 19:45:37 +0000 (19:45 +0000)
committerAndrew Stubbs <ams@gcc.gnu.org>
Thu, 8 Sep 2011 19:45:37 +0000 (19:45 +0000)
2011-09-08  Andrew Stubbs  <ams@codesourcery.com>

PR tree-optimization/50318

gcc/
* tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
typo in use of mult_rhs1 and mult_rhs2.

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

From-SVN: r178708

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/pr50318-1.c [new file with mode: 0644]
gcc/tree-ssa-math-opts.c

index b3dc6bd524b42b09848b3fa6843f9aa741bb82a7..dbda61cef07a9995922466ba3c025809ea295c60 100644 (file)
@@ -1,3 +1,9 @@
+2011-09-08  Andrew Stubbs  <ams@codesourcery.com>
+
+       PR tree-optimization/50318
+       * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
+       typo in use of mult_rhs1 and mult_rhs2.
+
 2011-09-08  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes.
index 3670296970a3c528a96caf0cd95c79267f19505a..9144ee4cf07dbed340f3d358394de04d747b69af 100644 (file)
@@ -1,3 +1,8 @@
+2011-09-08  Andrew Stubbs  <ams@codesourcery.com>
+
+       PR tree-optimization/50318
+       * gcc.target/arm/pr50318-1.c: New file.
+
 2011-09-08  Uros Bizjak  <ubizjak@gmail.com>
 
        * gcc.target/i386/all_one_m256i.c: New test.
diff --git a/gcc/testsuite/gcc.target/arm/pr50318-1.c b/gcc/testsuite/gcc.target/arm/pr50318-1.c
new file mode 100644 (file)
index 0000000..05885e1
--- /dev/null
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+/* { dg-require-effective-target arm_dsp } */
+
+long long test (unsigned int sec, unsigned long long nsecs)
+{
+   return (long long)(long)sec * 1000000000L + (long long)(unsigned
+   long)nsecs;
+}
+
+/* { dg-final { scan-assembler "umlal" } } */
index 63506477a3990db22a6c2ab0a6bf9bb791110fa6..b8591f992057da770263eca18972cce74c63ecd2 100644 (file)
@@ -2386,9 +2386,9 @@ convert_plusminus_to_widen (gimple_stmt_iterator *gsi, gimple stmt,
 
   /* Handle constants.  */
   if (TREE_CODE (mult_rhs1) == INTEGER_CST)
-    rhs1 = fold_convert (type1, mult_rhs1);
+    mult_rhs1 = fold_convert (type1, mult_rhs1);
   if (TREE_CODE (mult_rhs2) == INTEGER_CST)
-    rhs2 = fold_convert (type2, mult_rhs2);
+    mult_rhs2 = fold_convert (type2, mult_rhs2);
 
   gimple_assign_set_rhs_with_ops_1 (gsi, wmult_code, mult_rhs1, mult_rhs2,
                                    add_rhs);