public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/52898] New: SH Target: Inefficient comparison of DImode and immediate constant
@ 2012-04-07 11:18 olegendo at gcc dot gnu.org
  2012-04-11 22:48 ` [Bug target/52898] SH Target: Inefficient DImode comparisons olegendo at gcc dot gnu.org
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: olegendo at gcc dot gnu.org @ 2012-04-07 11:18 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52898

             Bug #: 52898
           Summary: SH Target: Inefficient comparison of DImode and
                    immediate constant
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: olegendo@gcc.gnu.org
            Target: sh*-*-*


The following ...

int test (long long a)
{
  return a == 40;
}

compiled with -O2, -O3, -Os:

        mov     #0,r2
        cmp/eq  r2,r4
        bf/s   .L38
        mov     #40,r3
        cmp/eq  r3,r5
.L38:
        rts
        movt    r0


would be better as:

    mov     #40,r3
    tst     r4,r4   ! use tst to compare against zero
    bf      .L38    ! use zero-displacement branch
    cmp/eq  r3,r5
.L38:
    rts
    movt    r0




Using built-in specs.
COLLECT_GCC=sh-elf-gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/sh-elf/4.8.0/lto-wrapper
Target: sh-elf
Configured with: ../gcc-trunk/configure --target=sh-elf --prefix=/usr/local
--enable-languages=c,c++ --enable-multilib --disable-libssp --disable-nls
--disable-werror --enable-lto --with-newlib --with-gnu-as --with-gnu-ld
--with-system-zlib
Thread model: single
gcc version 4.8.0 20120406 (experimental) (GCC)


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

end of thread, other threads:[~2013-12-08 22:16 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-07 11:18 [Bug target/52898] New: SH Target: Inefficient comparison of DImode and immediate constant olegendo at gcc dot gnu.org
2012-04-11 22:48 ` [Bug target/52898] SH Target: Inefficient DImode comparisons olegendo at gcc dot gnu.org
2012-04-11 22:52 ` olegendo at gcc dot gnu.org
2012-04-12  1:13 ` kkojima at gcc dot gnu.org
2012-04-12  6:20 ` olegendo at gcc dot gnu.org
2012-04-12  7:00 ` olegendo at gcc dot gnu.org
2012-09-01 22:47 ` olegendo at gcc dot gnu.org
2013-12-07  8:05 ` olegendo at gcc dot gnu.org
2013-12-07 10:36 ` kkojima at gcc dot gnu.org
2013-12-08 22:16 ` olegendo 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).