https://issues.dlang.org/show_bug.cgi?id=23009
Dennis <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #1 from Dennis <[email protected]> --- Reduced a bit more: ``` import core.simd; import core.stdc.stdio; double2 _mm_loadl_pd(double2 a, const(double)* mem_addr) { a[0] = *mem_addr; return a; } void main() { double A = 7.0; double2 B; B[0] = 4.0; B[1] = -5.0; double2 R = _mm_loadl_pd(B, &A); printf("%f %f\n", R[0], R[1]); double[2] correct = [ 7.0, -5.0 ]; assert(R.array == correct); } ``` Compile with -O, this one actually succeeds when _mm_loadl_pd gets inlined either with -inline or manually. Prints: 7.000000 0.000000 Instead of: 7.000000 -5.000000 --
