Look at intrinsics like beeing functions build directly into the compiler.Yes, I've used that documents often recently, trying to undertand the underlying levels.
They are more "intrinsics" than "simd" though.
Works same like when you write "'if", that will translate into some cmp and jmp assembly instructions.
So using intrinsics is not same as writing assembly code. You use functions that are build into the compiler and that will be translated to assmebly code.
How the compiler does that is let to the compiler.
i.e. gcc will throw an error when you use AVX intrinsics and compile with -msse. While on MSCV, AVX intrinsics + /arch:sse will generate some strange "256bit on 128bit registers" code.