LDC 0.11.0 Beta 3

Kai Nacke kai at redstar.de
Sun Jun 30 10:27:06 PDT 2013


On Sunday, 30 June 2013 at 17:10:38 UTC, Kai Nacke wrote:
> On Sunday, 30 June 2013 at 01:52:46 UTC, bearophile wrote:
>> int main() {
>>    import core.simd;
>>    float[16] a = 1.0;
>>    float4 t = 0, k = 2;
>>    auto b = cast(float4[])a;
>>    for (size_t i = 0; i < b.length; i++)
>>        t += b[i] * k;
>>    return cast(int)t.array[2];
>> }
>>
>>
>>
>> Compiling it with "ldmd2 -O":
>>
>> Error: Instruction does not dominate all uses!
>>  %tmp33.Elt = fmul float %tmp33.Elt.lhs, 2.000000e+00
>>  %1 = fadd float %0, %tmp33.Elt
>> Instruction does not dominate all uses!
>>  %tmp31 = load <4 x float>* %tmp30, align 16
>>  %tmp33.Elt.lhs = extractelement <4 x float> %tmp31, i32 2
>> Broken module found, compilation terminated.
>> Broken module found, compilation terminated.
>> Broken module found, compilation terminated.
>>
>> Bye,
>> bearophile
>
> Thanks for the nice test case.
>
> It looks like a LLVM 3.3 problem. I can reproduce it with LDC 
> head and LLVM 3.3, but not with LLVM trunk or LLVM 3.2. I will 
> further investigate it..
>
> Kai

That's now issue #421.


More information about the digitalmars-d-ldc mailing list