On Wed, Nov 23, 2016 at 2:27 PM, Richard Biener
<richard.guent...@gmail.com> wrote:
> On Wed, Nov 23, 2016 at 2:54 PM, Bin Cheng <bin.ch...@arm.com> wrote:
>> Hi,
>> This is actually the review suggestion for patch 
>> @https://gcc.gnu.org/ml/gcc-patches/2016-11/msg02341.html, but I forgot to 
>> incorporate it when committing that patch.  Here comes this one doing that, 
>> as well as adding a missing convert keyword.  Toolchain built successfully, 
>> is it OK?
>
> As said you _do_ need the outermost (convert ...) on the (max .. and
> (min ... expressions given @1 may not be of type 'type'.
Sorry about the stupid mistake.  How about this one?  The from_type in
the last branch looks like necessary to me.

Thanks,
bin
>
>> Thanks,
>> bin
>>
>> 2016-11-23  Bin Cheng  <bin.ch...@arm.com>
>>
>>         * match.pd: Refine type conversion in result expressions for below
>>         pattern:
>>         (cond (cmp (convert1? x) c1) (convert2? x) c2) -> (minmax (x c)).
Index: gcc/match.pd
===================================================================
--- gcc/match.pd        (revision 242751)
+++ gcc/match.pd        (working copy)
@@ -2022,11 +2022,12 @@
        }
    }
    (if (code == MAX_EXPR)
-    (convert (max @1 (convert:from_type @2)))
+    (convert (max @1 (convert @2)))
     (if (code == MIN_EXPR)
-     (convert (min @1 (convert:from_type @2)))
+     (convert (min @1 (convert @2)))
      (if (code == EQ_EXPR)
-      (cond (cmp @1 (convert:from_type @3)) (convert:from_type @3) @2)))))))
+      (convert (cond (cmp @1 (convert @3))
+                    (convert:from_type @3) (convert:from_type @2)))))))))
 
 (for cnd (cond vec_cond)
  /* A ? B : (A ? X : C) -> A ? B : C.  */

Reply via email to