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

--- Comment #4 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot 
Uni-Bielefeld.DE> 2011-08-24 10:43:58 UTC ---
> --- Comment #3 from Uros Bizjak <ubizjak at gmail dot com> 2011-08-23 
> 18:16:49 UTC ---
> (In reply to comment #2)
>> Created attachment 25058 [details]
>> Proposed patch to fallback to lround call
>> 
>> I can't trigger the problem on Linux, can you please test attached patch - or
>> eventually provide a testcase with all necessary compile flags.
>
> Clock starts ticking ...

Sorry, I missed this.  The following test (reduced from
libgfortran/intrinsics/c99_functions.c) fails for me:

$ cat iround.i
float roundf (float x);

long int
lroundf (float x)
{
  return (long int) roundf (x);
}
$ ./cc1 -quiet -O2 -march=pentiumpro iround.i
$ cat iround.s
        .file   "iround.i"
        .text
        .align 16
        .globl  lroundf
        .type   lroundf, @function
lroundf:
.LFB0:
        .cfi_startproc
        jmp     __builtin_iroundf
        .cfi_endproc
.LFE0:
        .size   lroundf, .-lroundf
        .ident  "GCC: (GNU) 4.7.0 20110819 (experimental) [trunk revision
177911]"

I'll try the patch next thing.

    Rainer

Reply via email to