The behaviour of _mm_move_ss() is unpredicted and its different from expected behaviour with Intel compiler in release mode.
I used the intrinnsic _mm_move_ss() for copying data from one xmm reg to another xmm reg.
vrz = _mm_move_ss(vrx, vrx) - does not work in release mode but works in debug mode.
If we pass two different arguments to _mm_move_ss() then the behaviour is ok in release mode.
vrz = _mm_move_ss(vrx, _mm_set1_ps(0.0)); - works in release mode
Is there any restriction on arguments?
What could be the reason for this behaviour?
Note: I used below options in release mode:
/Zi /nologo /W3 /O2 /D "_MBCS" /EHsc /MT /GS /QxCORE-AVX2 /Zc:wchar_t /Zc:forScope /Fp"Release\AlgoRomLib.pch" /Fa"Release\" /Fo"Release\" /Fd"Release\vc100.pdb" /Gd
Eswar Reddy K