Any SIMD experts?
John Colvin via Digitalmars-d
digitalmars-d at puremagic.com
Tue Dec 9 08:22:09 PST 2014
On Tuesday, 9 December 2014 at 12:36:29 UTC, John Colvin wrote:
> On Monday, 8 December 2014 at 22:10:09 UTC, Martin Nowak wrote:
>> On 12/08/2014 06:05 PM, John Colvin wrote:
>>> Well gcc gives me:
>>
>> Tried that with dmd, it gave me.
>>
>> bug.d(5): Error: incompatible types for ((a) >= (l)):
>> '__vector(ulong[4])' and '__vector(ulong[4])'
>> bug.d(5): Error: incompatible types for ((a) < (h)):
>> '__vector(ulong[4])' and '__vector(ulong[4])'
>>
>> Yours looks better.
>
> It's unfortunate it can't work it out automatically like gcc
> can.
>
> Anyway, you can write it out manually:
>
> auto foo(ulong2 a, ulong2 l, ulong h)
> {
> static long2 shift = long.min; //-2^63
> long2 aS = cast(long2)(a - shift);
> long2 lS = cast(long2)(l - shift);
> long2 hS = cast(long2)(h - shift);
> return (hS > aS) & (lS > aS);
> }
>
> but that doesn't actually compile, the compiler just sits in
> semantic3 forever (see
> https://issues.dlang.org/show_bug.cgi?id=13841)
which of course Kenji already has a pull for, less than 3 hours
later :)
More information about the Digitalmars-d
mailing list