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