The following code produces an Illegal instruction (core dumped) on the compiler:
float bug(float x) {
short i = *cast(short*)&x;
++i;
return *cast(float*)&i;
}
The codegen try to generate optimized calls with XMM opcodes but fail to do it. This might happen to other types too.