Hello all!
very simple code:
------------------
double[] a, c;
...
c[] += a[];
------------------
The DMD version I can find in _arraySliceSliceAddass_d,
https://github.com/D-Programming-Language/druntime/blob/master/
rc/rt/arraydouble.d
.
What about LDC and GDC?
The _arraySliceSliceAddass_d is the same, no any version(LDC).
When I compile code into assembler I found other code then in asm
scope.
So I suppose LDC has it's own architecture.
Is it right?
Where I can find it for understanding what optimization can be
done by LLVM optimizer?
Have GDC it's own architecture too?
Best Regards,
Ilya

Hello all!
very simple code:
------------------
double[] a, c;
...
c[] += a[];
------------------
The DMD version I can find in _arraySliceSliceAddass_d,
https://github.com/D-Programming-Language/druntime/blob/master/
rc/rt/arraydouble.d
.
What about LDC and GDC?
The _arraySliceSliceAddass_d is the same, no any version(LDC).
When I compile code into assembler I found other code then in
asm scope.
So I suppose LDC has it's own architecture.
Is it right?
Where I can find it for understanding what optimization can be
done by LLVM optimizer?
Have GDC it's own architecture too?
Best Regards,
Ilya

If you look at the bottom of those _array functions you will find
a regular loop doing the cleanup for anything missed by the
inline asm. If I remember correctly, for gdc it is this loop
doing the whole operation as the asm is versioned out.

If you look at the bottom of those _array functions you will
find a regular loop doing the cleanup for anything missed by
the inline asm. If I remember correctly, for gdc it is this
loop doing the whole operation as the asm is versioned out.

Hello all!
very simple code:
------------------
double[] a, c;
...
c[] += a[];
------------------
The DMD version I can find in _arraySliceSliceAddass_d,
https://github.com/D-Programming-Language/druntime/blob/master/
rc/rt/arraydouble.d
.
What about LDC and GDC?
The _arraySliceSliceAddass_d is the same, no any version(LDC).
When I compile code into assembler I found other code then in
asm scope.
So I suppose LDC has it's own architecture.
Is it right?
Where I can find it for understanding what optimization can be
done by LLVM optimizer?
Have GDC it's own architecture too?
Best Regards,
Ilya