diff -ruN opencv-4.5.5.orig/modules/gapi/src/backends/fluid/gfluidcore_simd_sse41.hpp opencv-4.5.5/modules/gapi/src/backends/fluid/gfluidcore_simd_sse41.hpp --- opencv-4.5.5.orig/modules/gapi/src/backends/fluid/gfluidcore_simd_sse41.hpp 2021-12-25 04:53:27.000000000 +0100 +++ opencv-4.5.5/modules/gapi/src/backends/fluid/gfluidcore_simd_sse41.hpp 2022-01-07 23:43:47.928816370 +0100 @@ -30,6 +30,25 @@ namespace fluid { namespace sse42 { +#ifdef __i386__ +/** + * Inspired by https://lists.freebsd.org/pipermail/p4-projects/2014-December/039272.html + */ +static inline __m128i +_mm_insert_epi64(__m128i a, int64_t b, const int ndx) +{ + if (!ndx) { + a = _mm_insert_epi32(a, b, 0); + a = _mm_insert_epi32(a, b >> 32, 1); + } else { + a = _mm_insert_epi32(a, b, 2); + a = _mm_insert_epi32(a, b >> 32, 3); + } + + return a; +} +#endif + CV_ALWAYS_INLINE void v_gather_pixel_map(v_uint8x16& vec, const uchar src[], const short* index, const int pos) { const int chanNum = 4;