Hi,

   I refined the patch according to Segher's advice. Is this okay for trunk? Any recommendations? Thanks a lot.

On 6/7/2021 上午 11:01, HAO CHEN GUI wrote:
Hi,

   The patch fixed the wrong "if" fall through in "cstore<mode>4" expand, which causes comparison pattern expanded twice on P10.

   The attachments are the patch diff and change log file.

    Bootstrapped and tested on powerpc64le-linux with no regressions. Is this okay for trunk? Any recommendations? Thanks a lot.

        PR target/100952
        * config/rs6000/rs6000.md (cstore<mode>4): Fix wrong fall through.
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 3f59b544f6a..d7c13d4e79d 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -11623,7 +11623,10 @@ (define_expand "cstore<mode>4"
 {
   /* Everything is best done with setbc[r] if available.  */
   if (TARGET_POWER10 && TARGET_ISEL)
-    rs6000_emit_int_cmove (operands[0], operands[1], const1_rtx, const0_rtx);
+    {
+      rs6000_emit_int_cmove (operands[0], operands[1], const1_rtx, const0_rtx);
+      DONE;
+    }
 
   /* Expanding EQ and NE directly to some machine instructions does not help
      but does hurt combine.  So don't.  */

Reply via email to