public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Ajit Agarwal <aagarwa1@linux.ibm.com>
To: "Kewen.Lin" <linkw@linux.ibm.com>
Cc: Segher Boessenkool <segher@kernel.crashing.org>,
	David Edelsohn <dje.gcc@gmail.com>,
	Peter Bergner <bergner@linux.ibm.com>,
	Michael Meissner <meissner@linux.ibm.com>,
	GCC Patches <gcc-patches@gcc.gnu.org>
Subject: Re: [PATCH v2] rs6000: Add new pass for replacement of contiguous addresses vector load lxv with lxvp
Date: Tue, 12 Dec 2023 13:08:43 +0530	[thread overview]
Message-ID: <c6d0821e-9e3a-4d2e-98b9-3c9b6bf63219@linux.ibm.com> (raw)
In-Reply-To: <8d07e569-5f58-1193-920e-7440f3590397@linux.ibm.com>

Hello Kewen:

On 12/12/23 11:58 am, Kewen.Lin wrote:
> Hi Ajit,
> 
> on 2023/12/8 16:01, Ajit Agarwal wrote:
>> Hello Kewen:
>>
> 
> [snip...]
> 
>> With UNSPEC_MMA_EXTRACT I could generate the register pair but functionally here is the
>> below code which is incorrect.
>>
>>  l	lxvp %vs0,0(%r4)
>>         xxlor %vs32,%vs0,%vs0
>>         xvf32ger 0,%vs34,%vs32
>>         xvf32gerpp 0,%vs34,%vs33
>>         xxmfacc 0
>>         stxvp %vs2,0(%r3)
>>         stxvp %vs0,32(%r3)
>>         blr
>>
>>
>> Here is the RTL Code:
>>
>> (insn 19 4 20 2 (set (reg:OO 124 [ *ptr_4(D) ])
>>         (mem:OO (reg/v/f:DI 122 [ ptr ]) [0 *ptr_4(D)+0 S16 A128])) -1
>>      (nil))
>> (insn 20 19 9 2 (set (reg:V16QI 129 [orig:124 *ptr_4(D) ] [124])
>>         (subreg:V16QI (reg:OO 124 [ *ptr_4(D) ]) 0)) -1
>>      (nil))
>> (insn 9 20 11 2 (set (reg:XO 119 [ _7 ])
>>         (unspec:XO [
>>                 (reg/v:V16QI 123 [ src ])
>>                 (reg:V16QI 129 [orig:124 *ptr_4(D) ] [124])
>>             ] UNSPEC_MMA_XVF32GER)) 2195 {mma_xvf32ger}
>>      (expr_list:REG_DEAD (reg:OO 124 [ *ptr_4(D) ])
>>         (nil)))
>> (insn 11 9 12 2 (set (reg:XO 120 [ _9 ])
>>         (unspec:XO [
>>                 (reg:XO 119 [ _7 ])
>>                 (reg/v:V16QI 123 [ src ])
>>                 (reg:V16QI 125 [ MEM[(__vector unsigned char *)ptr_4(D) + 16B] ])
>>             ] UNSPEC_MMA_XVF32GERPP)) 2209 {mma_xvf32gerpp}
>>      (expr_list:REG_DEAD (reg:V16QI 125 [ MEM[(__vector unsigned char *)ptr_4(D) + 16B] ])
>>         (expr_list:REG_DEAD (reg/v:V16QI 123 [ src ])
>>             (expr_list:REG_DEAD (reg:XO 119 [ _7 ])
>>                 (nil)))))
>> (insn 12 11 18 2 (set (mem:XO (reg:DI 126) [1 *dst_10(D)+0 S64 A128])
>>         (reg:XO 120 [ _9 ])) "../gcc/testsuite/g++.target/powerpc/vecload.C":13:8 2182 {*movxo}
>>      (expr_list:REG_DEAD (reg:DI 126)
>>         (expr_list:REG_DEAD (reg:XO 120 [ _9 ])
>>             (nil))))
>> (note 18 12 0 NOTE_INSN_DELETED)
>>
>> r124 and r129 conflicts live range amd ira generates different registers which will not
>> serve our purpose.
>>
>> Making r124 and r129 as same will not allocate register by ira as r124 could have both OOmode
>> and V16QImode.
>>
>> Doing this pass before ira_pass has such above issues and we could solve them after making
>> after reload pass.
> 
> Could you also attach your latest WIP patch?  I'm going to look into the extra move issue with it.
>

I have fixed the register allocator IRA pass to generate the register pair and with that no extra move 
is also generated and now with the fix the code is generated with register pair.

Earlier you have the idea to use SUBREG V16QI (reg: OOmode 124) at the use that also doesn't generate
the register pair. I had to make changes in IRA pass register allocator to generate register pair
and no extra moves are also not generated. I am testing the fix and would send for code review very 
soon.

Thanks for the help and suggestions.

Thanks & Regards
Ajit
 
> Thanks!
> 
> BR,
> Kewen

  reply	other threads:[~2023-12-12  7:38 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-07 19:04 Ajit Agarwal
2023-10-15 12:13 ` [PING ^0][PATCH " Ajit Agarwal
2023-10-23  8:32   ` [PING ^1][PATCH " Ajit Agarwal
2023-11-10  7:04     ` [PING ^2][PATCH " Ajit Agarwal
2023-11-24  9:31 ` [PATCH " Kewen.Lin
2023-11-28  4:34   ` Michael Meissner
2023-11-28  9:33     ` Kewen.Lin
2023-12-01  9:10   ` Ajit Agarwal
2023-12-04  2:01     ` Kewen.Lin
2023-12-05 13:43       ` Ajit Agarwal
2023-12-05 18:01         ` Ajit Agarwal
2023-12-06  2:22           ` Kewen.Lin
2023-12-06  5:09             ` Michael Meissner
2023-12-07  7:14               ` Kewen.Lin
2023-12-07 11:01             ` Ajit Agarwal
2023-12-08  8:01               ` Ajit Agarwal
2023-12-08  9:51                 ` Kewen.Lin
2023-12-12  6:28                 ` Kewen.Lin
2023-12-12  7:38                   ` Ajit Agarwal [this message]
2023-11-28  7:05 ` Michael Meissner
2023-11-28  9:44   ` Kewen.Lin
2023-11-28 15:41     ` Michael Meissner
2023-11-29 14:10       ` Ajit Agarwal
2023-12-01  9:13     ` Ajit Agarwal

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=c6d0821e-9e3a-4d2e-98b9-3c9b6bf63219@linux.ibm.com \
    --to=aagarwa1@linux.ibm.com \
    --cc=bergner@linux.ibm.com \
    --cc=dje.gcc@gmail.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=linkw@linux.ibm.com \
    --cc=meissner@linux.ibm.com \
    --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).