While this code:
typedef int Int2 = 2;
auto a = cast(int[])(new Int2[1000]);
Produces:
pushl %esi
subl $8, %esp
movl $1000, 4(%esp)
movl $_D20TypeInfo_ATmain4Int26__initZ, (%esp)
xorl %esi, %esi
call _d_newarrayiT
movl %esi, %ecx
(I haven't taken the running time, so I don't know if this idiom is more efficient with LDC).
Bye,
bearophile