This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/25724] New: Emits call to __cmpdi2 for long long comparison


The kernel for s390 (and ppc) currently drags in __cmpdi2 from libgcc with
the following reduced testcase even though s390 is supposed to have an 8
byte comparison opcode and archs such as i686 generate bit-twiddling for
this unsupported case (admittandly not from ifcvt, but from some define-expand
hackery), i.e. ll[0] | ll[1] == 0.

void foo(void);
int dcache_readdir(long long ll)
{
    switch(ll) {
        case 0:
          foo();
    }
}


-- 
           Summary: Emits call to __cmpdi2 for long long comparison
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Keywords: missed-optimization
          Severity: critical
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rguenth at gcc dot gnu dot org
GCC target triplet: s390-ibm-linux


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]