public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Ajit Agarwal <aagarwa1@linux.ibm.com>
To: Segher Boessenkool <segher@kernel.crashing.org>
Cc: gcc-patches <gcc-patches@gcc.gnu.org>, bergner@linux.ibm.com
Subject: Re: [PATCH] rs6000: fmr gets used instead of faster xxlor [PR93571]
Date: Sat, 25 Feb 2023 13:12:26 +0530	[thread overview]
Message-ID: <629b6d20-5db0-894f-6e28-1fca119c0b1a@linux.ibm.com> (raw)
In-Reply-To: <20230224151155.GX25951@gate.crashing.org>

Hello Segher:

On 24/02/23 8:41 pm, Segher Boessenkool wrote:
> Hi!
> 
> For future patches: please don't send patches as replies to existing
> threads.  Just start a new thread for a new patch (series).  You can
> mark it as [PATCH v2] in the subject, if you want.
> 
> On Fri, Feb 24, 2023 at 01:41:49PM +0530, Ajit Agarwal wrote:
>> Here is the patch that uses xxlor instead of fmr where possible.
>> Performance results shows that fmr is better in power9 and 
>> power10 architectures whereas xxlor is better in power7 and
>> power 8 architectures.
> 
> And fmr is the only option before p7.
> 
>> 	rs6000: Use xxlor instead of fmr where possible
>>
>> 	This patch replaces fmr with xxlor instruction for power7
>> 	and power8 architectures whereas for power9 and power10
>> 	replaces xxlor with fmr instruction.
> 
> Saying "this patch" in a commit message reads strangely.  Just "Replace
> fmr with" etc.?
> 

I will correct this.

> The second part is just wrong, you cannot replace xxlor by fmr in
> general.
> 
>> 	Perf measurement results:
>>
>> 	Power9 fmr:  201,847,661 cycles.
>> 	Power9 xxlor: 201,877,78 cycles.
>> 	Power8 fmr: 201,057,795 cycles.
>>         Power8 xxlor: 201,004,671 cycles.
> 
> What is this measuring?  100M insns back-to-back, each dependent on the
> previous one?
> 
Yes.

> What are the results on p7 and p10?
> 
> These numbers show there is no difference on p8 either.  Did you paste
> the wrong numbers maybe?
>

I will measure it again and update with a new patch.
 
