public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH][AArch64] Fix insn types
@ 2015-10-19 21:30 Evandro Menezes
  2015-10-20 11:16 ` Kyrill Tkachov
  0 siblings, 1 reply; 5+ messages in thread
From: Evandro Menezes @ 2015-10-19 21:30 UTC (permalink / raw)
  To: gcc-patches; +Cc: Marcus.Shawcroft, kyrylo.tkachov

[-- Attachment #1: Type: text/plain, Size: 416 bytes --]

The type assigned to some insn definitions was seemingly not correct:

  * "movi %d0, %1" was of type "fmov"
  * "fmov %s0, wzr" was of type "fconstd"
  * "mov %<w>0, {-1,1}" were of type "csel"

This patch changes their types to:

  * "movi %d0, %1" to type "neon_move"
  * "fmov %s0, wzr" to type "f_mcr"
  * "mov %<w>0, {-1,1}" to type "mov_imm"

Please, commit if it's alright.

Thank you,

-- 
Evandro Menezes


[-- Attachment #2: 0001-AArch64-Fix-insn-types.patch --]
[-- Type: text/x-patch, Size: 2046 bytes --]

From 7e7057bf65befca9ff24ab2401bc2ce84a48c23a Mon Sep 17 00:00:00 2001
From: Evandro Menezes <e.menezes@samsung.com>
Date: Mon, 19 Oct 2015 15:19:35 -0500
Subject: [PATCH] [AArch64] Fix insn types

The type assigned to some insn definitions was not correct.

gcc/
	* config/aarch64/aarch64.md
	(*movdi_aarch64): Change the type of "movi %d0, %1" to "neon_move".
	(*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr".
	(*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to "mov_imm".
	(*cmovsi_insn_uxtw): Idem.
---
 gcc/config/aarch64/aarch64.md | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
index 208f58f..5b7f2fd 100644
--- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md
@@ -1130,7 +1130,7 @@
    ldrh\\t%w0, %1
    strh\\t%w1, %0
    mov\\t%w0, %w1"
-  [(set_attr "type" "neon_from_gp,neon_to_gp,fmov,\
+  [(set_attr "type" "neon_from_gp,neon_to_gp,neon_move,\
                      f_loads,f_stores,load1,store1,mov_reg")
    (set_attr "simd" "yes,yes,yes,*,*,*,*,*")
    (set_attr "fp"   "*,*,*,yes,yes,*,*,*")]
@@ -1193,7 +1193,7 @@
    ldp\\t%0, %H0, %1
    stp\\t%1, %H1, %0
    stp\\txzr, xzr, %0"
-  [(set_attr "type" "logic_reg,multiple,f_mcr,f_mrc,neon_move_q,fconstd,\
+  [(set_attr "type" "logic_reg,multiple,f_mcr,f_mrc,neon_move_q,f_mcr,\
                      f_loadd,f_stored,load2,store2,store2")
    (set_attr "length" "4,8,8,8,4,4,4,4,4,4,4")
    (set_attr "fp" "*,*,yes,yes,*,yes,yes,yes,*,*,*")
@@ -2984,7 +2984,7 @@
    csinc\\t%<w>0, %<w>4, <w>zr, %M1
    mov\\t%<w>0, -1
    mov\\t%<w>0, 1"
-  [(set_attr "type" "csel")]
+  [(set_attr "type" "csel, csel, csel, csel, csel, mov_imm, mov_imm")]
 )
 
 ;; zero_extend version of above
@@ -3007,7 +3007,7 @@
    csinc\\t%w0, %w4, wzr, %M1
    mov\\t%w0, -1
    mov\\t%w0, 1"
-  [(set_attr "type" "csel")]
+  [(set_attr "type" "csel, csel, csel, csel, csel, mov_imm, mov_imm")]
 )
 
 (define_insn "*cmovdi_insn_uxtw"
-- 
2.1.0.243.g30d45f7




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH][AArch64] Fix insn types
  2015-10-19 21:30 [PATCH][AArch64] Fix insn types Evandro Menezes
@ 2015-10-20 11:16 ` Kyrill Tkachov
  2015-10-20 16:14   ` Evandro Menezes
  0 siblings, 1 reply; 5+ messages in thread
From: Kyrill Tkachov @ 2015-10-20 11:16 UTC (permalink / raw)
  To: Evandro Menezes, gcc-patches; +Cc: Marcus.Shawcroft

Hi Evandro,

On 19/10/15 22:05, Evandro Menezes wrote:
> The type assigned to some insn definitions was seemingly not correct:
>
>  * "movi %d0, %1" was of type "fmov"
>  * "fmov %s0, wzr" was of type "fconstd"
>  * "mov %<w>0, {-1,1}" were of type "csel"
>
> This patch changes their types to:
>
>  * "movi %d0, %1" to type "neon_move"
>  * "fmov %s0, wzr" to type "f_mcr"
>  * "mov %<w>0, {-1,1}" to type "mov_imm"
>
> Please, commit if it's alright.
>
> Thank you,
>

Looking at your ChangeLog...

gcc/
	* config/aarch64/aarch64.md
	(*movdi_aarch64): Change the type of "movi %d0, %1" to "neon_move".
	(*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr".
	(*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to "mov_imm".
	(*cmovsi_insn_uxtw): Idem

The preferred form is "Likewise" rather than "Idem" AFAIK. Also, full stop at the end.

--- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md
@@ -1130,7 +1130,7 @@
     ldrh\\t%w0, %1
     strh\\t%w1, %0
     mov\\t%w0, %w1"
-  [(set_attr "type" "neon_from_gp,neon_to_gp,fmov,\
+  [(set_attr "type" "neon_from_gp,neon_to_gp,neon_move,\
                       f_loads,f_stores,load1,store1,mov_reg")
     (set_attr "simd" "yes,yes,yes,*,*,*,*,*")
     (set_attr "fp"   "*,*,*,yes,yes,*,*,*")]


I don't think this matches up with your changelog entry.
This isn't the *movdi_aarch64 pattern. From what I can see the *movdi_aarch64 pattern
already has the type neon_move on the movi\\t%d0, %1 alternative (the last one).

In fact, if I apply your patch using "patch -p1" I see it being applied to the *movhf_aarch64 pattern.
Is that what you intended?

Thanks,
Kyrill

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH][AArch64] Fix insn types
  2015-10-20 11:16 ` Kyrill Tkachov
