The following project reproduces a miscompilation in the debug codegen backend: VectorBugMinimalRepro.zip
From what I can tell, the compiler generates the following assembly:
movss xmm3, xmm2
movss xmm6, xmm3
Later, it stores those registers as the x and y arguments:
movss [rsp + 0x18c], xmm3 ; x
movss [rsp + 0x188], xmm6 ; y
Since xmm6 is copied from xmm3, both x and y appear to be stored from the same scalar value.
Tested with: 268e9d7
The following project reproduces a miscompilation in the debug codegen backend: VectorBugMinimalRepro.zip
From what I can tell, the compiler generates the following assembly:
Later, it stores those registers as the
xandyarguments:Since
xmm6is copied fromxmm3, bothxandyappear to be stored from the same scalar value.Tested with: 268e9d7