Rewrite _MM_TRANSPOSE4_PS with NEON instruction
Rewrite _MM_TRANSPOSE4_PS with NEON instruction

There is a powerful NEON instruction "vtrnq_f32" which can transpose
elements in place. We can make use of this instruction.

However, we lack of test cases which validate the combination of several
intrinsics. Here is the simplified test program for macro
_MM_TRANSPOSE4_PS:

void simd8x8Transpose32b(__m128i *pBuffer) {
    __m128 tmp[16];
    for (int n = 0; n < 16; n++)
        tmp[n] = _mm_castsi128_ps(pBuffer[n]);
    _MM_TRANSPOSE4_PS(tmp[0], tmp[2], tmp[4], tmp[6]);
    _MM_TRANSPOSE4_PS(tmp[1], tmp[3], tmp[5], tmp[7]);
    _MM_TRANSPOSE4_PS(tmp[8], tmp[10], tmp[12], tmp[14]);
    _MM_TRANSPOSE4_PS(tmp[9], tmp[11], tmp[13], tmp[15]);
    for (int n = 0; n < 8; n += 2) {
        pBuffer[n] = _mm_castps_si128(tmp[n]);
        pBuffer[n + 1] = _mm_castps_si128(tmp[n + 8]);
        pBuffer[n + 8] = _mm_castps_si128(tmp[n + 1]);
        pBuffer[n + 9] = _mm_castps_si128(tmp[n + 9]);
    }
}

DLTcollab/sse2neon,DLTcollab/sse2neon,DLTcollab/sse2neon