@ 2015-10-20 16:14   ` Evandro Menezes
  2015-10-28 18:40     ` Evandro Menezes
  2015-10-30  9:59     ` Marcus Shawcroft
  0 siblings, 2 replies; 5+ messages in thread
From: Evandro Menezes @ 2015-10-20 16:14 UTC (permalink / raw)
  To: Kyrill Tkachov, gcc-patches; +Cc: Marcus.Shawcroft

Kyrill,

Indeed, the correct log would be:

     The type assigned to some insn definitions was not correct.

     gcc/
         * config/aarch64/aarch64.md
         (*movhf_aarch64): Change the type of "mov %0.h[0], %1.h[0] to 
"neon_move".
         (*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr".
         (*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to 
"mov_imm".
         (*cmovsi_insn_uxtw): Likewise.

Thank you,

-- 
Evandro Menezes

On 10/20/2015 05:59 AM, Kyrill Tkachov wrote:
> Hi Evandro,
>
> On 19/10/15 22:05, Evandro Menezes wrote:
>> The type assigned to some insn definitions was seemingly not correct:
>>
>>  * "movi %d0, %1" was of type "fmov"
>>  * "fmov %s0, wzr" was of type "fconstd"
>>  * "mov %<w>0, {-1,1}" were of type "csel"
>>
>> This patch changes their types to:
>>
>>  * "movi %d0, %1" to type "neon_move"
>>  * "fmov %s0, wzr" to type "f_mcr"
>>  * "mov %<w>0, {-1,1}" to type "mov_imm"
>>
>> Please, commit if it's alright.
>>
>> Thank you,
>>
>
> Looking at your ChangeLog...
>
> gcc/
>     * config/aarch64/aarch64.md
>     (*movdi_aarch64): Change the type of "movi %d0, %1" to "neon_move".
>     (*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr".
>     (*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to 
> "mov_imm".
>     (*cmovsi_insn_uxtw): Idem
>
> The preferred form is "Likewise" rather than "Idem" AFAIK. Also, full 
> stop at the end.
>
> --- a/gcc/config/aarch64/aarch64.md
> +++ b/gcc/config/aarch64/aarch64.md
> @@ -1130,7 +1130,7 @@
>     ldrh\\t%w0, %1
>     strh\\t%w1, %0
>     mov\\t%w0, %w1"
> -  [(set_attr "type" "neon_from_gp,neon_to_gp,fmov,\
> +  [(set_attr "type" "neon_from_gp,neon_to_gp,neon_move,\
>                       f_loads,f_stores,load1,store1,mov_reg")
>     (set_attr "simd" "yes,yes,yes,*,*,*,*,*")
>     (set_attr "fp"   "*,*,*,yes,yes,*,*,*")]
>
>
> I don't think this matches up with your changelog entry.
> This isn't the *movdi_aarch64 pattern. From what I can see the 
> *movdi_aarch64 pattern
> already has the type neon_move on the movi\\t%d0, %1 alternative (the 
> last one).
>
> In fact, if I apply your patch using "patch -p1" I see it being 
> applied to the *movhf_aarch64 pattern.
> Is that what you intended?
>
> Thanks,
> Kyrill
>
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH][AArch64] Fix insn types
  2015-10-20 16:14   ` Evandro Menezes
