OSDN Git Service

[resample] Prefer VEX to EVEX
authorStarg <starg@users.osdn.me>
Sun, 28 Feb 2021 13:36:40 +0000 (22:36 +0900)
committerStarg <starg@users.osdn.me>
Sun, 28 Feb 2021 13:36:40 +0000 (22:36 +0900)
timidity/resample.c

index 034fe4c..6444208 100644 (file)
@@ -4920,14 +4920,14 @@ static inline DATA_T *resample_linear_int32_multi(Voice *vp, DATA_T *dest, int32
                __m128i vin14 = _mm_loadu_si128((__m128i *)&src[MM512_EXTRACT_I32(vofsi, 13)]);
                __m128i vin15 = _mm_loadu_si128((__m128i *)&src[MM512_EXTRACT_I32(vofsi, 14)]);
                __m128i vin16 = _mm_loadu_si128((__m128i *)&src[MM512_EXTRACT_I32(vofsi, 15)]);
-               __m256i vin1_5 = _mm256_inserti32x4(_mm256_castsi128_si256(vin1), vin5, 1);
-               __m256i vin2_6 = _mm256_inserti32x4(_mm256_castsi128_si256(vin2), vin6, 1);
-               __m256i vin3_7 = _mm256_inserti32x4(_mm256_castsi128_si256(vin3), vin7, 1);
-               __m256i vin4_8 = _mm256_inserti32x4(_mm256_castsi128_si256(vin4), vin8, 1);
-               __m256i vin9_13 = _mm256_inserti32x4(_mm256_castsi128_si256(vin9), vin13, 1);
-               __m256i vin10_14 = _mm256_inserti32x4(_mm256_castsi128_si256(vin10), vin14, 1);
-               __m256i vin11_15 = _mm256_inserti32x4(_mm256_castsi128_si256(vin11), vin15, 1);
-               __m256i vin12_16 = _mm256_inserti32x4(_mm256_castsi128_si256(vin12), vin16, 1);
+               __m256i vin1_5 = _mm256_inserti128_si256(_mm256_castsi128_si256(vin1), vin5, 1);
+               __m256i vin2_6 = _mm256_inserti128_si256(_mm256_castsi128_si256(vin2), vin6, 1);
+               __m256i vin3_7 = _mm256_inserti128_si256(_mm256_castsi128_si256(vin3), vin7, 1);
+               __m256i vin4_8 = _mm256_inserti128_si256(_mm256_castsi128_si256(vin4), vin8, 1);
+               __m256i vin9_13 = _mm256_inserti128_si256(_mm256_castsi128_si256(vin9), vin13, 1);
+               __m256i vin10_14 = _mm256_inserti128_si256(_mm256_castsi128_si256(vin10), vin14, 1);
+               __m256i vin11_15 = _mm256_inserti128_si256(_mm256_castsi128_si256(vin11), vin15, 1);
+               __m256i vin12_16 = _mm256_inserti128_si256(_mm256_castsi128_si256(vin12), vin16, 1);
                __m512i vin1_5_9_13 = _mm512_inserti32x8(_mm512_castsi256_si512(vin1_5), vin9_13, 1);
                __m512i vin2_6_10_14 = _mm512_inserti32x8(_mm512_castsi256_si512(vin2_6), vin10_14, 1);
                __m512i vin3_7_11_15 = _mm512_inserti32x8(_mm512_castsi256_si512(vin3_7), vin11_15, 1);
@@ -5385,14 +5385,14 @@ static inline DATA_T *resample_linear_float_multi(Voice *vp, DATA_T *dest, int32
                __m128 vin14 = _mm_loadu_ps(&src[MM512_EXTRACT_I32(vofsi, 13)]);
                __m128 vin15 = _mm_loadu_ps(&src[MM512_EXTRACT_I32(vofsi, 14)]);
                __m128 vin16 = _mm_loadu_ps(&src[MM512_EXTRACT_I32(vofsi, 15)]);
-               __m256 vin1_5 = _mm256_insertf32x4(_mm256_castps128_ps256(vin1), vin5, 1);
-               __m256 vin2_6 = _mm256_insertf32x4(_mm256_castps128_ps256(vin2), vin6, 1);
-               __m256 vin3_7 = _mm256_insertf32x4(_mm256_castps128_ps256(vin3), vin7, 1);
-               __m256 vin4_8 = _mm256_insertf32x4(_mm256_castps128_ps256(vin4), vin8, 1);
-               __m256 vin9_13 = _mm256_insertf32x4(_mm256_castps128_ps256(vin9), vin13, 1);
-               __m256 vin10_14 = _mm256_insertf32x4(_mm256_castps128_ps256(vin10), vin14, 1);
-               __m256 vin11_15 = _mm256_insertf32x4(_mm256_castps128_ps256(vin11), vin15, 1);
-               __m256 vin12_16 = _mm256_insertf32x4(_mm256_castps128_ps256(vin12), vin16, 1);
+               __m256 vin1_5 = _mm256_insertf128_ps(_mm256_castps128_ps256(vin1), vin5, 1);
+               __m256 vin2_6 = _mm256_insertf128_ps(_mm256_castps128_ps256(vin2), vin6, 1);
+               __m256 vin3_7 = _mm256_insertf128_ps(_mm256_castps128_ps256(vin3), vin7, 1);
+               __m256 vin4_8 = _mm256_insertf128_ps(_mm256_castps128_ps256(vin4), vin8, 1);
+               __m256 vin9_13 = _mm256_insertf128_ps(_mm256_castps128_ps256(vin9), vin13, 1);
+               __m256 vin10_14 = _mm256_insertf128_ps(_mm256_castps128_ps256(vin10), vin14, 1);
+               __m256 vin11_15 = _mm256_insertf128_ps(_mm256_castps128_ps256(vin11), vin15, 1);
+               __m256 vin12_16 = _mm256_insertf128_ps(_mm256_castps128_ps256(vin12), vin16, 1);
                __m512 vin1_5_9_13 = _mm512_insertf32x8(_mm512_castps256_ps512(vin1_5), vin9_13, 1);
                __m512 vin2_6_10_14 = _mm512_insertf32x8(_mm512_castps256_ps512(vin2_6), vin10_14, 1);
                __m512 vin3_7_11_15 = _mm512_insertf32x8(_mm512_castps256_ps512(vin3_7), vin11_15, 1);
@@ -7041,14 +7041,14 @@ static inline DATA_T *resample_lagrange_int32_multi(Voice *vp, DATA_T *dest, int
        __m128i vin14 = _mm_loadu_si128((__m128i *)&src[MM512_EXTRACT_I32(vofsi, 13) - 1]);
        __m128i vin15 = _mm_loadu_si128((__m128i *)&src[MM512_EXTRACT_I32(vofsi, 14) - 1]);
        __m128i vin16 = _mm_loadu_si128((__m128i *)&src[MM512_EXTRACT_I32(vofsi, 15) - 1]);
-       __m256i vin1_5 = _mm256_inserti32x4(_mm256_castsi128_si256(vin1), vin5, 1);
-       __m256i vin2_6 = _mm256_inserti32x4(_mm256_castsi128_si256(vin2), vin6, 1);
-       __m256i vin3_7 = _mm256_inserti32x4(_mm256_castsi128_si256(vin3), vin7, 1);
-       __m256i vin4_8 = _mm256_inserti32x4(_mm256_castsi128_si256(vin4), vin8, 1);
-       __m256i vin9_13 = _mm256_inserti32x4(_mm256_castsi128_si256(vin9), vin13, 1);
-       __m256i vin10_14 = _mm256_inserti32x4(_mm256_castsi128_si256(vin10), vin14, 1);
-       __m256i vin11_15 = _mm256_inserti32x4(_mm256_castsi128_si256(vin11), vin15, 1);
-       __m256i vin12_16 = _mm256_inserti32x4(_mm256_castsi128_si256(vin12), vin16, 1);
+       __m256i vin1_5 = _mm256_inserti128_si256(_mm256_castsi128_si256(vin1), vin5, 1);
+       __m256i vin2_6 = _mm256_inserti128_si256(_mm256_castsi128_si256(vin2), vin6, 1);
+       __m256i vin3_7 = _mm256_inserti128_si256(_mm256_castsi128_si256(vin3), vin7, 1);
+       __m256i vin4_8 = _mm256_inserti128_si256(_mm256_castsi128_si256(vin4), vin8, 1);
+       __m256i vin9_13 = _mm256_inserti128_si256(_mm256_castsi128_si256(vin9), vin13, 1);
+       __m256i vin10_14 = _mm256_inserti128_si256(_mm256_castsi128_si256(vin10), vin14, 1);
+       __m256i vin11_15 = _mm256_inserti128_si256(_mm256_castsi128_si256(vin11), vin15, 1);
+       __m256i vin12_16 = _mm256_inserti128_si256(_mm256_castsi128_si256(vin12), vin16, 1);
        __m512i vin1_5_9_13 = _mm512_inserti32x8(_mm512_castsi256_si512(vin1_5), vin9_13, 1);
        __m512i vin2_6_10_14 = _mm512_inserti32x8(_mm512_castsi256_si512(vin2_6), vin10_14, 1);
        __m512i vin3_7_11_15 = _mm512_inserti32x8(_mm512_castsi256_si512(vin3_7), vin11_15, 1);
@@ -7719,14 +7719,14 @@ static inline DATA_T *resample_lagrange_float_multi(Voice *vp, DATA_T *dest, int
        __m128 vin14 = _mm_loadu_ps(&src[MM512_EXTRACT_I32(vofsi, 13) - 1]);
        __m128 vin15 = _mm_loadu_ps(&src[MM512_EXTRACT_I32(vofsi, 14) - 1]);
        __m128 vin16 = _mm_loadu_ps(&src[MM512_EXTRACT_I32(vofsi, 15) - 1]);
-       __m256 vin1_5 = _mm256_insertf32x4(_mm256_castps128_ps256(vin1), vin5, 1);
-       __m256 vin2_6 = _mm256_insertf32x4(_mm256_castps128_ps256(vin2), vin6, 1);
-       __m256 vin3_7 = _mm256_insertf32x4(_mm256_castps128_ps256(vin3), vin7, 1);
-       __m256 vin4_8 = _mm256_insertf32x4(_mm256_castps128_ps256(vin4), vin8, 1);
-       __m256 vin9_13 = _mm256_insertf32x4(_mm256_castps128_ps256(vin9), vin13, 1);
-       __m256 vin10_14 = _mm256_insertf32x4(_mm256_castps128_ps256(vin10), vin14, 1);
-       __m256 vin11_15 = _mm256_insertf32x4(_mm256_castps128_ps256(vin11), vin15, 1);
-       __m256 vin12_16 = _mm256_insertf32x4(_mm256_castps128_ps256(vin12), vin16, 1);
+       __m256 vin1_5 = _mm256_insertf128_ps(_mm256_castps128_ps256(vin1), vin5, 1);
+       __m256 vin2_6 = _mm256_insertf128_ps(_mm256_castps128_ps256(vin2), vin6, 1);
+       __m256 vin3_7 = _mm256_insertf128_ps(_mm256_castps128_ps256(vin3), vin7, 1);
+       __m256 vin4_8 = _mm256_insertf128_ps(_mm256_castps128_ps256(vin4), vin8, 1);
+       __m256 vin9_13 = _mm256_insertf128_ps(_mm256_castps128_ps256(vin9), vin13, 1);
+       __m256 vin10_14 = _mm256_insertf128_ps(_mm256_castps128_ps256(vin10), vin14, 1);
+       __m256 vin11_15 = _mm256_insertf128_ps(_mm256_castps128_ps256(vin11), vin15, 1);
+       __m256 vin12_16 = _mm256_insertf128_ps(_mm256_castps128_ps256(vin12), vin16, 1);
        __m512 vin1_5_9_13 = _mm512_insertf32x8(_mm512_castps256_ps512(vin1_5), vin9_13, 1);
        __m512 vin2_6_10_14 = _mm512_insertf32x8(_mm512_castps256_ps512(vin2_6), vin10_14, 1);
        __m512 vin3_7_11_15 = _mm512_insertf32x8(_mm512_castps256_ps512(vin3_7), vin11_15, 1);