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. */