@ 2015-10-28 18:40     ` Evandro Menezes
  2015-10-30  9:59     ` Marcus Shawcroft
  1 sibling, 0 replies; 5+ messages in thread
From: Evandro Menezes @ 2015-10-28 18:40 UTC (permalink / raw)
  To: gcc-patches; +Cc: Kyrill Tkachov, Marcus.Shawcroft

Ping.

-- 
Evandro Menezes

On 10/20/2015 11:14 AM, Evandro Menezes wrote:
> Kyrill,
>
> Indeed, the correct log would be:
>
>     The type assigned to some insn definitions was not correct.
>
>     gcc/
>         * config/aarch64/aarch64.md
>         (*movhf_aarch64): Change the type of "mov %0.h[0], %1.h[0] to 
> "neon_move".
>         (*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr".
>         (*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to 
> "mov_imm".
>         (*cmovsi_insn_uxtw): Likewise.
>
> Thank you,
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH][AArch64] Fix insn types
  2015-10-20 16:14   ` Evandro Menezes
  2015-10-28 18:40     ` Evandro Menezes
@ 2015-10-30  9:59     ` Marcus Shawcroft
  1 sibling, 0 replies; 5+ messages in thread
From: Marcus Shawcroft @ 2015-10-30  9:59 UTC (permalink / raw)
  To: Evandro Menezes; +Cc: Kyrill Tkachov, gcc-patches

On 20 October 2015 at 17:14, Evandro Menezes <e.menezes@samsung.com> wrote:
> Kyrill,
>
> Indeed, the correct log would be:
>
>     The type assigned to some insn definitions was not correct.
>
>     gcc/
>         * config/aarch64/aarch64.md
>         (*movhf_aarch64): Change the type of "mov %0.h[0], %1.h[0] to
> "neon_move".
>         (*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr".
>         (*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to
> "mov_imm".
>         (*cmovsi_insn_uxtw): Likewise.
>
> Thank you,
>

OK thanks,  committed as r229572.

/Marcus

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-10-30  9:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-19 21:30 [PATCH][AArch64] Fix insn types Evandro Menezes
2015-10-20 11:16 ` Kyrill Tkachov
2015-10-20 16:14   ` Evandro Menezes
2015-10-28 18:40     ` Evandro Menezes
2015-10-30  9:59     ` Marcus Shawcroft

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).