Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Opteron very fast at 64 bits

Author: Gerd Isenberg

Date: 15:14:34 08/04/03

Go up one level in this thread


On August 04, 2003 at 17:30:08, Eugene Nalimov wrote:

>On August 04, 2003 at 15:30:42, Gerd Isenberg wrote:
>
>>On August 04, 2003 at 13:28:09, Eugene Nalimov wrote:
>>
>>>No, AMD64 Visual C compiler does not support inline assembler. On a positive
>>>side -- we now have intrinsics for bsf/bsr.
>>>
>>>Thanks,
>>>Eugene
>>
>>
>>Thanks Eugene,
>>
>>My point was AMD64 MASM in conjunction with AMD64 MSVC.
>>
>>I read already, that AMD64 Visual C compiler doesn't support inline assembler
>>anymore. To make my integer MMX/SSE2 stuff, i have to use 64-bit MASM.
>
>There are lot of MMX/SSE2 intrinsics in the compiler now. So if you write your
>code using those intrinsics it should work on both x86 and AMD64. More, MMX-only
>code will work on Itanium as well (Itanium does not support SSE2)...
>
>>In my naive imagination i thought about a way to inline own, very small
>>assembler functions from MASM into C. That's what i meant with "own intrinsics".
>>
>>But Ok, if "bsf/bsr" and even "bswap" are available as intrinsics it isn't
>>necessary of course.
>>
>>Btw.: Do these intrinsics imply inlining?
>>eg. for this bsf prototype:   (don't know the identifier)
>>
>>unsigned __int64 _BitScanForeward(unsigned __int64 x);
>>
>>inlined code like this:
>>
>>bsf rax,rcx ; according to register convention,
>>            ; but may be changed/optimized by the compiler
>>
>>
>>Regards,
>>Gerd
>
>Yes, compiler will expand intrinsics inline. We had lot of discussions here, as
>somebody suggested to generate function calls for intrinsics that are not
>supported on the given platform (e.g. 64x64-->128-bit multiplication on x86),
>but it was decided that if user calls intrinsic he wants performance.
>
>Thanks,
>Eugene

Great news, Eugene.
Seems that intrinsics simply redundantize the need for inline assembly.

Inline assembly in MSVC++ 6.0 was even a bit ugly - no fastcall passing
possible. Most often a store/load sequence from/to same register.

Thanks,
Gerd




This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.