Could you clarify please whether there are any backwards compatibility issues with AVX? Should programmers consider it an added extra where supported, or will programs using it require it to run correctly?
AVX works with SSE or non-SSE code, so in that sense it is backward compatible. It added a lot of other features in addition to SSE e.g. wider vector, 3 operand instruction coding, compact and efficient encoding of instructions, all adding to give better performance.
One more thing to add: There is a performance penalty for switching from SSE to AVX instructions (and vice-versa), so you should not mix them too much in your code. Try grouping them in separate blocks or use AVX only where possible.
Backwards compatibility of AVX
Could you clarify please whether there are any backwards compatibility issues with AVX? Should programmers consider it an added extra where supported, or will programs using it require it to run correctly?
Thanks!