Question on SSE intrinsics

Nicholas Wilson via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Jul 29 19:05:32 PDT 2017


On Saturday, 29 July 2017 at 22:45:12 UTC, piotrekg2 wrote:
> On Saturday, 29 July 2017 at 18:19:47 UTC, Johan Engelen wrote:
>> On Saturday, 29 July 2017 at 16:01:07 UTC, piotrekg2 wrote:
>>> Hi,
>>> I'm trying to port some of my c++ code which uses sse2 
>>> instructions into D. The code calls the following intrinsics:
>>>
>>> - _mm256_loadu_si256
>>> - _mm256_movemask_epi8
>>>
>>> Do they have any equivalent intrinsics in D?
>>
>> Yes, with LDC (probably GDC too).
>> But unfortunately we don't have the "_mm256" functions (yet?), 
>> instead we have GCC's "__builtin_ia32..." functions.
>>
>> The first one you mention I think is just an unaligned load? 
>> That can be done with the template `loadUnaligned` from module 
>> ldc.simd.
>>
>> The second one has a synonym, "__builtin_ia32_pmovmskb256".
>>
>> -Johan
>
> What about __builtin_ctz?

https://github.com/ldc-developers/druntime/blob/ldc/src/ldc/intrinsics.di#L325



More information about the Digitalmars-d-learn mailing list