Hi, "Kewen.Lin" <li...@linux.ibm.com> writes:
> Hi Jeff, > > on 2022/8/12 14:39, Jiufu Guo via Gcc-patches wrote: >> Hi, >> >> As a comment in >> https://gcc.gnu.org/pipermail/gcc-patches/2022-August/599556.html >> >> Those splitters call rs6000_emit_set_const directly, and the replacements >> are never used. Using (pc) would be less misleading. > > Since the replacements are never used, IMHO this subject doesn't > quite meet the change. How about "fix misleading new patterns > of splitters"? Thanks for your helpful sugguestion! BR, Jeff(Jiufu) > >> >> This patch pass bootstrap®test on ppc64 BE and LE. >> Is this ok for trunk. > > This patch is OK w/ or w/o subject tweaked. Thanks! > > BR, > Kewen > >> >> BR, >> Jeff(Jiufu) >> >> gcc/ChangeLog: >> >> * config/rs6000/rs6000.md: (constant splitters): Use "(pc)" as the >> replacements. >> >> --- >> gcc/config/rs6000/rs6000.md | 12 +++--------- >> 1 file changed, 3 insertions(+), 9 deletions(-) >> >> diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md >> index 1367a2cb779..7fadbeef1aa 100644 >> --- a/gcc/config/rs6000/rs6000.md >> +++ b/gcc/config/rs6000/rs6000.md >> @@ -7727,11 +7727,7 @@ (define_split >> [(set (match_operand:SI 0 "gpc_reg_operand") >> (match_operand:SI 1 "const_int_operand"))] >> "num_insns_constant (operands[1], SImode) > 1" >> - [(set (match_dup 0) >> - (match_dup 2)) >> - (set (match_dup 0) >> - (ior:SI (match_dup 0) >> - (match_dup 3)))] >> + [(pc)] >> { >> if (rs6000_emit_set_const (operands[0], operands[1])) >> DONE; >> @@ -9662,8 +9658,7 @@ (define_split >> [(set (match_operand:DI 0 "int_reg_operand_not_pseudo") >> (match_operand:DI 1 "const_int_operand"))] >> "TARGET_POWERPC64 && num_insns_constant (operands[1], DImode) > 1" >> - [(set (match_dup 0) (match_dup 2)) >> - (set (match_dup 0) (plus:DI (match_dup 0) (match_dup 3)))] >> + [(pc)] >> { >> if (rs6000_emit_set_const (operands[0], operands[1])) >> DONE; >> @@ -9675,8 +9670,7 @@ (define_split >> [(set (match_operand:DI 0 "int_reg_operand_not_pseudo") >> (match_operand:DI 1 "const_scalar_int_operand"))] >> "TARGET_POWERPC64 && num_insns_constant (operands[1], DImode) > 1" >> - [(set (match_dup 0) (match_dup 2)) >> - (set (match_dup 0) (plus:DI (match_dup 0) (match_dup 3)))] >> + [(pc)] >> { >> if (rs6000_emit_set_const (operands[0], operands[1])) >> DONE;