@@ -1180,7 +1180,11 @@ simde_mm_bslli_si128 (simde__m128i a, const int imm8)
11801180 return simde__m128i_from_private (r_ );
11811181}
11821182#if defined(SIMDE_X86_SSE2_NATIVE ) && !defined(__PGI )
1183- #define simde_mm_bslli_si128 (a , imm8 ) _mm_slli_si128(a, imm8)
1183+ #if defined(SIMDE_BUG_LCC_WARNING_ON_SHIFTS )
1184+ #define simde_mm_bslli_si128 (a , imm8 ) ((imm8 & ~15) ? _mm_setzero_si128() : _mm_slli_si128(a, imm8 & 15))
1185+ #else
1186+ #define simde_mm_bslli_si128 (a , imm8 ) _mm_slli_si128(a, imm8)
1187+ #endif
11841188#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE ) && !defined(__clang__ )
11851189 #define simde_mm_bslli_si128 (a , imm8 ) \
11861190 simde__m128i_from_neon_i8(((imm8) <= 0) ? simde__m128i_to_neon_i8(a) : (((imm8) > 15) ? (vdupq_n_s8(0)) : (vextq_s8(vdupq_n_s8(0), simde__m128i_to_neon_i8(a), 16 - (imm8)))))
@@ -1252,7 +1256,11 @@ simde_mm_bsrli_si128 (simde__m128i a, const int imm8)
12521256 return simde__m128i_from_private (r_ );
12531257}
12541258#if defined(SIMDE_X86_SSE2_NATIVE ) && !defined(__PGI )
1255- #define simde_mm_bsrli_si128 (a , imm8 ) _mm_srli_si128(a, imm8)
1259+ #if defined(SIMDE_BUG_LCC_WARNING_ON_SHIFTS )
1260+ #define simde_mm_bsrli_si128 (a , imm8 ) ((imm8 & ~15) ? _mm_setzero_si128() : _mm_srli_si128(a, imm8 & 15))
1261+ #else
1262+ #define simde_mm_bsrli_si128 (a , imm8 ) _mm_srli_si128(a, imm8)
1263+ #endif
12561264#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE ) && !defined(__clang__ )
12571265 #define simde_mm_bsrli_si128 (a , imm8 ) \
12581266 simde__m128i_from_neon_i8(((imm8 < 0) || (imm8 > 15)) ? vdupq_n_s8(0) : (vextq_s8(simde__m128i_to_private(a).neon_i8, vdupq_n_s8(0), ((imm8 & 15) != 0) ? imm8 : (imm8 & 15))))
0 commit comments