In defense of Bulldozer's Oddities

By: Exophase (exophase.delete@this.gmail.com), April 21, 2012 12:13 pm
Room: Moderated Discussions
anonymous (no@spam.com) on 4/21/12 wrote:
---------------------------
>The BD AGUs can't actually handle INC/DEC.
>
>The current optimization manual finally shows that.
>
>And it's trivial to test it yourself. :)

The current optimization manual also doesn't mention anything about the AG units actually being used to generate addresses. If we go strictly by them it looks like they're only used in more complex forms of lea and calls, which is of course silly.

Others have claimed that they've ran tests that confirm inc/inc + add/add or somesuch can be done in one cycle. I don't know if 4x inc can be done in one cycle; it's possible that the EX units can't handle it entirely.

I don't have one so I can't test myself - do you/have you?

With the information we have the following makes sense:

1) Can read at least one register, since otherwise it'd be useless for address generation
2) Can write at least one register, for inc/dec
3) Can perform adds, for effective address generation in complex lea and calls
4) Can't have immediate operands?

It's possible that it also can't modify the carry flag (inc/dec doesn't), but xadd does (same as add) and bextr sets it to 0. bextr also accesses two registers, but the second access only has to be 16-bits. xadd requires two writes instead of 1, and the SOG claims it's single cycle.

These are really weird thing to optimize for. xadd is mainly just useful for synchronization and thus not that performance sensitive. bextr with a register control would almost never be used in real code - extract fields are usually constant, and if you actually did need a variable one and were willing to use AMD only code you'd probably use XOP instead.

And if you can do xadd there's no reason why you can't do add, unless you must modify the source register (inc/dec follow this as well, but bextr doesn't).

The whole thing is just really confusing. Sometimes I wonder if someone in AMD is making that section of the SOG wrong on purpose.
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
Phoronix tests GCC compiler flags and Bulldozer.I.S.T.2012/04/19 03:05 AM
  Single page view?David Kanter2012/04/19 08:59 AM
    Single page view?wainwright2012/04/19 09:22 AM
    Single page view?slothrop2012/04/19 09:23 AM
      Single page view?David Kanter2012/04/19 09:31 AM
        Single page view?EduardoS2012/04/19 03:12 PM
    Is there a single page view option for RWT articles?anon2012/04/19 09:27 AM
    Single page view?Del2012/04/19 09:36 AM
      Single page view?slacker2012/04/19 03:56 PM
        Single page view?Del2012/04/22 06:09 AM
          Single page view?David Kanter2012/04/22 09:38 AM
            Single page view?Del2012/04/23 01:22 AM
    Single page view?Michael S2012/04/19 01:30 PM
      Single page view?Ungo2012/04/19 02:25 PM
        Single page view?Foo_2012/04/20 12:17 AM
          Single page view?James2012/04/20 04:01 AM
            There are ads on the web?JJB2012/04/20 04:32 AM
              What a bunch of freeloaders (NT)slacker2012/04/20 01:44 PM
                So are you, probablyiz2012/04/21 04:41 AM
                  Impression ad revenuePaul A. Clayton2012/04/21 06:44 AM
                  So are you, probablyslacker2012/04/21 01:09 PM
                    So are you, probablyDavid Kanter2012/04/22 09:41 AM
                      So are you, probablyiz2012/04/22 03:57 PM
                    So are you, probablyDoug Siebert2012/04/22 12:37 PM
                      Aha!David Kanter2012/04/22 03:45 PM
                        Aha!bakaneko2012/04/22 08:49 PM
                    So are you, probablyiz2012/04/22 03:48 PM
                      That's not how the business works...David Kanter2012/04/22 05:31 PM
                        That's not how the business works...iz2012/04/23 01:49 AM
                      So are you, probablyslacker2012/04/22 11:31 PM
                        back to phoronixMichael S2012/04/23 02:07 AM
                        So are you, probablyiz2012/04/23 03:29 AM
                          Membership at RWTDavid Kanter2012/04/23 11:24 AM
                          So are you, probablyJukka Larja2012/04/27 08:59 AM
  So, what do people think of these numbers>I.S.T.2012/04/19 07:34 PM
    So, what do people think of these numbers>Linus Torvalds2012/04/20 08:34 AM
      So, what do people think of these numbers>Kira2012/04/20 09:18 AM
        So, what do people think of these numbers>Linus Torvalds2012/04/20 10:05 AM
      So, what do people think of these numbers>Doug Siebert2012/04/20 09:00 PM
      So, what do people think of these numbers>Megol2012/04/21 09:05 AM
        So, what do people think of these numbers>Linus Torvalds2012/04/21 01:11 PM
          Most problems are fixed...Megol2012/04/24 07:00 AM
    So, what do people think of these numbers>bakaneko2012/04/20 11:16 AM
      So, what do people think of these numbers>bakaneko2012/04/20 11:37 AM
        So, what do people think of these numbers>Linus Torvalds2012/04/20 01:24 PM
          So, what do people think of these numbers>Joel2012/04/20 02:59 PM
            So, what do people think of these numbers>Kira2012/04/20 03:32 PM
              So, what do people think of these numbers>EduardoS2012/04/20 04:00 PM
                Bulldozer's Oddities.Joel2012/04/20 04:54 PM
                  In defense of Bulldozer's OdditiesDavid Kanter2012/04/20 05:32 PM
                    In defense of Bulldozer's OdditiesExophase2012/04/20 07:11 PM
                      In defense of Bulldozer's OdditiesEduardoS2012/04/20 07:46 PM
                        In defense of Bulldozer's OdditiesExophase2012/04/20 08:18 PM
                          In defense of Bulldozer's Odditiesanonymous2012/04/20 11:26 PM
                            In defense of Bulldozer's OdditiesJJB2012/04/20 11:34 PM
                              In defense of Bulldozer's Odditiesimaxx2012/04/21 07:21 AM
                                In defense of Bulldozer's OdditiesMichael S2012/04/21 10:42 AM
                                  Bulldozer's integer execution unitsDavid Kanter2012/04/25 04:29 PM
                                    Bulldozer's integer execution unitsExophase2012/04/26 12:17 PM
                                      Bulldozer's integer execution unitsanonymous2012/04/26 03:15 PM
                                        Bulldozer's integer execution unitsEduardoS2012/04/26 03:40 PM
                                          Bulldozer's integer execution unitsFoo_2012/04/27 08:21 AM
                                            Bulldozer's integer execution unitsMegol2012/04/27 01:38 PM
                                      Bulldozer's integer execution unitsEduardoS2012/04/26 03:47 PM
                                        Bulldozer's integer execution unitsExophase2012/04/26 05:02 PM
                                          Bulldozer's integer execution unitsEduardoS2012/04/26 06:03 PM
                                            Bulldozer's integer execution unitsExophase2012/04/26 06:24 PM
                                              Bulldozer's integer execution unitsEduardoS2012/04/26 07:18 PM
                                                Bulldozer's cache memory performanceHeikki Kultala2012/04/28 01:18 AM
                                                  Bulldozer's cache memory performanceEduardoS2012/04/28 10:06 AM
                                      Bulldozer's integer execution unitsDavid Kanter2012/04/26 04:03 PM
                                        Bulldozer's integer execution unitsExophase2012/04/26 04:59 PM
                                          Bulldozer's integer execution unitsDavid Kanter2012/04/26 10:53 PM
                                            Bulldozer's integer execution unitsExophase2012/04/27 08:42 AM
                                              Bulldozer's integer execution unitsDavid Kanter2012/04/27 11:06 AM
                                                Bulldozer's integer execution unitsEduardoS2012/04/27 01:27 PM
                                                K8 divided pipelines?Paul A. Clayton2012/04/27 01:59 PM
                                          Bulldozer's integer execution unitsMichael S2012/04/27 04:37 AM
                                            Bulldozer's integer execution unitsExophase2012/04/27 08:33 AM
                                            Bulldozer's integer execution unitsanonymous2012/04/27 09:03 AM
                                    Renaming FlagsKonrad Schwarz2012/04/27 03:04 AM
                                      Renaming Flagsnone2012/04/27 04:03 AM
                                        Renaming FlagsMegol2012/04/27 12:42 PM
                                    Bulldozer's integer execution unitshcl642012/04/27 04:31 PM
                                      VEX supports 3+ operands. FPU have renaming already(NT)Megol2012/04/28 08:20 AM
                              In defense of Bulldozer's OdditiesLinus Torvalds2012/04/21 12:26 PM
                                Thanks for the lessonJJB2012/04/21 02:23 PM
                                  Side note..Linus Torvalds2012/04/21 02:57 PM
                            In defense of Bulldozer's OdditiesExophase2012/04/21 12:13 PM
                            In defense of Bulldozer's OdditiesEduardoS2012/04/21 12:53 PM
                    In defense of Bulldozer's OdditiesGionatan Danti2012/04/21 12:42 PM
                    In defense of Bulldozer's Odditieshcl642012/04/27 05:07 PM
                      In defense of Bulldozer's OdditiesDavid Kanter2012/04/28 06:29 AM
                        In defense of Bulldozer's Odditieshcl642012/04/28 02:44 PM
                          In defense of Bulldozer's OdditiesDavid Kanter2012/04/28 09:42 PM
                            In defense of Bulldozer's Odditieshcl642012/04/28 10:39 PM
                  Bulldozer's Oddities.EduardoS2012/04/20 06:05 PM
                    Bulldozer's Oddities.anon2012/04/20 08:32 PM
                      Bulldozer's Oddities.EduardoS2012/04/21 12:37 PM
                        Bulldozer's Oddities.anon2012/04/21 10:16 PM
                          Bulldozer's Oddities.EduardoS2012/04/21 10:43 PM
                            Bulldozer's Oddities.anon2012/04/22 02:09 AM
                              Bulldozer's Oddities.EduardoS2012/04/22 01:57 PM
                                Bulldozer's Oddities.anon2012/04/22 04:17 PM
                                  Bulldozer's Oddities.EduardoS2012/04/22 05:05 PM
                                    Bulldozer's Oddities.anon2012/04/22 05:42 PM
                                      Bulldozer's Oddities.anon2012/04/22 06:01 PM
                                      Bulldozer's Oddities.EduardoS2012/04/22 10:28 PM
                                        Bulldozer's Oddities.anon2012/04/22 11:05 PM
                  Bulldozer's isn't bad.a reader2012/04/21 10:01 AM
                    Bulldozer's isn't bad.Kira2012/04/21 11:29 AM
                      Bulldozer's isn't bad.hcl642012/04/27 05:58 PM
                        Bulldozer's isn't bad.anon2012/04/27 06:16 PM
                          Bulldozer's isn't bad.hcl642012/04/27 07:33 PM
                            Bulldozer's isn't bad.rwessel2012/04/27 11:12 PM
                        Bulldozer's isn't bad.EduardoS2012/04/28 09:29 AM
                          Bulldozer's isn't bad.EduardoS2012/04/28 09:30 AM
                          Bulldozer's isn't bad.Michael S2012/04/28 12:36 PM
                    Bulldozer is made for SPEC fpPelle-482012/04/21 11:41 AM
                  Bulldozer's Oddities.mpx2012/04/22 03:47 AM
                    Bulldozer's Oddities.EduardoS2012/04/22 01:57 PM
                      Bulldozer's Oddities.mpx2012/04/23 07:04 AM
                        Bulldozer's Oddities.Eric2012/04/23 12:33 PM
                          Bulldozer's Oddities.EduardoS2012/04/23 02:22 PM
                            Bulldozer's Oddities.Eric2012/04/23 07:30 PM
                              Bulldozer's Oddities.hcl642012/04/27 06:16 PM
                            Bulldozer's Oddities.Y2012/04/25 04:34 AM
                              Bulldozer's IDIVHeikki Kultala2012/04/27 10:56 PM
                                Bulldozer's IDIVY2012/04/30 01:51 AM
                                  Bulldozer's IDIVEduardoS2012/04/30 05:39 AM
                                    Bulldozer's IDIVP3Dnow2012/05/08 01:23 AM
                                      Bulldozer's IDIVExophase2012/05/08 07:37 AM
                        Bulldozer's Oddities.EduardoS2012/04/23 02:15 PM
              Clustered MT as SMT for high frequencyPaul A. Clayton2012/04/20 04:10 PM
                Clustered MT as SMT for high frequencyhcl642012/04/28 12:56 AM
                  Clustered MT as SMT for high frequencyanonymous2012/04/28 01:43 AM
                    Clustered MT as SMT for high frequencyhcl642012/04/28 02:59 PM
                      Clustered MT as SMT for high frequencyanonymous2012/04/28 08:45 PM
                  Clustered MT as SMT for high frequencyanon2012/04/28 02:13 AM
                    Clustered MT as SMT for high frequencyhcl642012/04/28 03:23 PM
                      Clustered MT as SMT for high frequencyanon2012/04/28 06:19 PM
                        Clustered MT as SMT for high frequencyhcl642012/04/28 07:58 PM
                  Clustered MT as SMT for high frequencyDavid Kanter2012/04/28 06:38 AM
                    Guessed meaning of "strong dependency model"Paul A. Clayton2012/04/28 07:24 AM
                      Guessed meaning of "strong dependency model"EduardoS2012/04/28 09:46 AM
                        *Right meaning* about "strong dependency model"hcl642012/04/28 04:59 PM
                    Clustered MT as SMT for high frequencyhcl642012/04/28 04:24 PM
                      Clustered MT as SMT for high frequencyanonymous2012/04/28 08:50 PM
                        Clustered MT as SMT for high frequencyhcl642012/04/28 09:47 PM
                          SNB widthDavid Kanter2012/04/28 09:48 PM
                            SNB widthhcl642012/04/29 02:24 AM
                      Clustered MT as SMT for high frequencyDavid Kanter2012/04/28 09:56 PM
                        Clustered MT as SMT for high frequencyhcl642012/04/28 11:44 PM
                          SOI, FD vs. PDDavid Kanter2012/04/29 07:19 AM
                            SOI, FD vs. PDhcl642012/04/29 05:31 PM
                              SOI, FD vs. PDDavid Kanter2012/04/29 11:26 PM
                                SOI, FD vs. PDhcl642012/04/30 08:08 AM
                                  SOI, FD vs. PDDavid Kanter2012/04/30 09:59 AM
                                    SOI, FD vs. PDhcl642012/04/30 06:10 PM
                                      SOI, FD vs. PDDavid Kanter2012/04/30 06:32 PM
                                        SOI, FD vs. PDhcl642012/04/30 10:47 PM
                                          SOI, FD vs. PDDavid Kanter2012/05/01 02:24 AM
                                            SOI, FD vs. PDhcl642012/05/01 05:46 AM
                                            SOI, FD vs. PDhcl642012/05/01 06:37 AM
                                              SOI, FD vs. PDDavid Kanter2012/05/01 08:19 AM
                                          SOI, FD vs. PDhcl642012/05/01 07:39 AM
                                            PD-SOIDavid Kanter2012/05/02 12:22 PM
                                    SOI, FD vs. PDslacker2012/04/30 08:10 PM
                                      SOI, FD vs. PDDavid Kanter2012/04/30 10:16 PM
                                        SOI, FD vs. PDslacker2012/05/01 10:04 PM
                                          SOI, FD vs. PDDavid Kanter2012/05/02 08:19 AM
                                            SOI, FD vs. PDzou2012/05/02 12:23 PM
                  Previous discussion of clustered MTPaul A. Clayton2012/04/28 07:00 AM
                    Previous discussion of clustered MThcl642012/04/28 09:38 PM
                      Previous discussion of clustered MTDavid Kanter2012/04/30 04:37 PM
                        Previous discussion of clustered MThcl642012/04/30 07:24 PM
                          Previous discussion of clustered MTDavid Kanter2012/04/30 07:40 PM
                            Previous discussion of clustered MThcl642012/05/01 09:15 AM
                              Latency issuesDavid Kanter2012/05/02 12:01 PM
              So, what do people think of these numbers>Megol2012/04/21 01:57 AM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell avocado?