Feature request: compile/link option to drop compatibility with other compilers

Feature request: compile/link option to drop compatibility with other compilers

Greetings,

I have a feature request. I know Intel is trying so hard to maintain compatibility with GCC under Linux and with MSVC on Windows, respectively.

But my project really needs so badly to convert 128-bit "long double" in x64 mode to the text, but since ICC is stuck to MSVC *.lib's, it is not possible, due to MSVC's restriction, so I need to down-cast it to 64-bit "double". I was discussing this case already on this forum, and I know it was discussed many times.

My project is designed primarily to be compiled with ICC (because ICC has a fairly great benchmarks) and it is time-critical, due to real-time sound generation. And it is intended to be ran only on x64 Windows.

I know I can "steal" code from glibc from Linux's GCC, and use it to convert 128-bit float ("long double") to the text representation, but this is overkill and I am not happy about such solution.

I would really appreciate, if ICC had option "use Intel's CRT libraries instead of MS's ones". Even more, Intel's own CRT library on Windows compiled with ICC possibly could have better speed results, I believe.

Why do you are so sticky to get everything compatible with 3rd party libraries on each system? I know many users need to link 3rd party's library compiled with other compiler within ICC project (and this is not my case), but I do believe such option I have mentioned above would be really fine.

--
With best regards,
VooDooMan
-
If you find my post helpful, please rate it and/or select it as a best answer where applies. Thank you.
7 Beiträge / 0 neu
Letzter Beitrag
Nähere Informationen zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.

>>...But my project really needs so badly to convert 128-bit "long double" in x64 mode to the text, but since ICC is stuck to MSVC
>>*.lib's, it is not possible, due to MSVC's restriction, so I need to down-cast it to 64-bit "double"...

Intel C++ compiler allows to use right 'long double' data type when these two options are used:
...
/fp:[ name ]
...
extended - rounds intermediates in 64-bit (extended) precision
...
/Qpc80 - set internal FPU precision to 64-bit significand
...
Let me know if you need a Visual Studio project that demonstrates how to do some simple linear algebra processing with 'double' and 'long double' data types. It would be nice if you provide a test case that demonstrates how you do 'long double'-to-'double' cast.

Thanks in advance.

Even if we were willing to invest the resources to create our own version of the C Runtime Library all the other Microsoft libraries which use it would need to be recompiled to link it in instead of Microsoft's CRT.

 

>>...
>>Intel C++ compiler allows to use right 'long double' data type when these two options are used:
>>...
>>/fp:[ name ]
>>...
>>extended - rounds intermediates in 64-bit (extended) precision
>>...
>>/Qpc80 - set internal FPU precision to 64-bit significand
>>...

I forgot to mention another command line option:

/Qlong-double - enable 80-bit 'long double'

Zitat:

Judith Ward (Intel) schrieb:

Even if we were willing to invest the resources to create our own version of the C Runtime Library all the other Microsoft libraries which use it would need to be recompiled to link it in instead of Microsoft's CRT.

Oh, I see. :-(

--
With best regards,
VooDooMan
-
If you find my post helpful, please rate it and/or select it as a best answer where applies. Thank you.

Zitat:

Sergey Kostrov schrieb:

>>...
>>Intel C++ compiler allows to use right 'long double' data type when these two options are used:
>>...
>>/fp:[ name ]
>>...
>>extended - rounds intermediates in 64-bit (extended) precision
>>...
>>/Qpc80 - set internal FPU precision to 64-bit significand
>>...

I forgot to mention another command line option:

/Qlong-double - enable 80-bit 'long double'

You have not read my request carefuly. I was speaking of x64 (thus 'long double' is 128-bit long, which is not compatible with MSVC's stdio, but I still can do calculation in 128-bit mode) and NOT about x86 where is 'long double' indeed 80-bit long and IS compatible with MSVC's stdio.

I am speaking about s/printf/s/scanf("%Lf",<long double>), and so on, and about string streams in C++ as well.

--
With best regards,
VooDooMan
-
If you find my post helpful, please rate it and/or select it as a best answer where applies. Thank you.

Here is a collection of threads related to applications of long double:

Forum topic: Support of 'long double' floating point data type on Intel CPUs ( A collection of threads )
Web-link: software.intel.com/en-us/node/375459

Forum topic: Mathimf and Windows
Web-link: software.intel.com/en-us/forums/topic/357759

Forum topic: Support of Extended or Quad IEEE FP formats
Web-link: software.intel.com/en-us/forums/topic/358472

Forum topic: Using 'long double' in Parallel Studio?
Web-link: software.intel.com/en-us/forums/topic/266290

Forum topic: Why function printf does not support long double?
Web-link: software.intel.com/en-us/forums/topic/372720

Forum topic: Mixing of Floating-Point Types ( MFPT ) when performing calculations. Does it improve accuracy?
Web-link: software.intel.com/en-us/forums/topic/361134

Take a look as soon as you have time.

Kommentar hinterlassen

Bitte anmelden, um einen Kommentar hinzuzufügen. Sie sind noch nicht Mitglied? Jetzt teilnehmen