public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/61551] New: [NEON] alter costs to allow use of post-indexed addressing modes for VLD{2..4}/VST{2..4}
@ 2014-06-18 14:25 cbaylis at gcc dot gnu.org
  2014-07-25 10:39 ` [Bug target/61551] " ramana at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: cbaylis at gcc dot gnu.org @ 2014-06-18 14:25 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61551

            Bug ID: 61551
           Summary: [NEON] alter costs to allow use of post-indexed
                    addressing modes for VLD{2..4}/VST{2..4}
           Product: gcc
           Version: 4.10.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: cbaylis at gcc dot gnu.org
                CC: ramana.radhakrishnan at arm dot com
            Target: arm-unknown-linux-gnueabi

Created attachment 32967
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=32967&action=edit
test for NEON addressing modes

The attached test case demonstrates that GCC does not exploit the post-indexed
addressing mode for NEON structure loads and stores: VLDn, VSTn where n>=2.

Generated code for VLD1/VST1 (using desired post-indexed addressing)

test_ld1:
        @ args = 0, pretend = 0, frame = 0
        @ frame_needed = 0, uses_anonymous_args = 0
        @ link register save eliminated.
        vld1.8  {d16}, [r0], r1
        vst1.8  {d16}, [r0], r1
        vld1.8  {d16}, [r0], r1
        vst1.8  {d16}, [r0], r1
        vld1.8  {d16}, [r0], r1
        vst1.8  {d16}, [r0]
        bx      lr

Generated code for VLD2:
test_ld2:
        @ args = 0, pretend = 0, frame = 0
        @ frame_needed = 0, uses_anonymous_args = 0
        @ link register save eliminated.
        adds    r3, r0, r1
        vld2.8  {d16-d17}, [r0]
        adds    r0, r3, r1
        adds    r2, r0, r1
        vst2.8  {d16-d17}, [r3]
        adds    r3, r2, r1
        vld2.8  {d16-d17}, [r0]
        add     r1, r1, r3
        vst2.8  {d16-d17}, [r2]
        vld2.8  {d16-d17}, [r3]
        vst2.8  {d16-d17}, [r1]
        bx      lr


A proof of concept patch is posted at:
https://gcc.gnu.org/ml/gcc-patches/2014-06/msg01361.html


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

* [Bug target/61551] [NEON] alter costs to allow use of post-indexed addressing modes for VLD{2..4}/VST{2..4}
  2014-06-18 14:25 [Bug target/61551] New: [NEON] alter costs to allow use of post-indexed addressing modes for VLD{2..4}/VST{2..4} cbaylis at gcc dot gnu.org
@ 2014-07-25 10:39 ` ramana at gcc dot gnu.org
  2015-04-22 12:00 ` jakub at gcc dot gnu.org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: ramana at gcc dot gnu.org @ 2014-07-25 10:39 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61551

Ramana Radhakrishnan <ramana at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |missed-optimization
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2014-07-25
                 CC|                            |ramana at gcc dot gnu.org
   Target Milestone|---                         |4.10.0
     Ever confirmed|0                           |1


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

* [Bug target/61551] [NEON] alter costs to allow use of post-indexed addressing modes for VLD{2..4}/VST{2..4}
  2014-06-18 14:25 [Bug target/61551] New: [NEON] alter costs to allow use of post-indexed addressing modes for VLD{2..4}/VST{2..4} cbaylis at gcc dot gnu.org
  2014-07-25 10:39 ` [Bug target/61551] " ramana at gcc dot gnu.org
