Do not redefine _mm_cvtsi128_si16 when building with VS 2022
Fixes the following warnings/errors when building: ``` 1>bitutil.h(193,31): warning C4391: 'uint16_t _mm_cvtsi128_si16(__m128i)': incorrect return type for intrinsic function, expected 'short' (compiling source file ..\..\bitpack.c) 1>bitutil.h(193,60): error C2169: '_mm_cvtsi128_si16': intrinsic function, cannot be defined (compiling source file ..\..\bitpack.c) ```
This commit is contained in:
@ -122,7 +122,7 @@ uint16_t bitd16(uint16_t *in, unsigned n, uint16_t *px, uint16_t start) {
|
||||
vo1 = _mm_or_si128(vo1, v1);
|
||||
vx0 = _mm_or_si128(vx0, _mm_xor_si128(v0, vb0));
|
||||
vx1 = _mm_or_si128(vx1, _mm_xor_si128(v1, vb0));
|
||||
} start = _mm_cvtsi128_si16(_mm_srli_si128(vs,14));
|
||||
} start = mm_cvtsi128_si16(_mm_srli_si128(vs,14));
|
||||
vo0 = _mm_or_si128(vo0, vo1); o = mm_hor_epi16(vo0);
|
||||
vx0 = _mm_or_si128(vx0, vx1); x = mm_hor_epi16(vx0);
|
||||
#else
|
||||
@ -443,7 +443,7 @@ uint16_t bitz16(uint16_t *in, unsigned n, uint16_t *px, uint16_t start) {
|
||||
vo1 = _mm_or_si128(vo1, v1);
|
||||
vx0 = _mm_or_si128(vx0, _mm_xor_si128(v0, vb0));
|
||||
vx1 = _mm_or_si128(vx1, _mm_xor_si128(v1, vb0));
|
||||
} start = _mm_cvtsi128_si16(_mm_srli_si128(vs,14));
|
||||
} start = mm_cvtsi128_si16(_mm_srli_si128(vs,14));
|
||||
vo0 = _mm_or_si128(vo0, vo1); o = mm_hor_epi16(vo0);
|
||||
vx0 = _mm_or_si128(vx0, vx1); x = mm_hor_epi16(vx0);
|
||||
#else
|
||||
@ -488,7 +488,7 @@ uint32_t bitz32(unsigned *in, unsigned n, uint32_t *px, unsigned start) {
|
||||
vo1 = _mm_or_si128(vo1, v1);
|
||||
vx0 = _mm_or_si128(vx0, _mm_xor_si128(v0, vb0));
|
||||
vx1 = _mm_or_si128(vx1, _mm_xor_si128(v1, vb0));
|
||||
} start = _mm_cvtsi128_si16(_mm_srli_si128(vs,12));
|
||||
} start = mm_cvtsi128_si16(_mm_srli_si128(vs,12));
|
||||
vo0 = _mm_or_si128(vo0, vo1); o = mm_hor_epi32(vo0);
|
||||
vx0 = _mm_or_si128(vx0, vx1); x = mm_hor_epi32(vx0);
|
||||
#else
|
||||
|
||||
@ -187,9 +187,9 @@ static ALWAYS_INLINE uint64_t mm_hor_epi64( __m128i v) { v = _mm_or_si128( v, _m
|
||||
#define ADDI16x8(_v_, _sv_, _vi_) _sv_ = _mm_add_epi16(_mm_add_epi16(_sv_, _vi_),_v_)
|
||||
#define ADDI32x4(_v_, _sv_, _vi_) _sv_ = _mm_add_epi32(_mm_add_epi32(_sv_, _vi_),_v_)
|
||||
|
||||
//---------------- Convert _mm_cvtsi128_siXX -------------------------------------------
|
||||
static ALWAYS_INLINE uint8_t _mm_cvtsi128_si8 (__m128i v) { return (uint8_t )_mm_cvtsi128_si32(v); }
|
||||
static ALWAYS_INLINE uint16_t _mm_cvtsi128_si16(__m128i v) { return (uint16_t)_mm_cvtsi128_si32(v); }
|
||||
//---------------- Convert mm_cvtsi128_siXX -------------------------------------------
|
||||
static ALWAYS_INLINE uint8_t mm_cvtsi128_si8 (__m128i v) { return (uint8_t )_mm_cvtsi128_si32(v); }
|
||||
static ALWAYS_INLINE uint16_t mm_cvtsi128_si16(__m128i v) { return (uint16_t)_mm_cvtsi128_si32(v); }
|
||||
#endif
|
||||
|
||||
//--------- memset -----------------------------------------
|
||||
|
||||
4
fp.c
4
fp.c
@ -155,7 +155,7 @@ size_t TEMPLATE2(fpxenc,USIZE)(uint_t *in, size_t n, unsigned char *out, uint_t
|
||||
sv = TEMPLATE2(mm_xore_epi, USIZE)(v0,sv); bv = _mm_or_si128(bv, sv); _mm_storeu_si128((__m128i *) p, sv); sv = v0;
|
||||
sv = TEMPLATE2(mm_xore_epi, USIZE)(v1,sv); bv = _mm_or_si128(bv, sv); _mm_storeu_si128((__m128i *)(p+16/(USIZE/8)), sv); sv = v1;
|
||||
}
|
||||
start = (uint_t)TEMPLATE2(_mm_cvtsi128_si,USIZE)(_mm_srli_si128(sv,16-USIZE/8));
|
||||
start = (uint_t)TEMPLATE2(mm_cvtsi128_si,USIZE)(_mm_srli_si128(sv,16-USIZE/8));
|
||||
b = TEMPLATE2(mm_hor_epi, USIZE)(bv);
|
||||
#else
|
||||
for(p = _p; p != &_p[VSIZE]; p+=4,ip+=4) { FE(0,USIZE); FE(1,USIZE); FE(2,USIZE); FE(3,USIZE); }
|
||||
@ -240,7 +240,7 @@ size_t TEMPLATE2(fpxdec,USIZE)(unsigned char *in, size_t n, uint_t *out, uint_t
|
||||
_mm_storeu_si128((__m128i *) op, v0);
|
||||
_mm_storeu_si128((__m128i *)(op+16/(USIZE/8)), sv);
|
||||
}
|
||||
start = (uint_t)TEMPLATE2(_mm_cvtsi128_si,USIZE)(_mm_srli_si128(sv,16-USIZE/8));
|
||||
start = (uint_t)TEMPLATE2(mm_cvtsi128_si,USIZE)(_mm_srli_si128(sv,16-USIZE/8));
|
||||
#else
|
||||
for(p = _p; p != &_p[VSIZE]; p+=4,op+=4) { FD(0,USIZE); FD(1,USIZE); FD(2,USIZE); FD(3,USIZE); }
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user