>> 	* config/rs6000/rs6000.md (*movdf_hardfloat64): Use xxlor
>> 	for power7 and power8 and fmr for power9 and power10.
> 
> Please don't break lines early.  Changelogs lines can be 80 columns
> wide, just like source code lines.
> 
>> --- a/gcc/config/rs6000/rs6000.md
>> +++ b/gcc/config/rs6000/rs6000.md
>> @@ -354,7 +354,7 @@ (define_attr "cpu"
>>    (const (symbol_ref "(enum attr_cpu) rs6000_tune")))
>>  
>>  ;; The ISA we implement.
>> -(define_attr "isa" "any,p5,p6,p7,p7v,p8v,p9,p9v,p9kf,p9tf,p10"
>> +(define_attr "isa" "any,p5,p6,p7,p7v,p8v,p9,p9v,p9kf,p9tf,p7p8,p10"
> 
> p78v, and sort it after p8v please.
> 
>> +     (and (eq_attr "isa" "p7p8")
>> +	  (match_test "TARGET_VSX && !TARGET_P9_VECTOR"))
>> +     (const_int 1)
> 
> Okay.
> 
>>  (define_insn "*mov<mode>_hardfloat64"
>>    [(set (match_operand:FMOVE64 0 "nonimmediate_operand"
>> -           "=m,           d,          d,          <f64_p9>,   wY,
>> -             <f64_av>,    Z,          <f64_vsx>,  <f64_vsx>,  !r,
>> -             YZ,          r,          !r,         *c*l,       !r,
>> -            *h,           r,          <f64_dm>,   wa")
>> +           "=m,           d,          <f64_vsx>,  <f64_p9>,   wY,
>> +            <f64_av>,     Z,          wa,         <f64_vsx>,  !r,
>> +            YZ,           r,          !r,         *c*l,       !r,
>> +            *h,           r,          <f64_dm>,   d,          wn,
>> +            wa")
>>  	(match_operand:FMOVE64 1 "input_operand"
> 
> (You posted this mail as wrapping.  That means the patch cannot be
> applied non-manually, and that replies to your mail will be mangled.
> Just get a Real mail client, and configure it correctly :-) )
>

I am using Thunderbird as mail client and the settings are all correct.
I have set the mailnews.wrapLength 0.

 
>> -            "d,           m,          d,          wY,         <f64_p9>,
>> -             Z,           <f64_av>,   <f64_vsx>,  <zero_fp>,  <zero_fp>,
>> +            "d,           m,          <f64_vsx>,  wY,         <f64_p9>,
>> +             Z,           <f64_av>,   wa,         <zero_fp>,  <zero_fp>,
>>               r,           YZ,         r,          r,          *h,
>> -             0,           <f64_dm>,   r,          eP"))]
>> +             0,           <f64_dm>,   r,          d,          wn,
>> +             eP"))]
> 
> No.  It is impossible to figure out what you changed here by just
> reading it.
> 
> There is no requirement there should be exactly five alternatives per
> line, and/or that there should be the same number everywhere.
> 
> If the indentation was incorrect, and you want to fix that, do that in a
> separate *earlier* patch in the series, please.
> 

I will Keep indentation as same.
>>    "TARGET_POWERPC64 && TARGET_HARD_FLOAT
>>     && (gpc_reg_operand (operands[0], <MODE>mode)
>>         || gpc_reg_operand (operands[1], <MODE>mode))"
>>    "@
>>     stfd%U0%X0 %1,%0
>>     lfd%U1%X1 %0,%1
>> -   fmr %0,%1
>> +   xxlor %x0,%x1,%x1
>>     lxsd %0,%1
>>     stxsd %1,%0
>>     lxsdx %x0,%y1
>>     stxsdx %x1,%y0
>> -   xxlor %x0,%x1,%x1
>> +   fmr %0,%1
>>     xxlxor %x0,%x0,%x0
>>     li %0,0
>>     std%U0%X0 %1,%0
>> @@ -8467,23 +8474,28 @@ (define_insn "*mov<mode>_hardfloat64"
>>     nop
>>     mfvsrd %0,%x1
>>     mtvsrd %x0,%1
>> +   fmr %0,%1
>> +   fmr %0,%1
>>     #"
>>    [(set_attr "type"
>> -            "fpstore,     fpload,     fpsimple,   fpload,     fpstore,
>> +            "fpstore,     fpload,     veclogical, fpload,     fpstore,
>>               fpload,      fpstore,    veclogical, veclogical, integer,
>>               store,       load,       *,          mtjmpr,     mfjmpr,
>> -             *,           mfvsr,      mtvsr,      vecperm")
>> +             *,           mfvsr,      mtvsr,      fpsimple,   fpsimple,
>> +             vecperm")
>>     (set_attr "size" "64")
>>     (set_attr "isa"
>> -            "*,           *,          *,          p9v,        p9v,
>> -             p7v,         p7v,        *,          *,          *,
>> -             *,           *,          *,          *,          *,
>> -             *,           p8v,        p8v,        p10")
>> +            "*,           *,          p7p8,        p9v,        p9v,
>> +             p7v,         p7v,        *,           *,          *,
>> +             *,           *,          *,           *,          *,
>> +             *,           p8v,        p8v,         *,          *,
>> +             p10")
> 
> So, you swapped the xxlor and fmr entries, and added two nextra fmr
> entries at the end?!
> 

I have moved xxlor <f64_vsx> "p7p8" before any other constraints with fmr "*".
I have added first constraints as xxlor <f64_vsx> with "p7p8" then wa fmr "*"
and wn,d "*" as fmr at end.
> 
> Segher

Thanks & Regards
Ajit

      reply	other threads:[~2023-02-25  7:42 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-17 16:58 Ajit Agarwal
2023-02-17 17:09 ` Andrew Pinski
2023-02-17 17:23 ` Segher Boessenkool
2023-02-21  8:48   ` Ajit Agarwal
2023-02-21 11:04     ` Segher Boessenkool
2023-02-21 12:30       ` Ajit Agarwal
2023-02-21 14:09         ` Segher Boessenkool
2023-02-22 10:28           ` Ajit Agarwal
2023-02-24  8:11             ` Ajit Agarwal
2023-02-24 15:11               ` Segher Boessenkool
2023-02-25  7:42                 ` Ajit Agarwal [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=629b6d20-5db0-894f-6e28-1fca119c0b1a@linux.ibm.com \
    --to=aagarwa1@linux.ibm.com \
    --cc=bergner@linux.ibm.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=segher@kernel.crashing.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).