@ 2015-04-22 12:00 ` jakub at gcc dot gnu.org
  2015-04-22 12:50 ` ramana at gcc dot gnu.org
  2020-09-22 17:34 ` cbaylis at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-04-22 12:00 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61551

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|5.0                         |5.2

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 5.1 has been released.


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

* [Bug target/61551] [NEON] alter costs to allow use of post-indexed addressing modes for VLD{2..4}/VST{2..4}
  2014-06-18 14:25 [Bug target/61551] New: [NEON] alter costs to allow use of post-indexed addressing modes for VLD{2..4}/VST{2..4} cbaylis at gcc dot gnu.org
  2014-07-25 10:39 ` [Bug target/61551] " ramana at gcc dot gnu.org
  2015-04-22 12:00 ` jakub at gcc dot gnu.org
@ 2015-04-22 12:50 ` ramana at gcc dot gnu.org
  2020-09-22 17:34 ` cbaylis at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: ramana at gcc dot gnu.org @ 2015-04-22 12:50 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61551

Ramana Radhakrishnan <ramana at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|5.2                         |6.0

--- Comment #2 from Ramana Radhakrishnan <ramana at gcc dot gnu.org> ---
This really is 6.0 now - I can't see this as being eligible for the 5.x
branches.


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

* [Bug target/61551] [NEON] alter costs to allow use of post-indexed addressing modes for VLD{2..4}/VST{2..4}
  2014-06-18 14:25 [Bug target/61551] New: [NEON] alter costs to allow use of post-indexed addressing modes for VLD{2..4}/VST{2..4} cbaylis at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2015-04-22 12:50 ` ramana at gcc dot gnu.org
@ 2020-09-22 17:34 ` cbaylis at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: cbaylis at gcc dot gnu.org @ 2020-09-22 17:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61551

cbaylis at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|NEW                         |RESOLVED

--- Comment #6 from cbaylis at gcc dot gnu.org ---

This was fixed in
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=612ea540d2e1fe5eae5213823a3cec0d3d864fb2

 This patch adds support for modelling the varying costs of different
addressing modes.

This patch adds support for modelling the varying costs of
different addressing modes. The generic cost table treats
all addressing modes as having equal cost.

gcc/ChangeLog:

2017-11-23  Charles Baylis  <charles.baylis@linaro.org>

        * config/arm/arm-protos.h (enum arm_addr_mode_op): New.
        (struct addr_mode_cost_table): New.
        (struct tune_params): Add field addr_mode_costs.
        * config/arm/arm.c (generic_addr_mode_costs): New.
        (arm_slowmul_tune): Initialise addr_mode_costs field.
        (arm_fastmul_tune): Likewise.
        (arm_strongarm_tune): Likewise.
        (arm_xscale_tune): Likewise.
        (arm_9e_tune): Likewise.
        (arm_marvell_pj4_tune): Likewise.
        (arm_v6t2_tune): Likewise.
        (arm_cortex_tune): Likewise.
        (arm_cortex_a8_tune): Likewise.
        (arm_cortex_a7_tune): Likewise.
        (arm_cortex_a15_tune): Likewise.
        (arm_cortex_a35_tune): Likewise.
        (arm_cortex_a53_tune): Likewise.
        (arm_cortex_a57_tune): Likewise.
        (arm_exynosm1_tune): Likewise.
        (arm_xgene1_tune): Likewise.
        (arm_cortex_a5_tune): Likewise.
        (arm_cortex_a9_tune): Likewise.
        (arm_cortex_a12_tune): Likewise.
        (arm_cortex_a73_tune): Likewise.
        (arm_v7m_tune): Likewise.
        (arm_cortex_m7_tune): Likewise.
        (arm_v6m_tune): Likewise.
        (arm_fa726te_tune): Likewise.
        (arm_mem_costs): Use table lookup to calculate cost of addressing
        mode.

From-SVN: r255112

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

end of thread, other threads:[~2020-09-22 17:34 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-18 14:25 [Bug target/61551] New: [NEON] alter costs to allow use of post-indexed addressing modes for VLD{2..4}/VST{2..4} cbaylis at gcc dot gnu.org
2014-07-25 10:39 ` [Bug target/61551] " ramana at gcc dot gnu.org
2015-04-22 12:00 ` jakub at gcc dot gnu.org
2015-04-22 12:50 ` ramana at gcc dot gnu.org
2020-09-22 17:34 ` cbaylis at gcc dot gnu.org

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