LDC 0.11.0 Beta 3
Kai Nacke
kai at redstar.de
Sun Jun 30 10:10:37 PDT 2013
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
More information about the digitalmars-d-ldc
mailing list