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