_Decimal64 x = 0.0e99999999DD; takes a LONG time to compile

_Decimal64 x = 0.0e99999999DD; takes a LONG time to compile

Decimal FP constants with many 9s in the exponent take a very long time to compile. The more 9s, the longer it takes.

6 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi tydeman,

I tested on Linux and Windows. Unfortunately I failed to reproduce the compile time performance issue that you reported.

I was using icc 11.1.072 (on Linux) and icl 11.1.065 (on Windows).

Could you please provide a small test case and let me know your OS and the version of Intel compiler?

Thank you.
Feilong H.
Intel Developer Support

Tools Knowledge Base: http://software.intel.com/en-us/articles/tools


* Test of large exponent.

* Hardware: Intel Pentium 4 in IA-32 mode

* O.S.: Linux: Fedora Core 10

* Compiler: Intel C/C++ Version 11.1


#if 0 /* fast: 1 second */

_Decimal32 f32 = 0.0e+99999df;

_Decimal64 f64 = 0.0e+99999dd;

_Decimal128 f128 = 0.0e+99999dl;

#else /* slow: 20 seconds */

_Decimal32 f32 = 0.0e+9999999999df;

_Decimal64 f64 = 0.0e+9999999999dd;

_Decimal128 f128 = 0.0e+9999999999dl;


int main(void){

return f32 == f64 + f128;



Thank you for your test case. I'm able to reproduce this issue now. I escalated it to our problem-tracking database and will let you know when I have an update regarding it.


Engineering has implemented a fix for this issue. I'll let you know when a compiler update that contains the fix is available for download.


Hi tydeman,

This compile time performance issue has been addressed in Composer XE 2011 update 1. You may download it at https://registrationcenter.intel.com.


Leave a Comment

Please sign in to add a comment. Not a member? Join today