Test case: module foo; import core.simd; struct bug { float4 value; auto normalize() { value = __simd(XMM.DPPS, value, value); } } Compiled with dmd -m64 -O foo.d
DPPS takes 3 arguments, like: __simd(XMM.DPPS, value, value, 0xFF); Of course, the compiler still shouldn't issue an internal error.
@WalterBright created dlang/dmd pull request #12046 "fix Issue 17105 - [ICE] SIMD Internal error with optimizations: backe…" fixing this issue: - fix Issue 17105 - [ICE] SIMD Internal error with optimizations: backend\cod3.c 6807 https://github.com/dlang/dmd/pull/12046
*** Issue 17106 has been marked as a duplicate of this issue. ***
dlang/dmd pull request #12046 "fix Issue 17105 - [ICE] SIMD Internal error with optimizations: backe…" was merged into master: - 46bc5e52402236eac5b1fa5c2726e073b00a5399 by Walter Bright: fix Issue 17105 - [ICE] SIMD Internal error with optimizations: backend\cod3.c 6807 https://github.com/dlang/dmd/pull/12046