Required DMD changes for Mir and few thoughts about D future

Ilya Yaroshenko via Digitalmars-d digitalmars-d at puremagic.com
Tue Sep 27 02:21:45 PDT 2016


On Tuesday, 27 September 2016 at 03:49:18 UTC, Walter Bright 
wrote:
> On 9/26/2016 11:43 AM, Ilya Yaroshenko wrote:
>>> I think we need to make it a point to support Mir in dmd. -- 
>>> Andrei
>>
>> Required features for Level 3:
>> 1. https://issues.dlang.org/show_bug.cgi?id=16489
>> 2. https://issues.dlang.org/show_bug.cgi?id=16488
>> 3. AVX & AVX2 floating point vector arithmetic
>> 4. Generic unaligned load/store like (like LDC loadUnaligned 
>> and storeUnaligned)
>> 5. Generic routine to pack and unpack real and imaginary 
>> parts. For usage
>> example, see
>> https://github.com/libmir/mir/blob/master/source/mir/glas/internal/copy.d#L699
>
> Could you provide more detail on these, please?
>
> For example, on the last link there is no documentation on what 
> those templates do or what their parameters are. For example,
>
>   template _mix0(V)
>   {
>     import ldc.simd;
>     enum _pred(size_t a) = (a & 1) == 0 ? a / 2 : a / 2 + 
> V.length;
>     alias _mix0 = shufflevector!(V, staticMap!(_pred, 
> Iota!(V.length)));
>   }
>
> ??
>
> I'd like to see each of the points at least put into an 
> Enhancement Request on bugzilla, where we can evaluate them in 
> an organized fashion. (Like what you've done for (1) and (2).)

Bug report for (5) https://issues.dlang.org/show_bug.cgi?id=16550 
:

----
Vec1
re0 im0 re1 im1 re2 im2 re3 im3 // __vector(float[8])

Vec2
re4 im4 re5 im5 re6 im6 re7 im7 // __vector(float[8])
----
< unpack ------ pack >
----
VecReal
re0 re1 re2 re3 re4 re5 re6 re7 // __vector(float[8])

VecIm
im0 im1 im2 im3 im4 im5 im6 im7 // __vector(float[8])
----


More information about the Digitalmars-d mailing list