Message ID | 20201023140240.GB15973@bubble.grove.modra.org |
---|---|
State | New |
Headers | show |
Series | [RS6000] Power10 ICE running gcc.target/powerpc/ppc-ne0-1.c | expand |
On Sat, Oct 24, 2020 at 12:32:40AM +1030, Alan Modra wrote: > rs6000_emit_int_cmove generates isel so the condition below needs > fixing for power10. Bootstrapped and regression tested > powerpc64le-linux power10 and power8. OK? > > * config/rs6000/rs6000.md (cstore<mode>4): Don't call > rs6000_emit_int_cmove for power10 when -mno-isel. This is okay for trunk. Thanks! If we need more of this, we probably want a TARGET_SETBC, and if this option becomes non-orthogonal (when many things use the insns directly), we'll need to just disable -mno-isel (for later cpus). But all is fine for now it seems :-) Segher
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 2bf5df41a9b..cd41b759f71 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -11538,7 +11538,7 @@ "" { /* Everything is best done with setbc[r] if available. */ - if (TARGET_POWER10) + if (TARGET_POWER10 && TARGET_ISEL) rs6000_emit_int_cmove (operands[0], operands[1], const1_rtx, const0_rtx); /* Expanding EQ and NE directly to some machine instructions does not help