Skip to content

Commit 6d9669a

Browse files
committed
e2k-lcc: Avoid psllqh and psrlql warnings
1 parent 9ff51ed commit 6d9669a

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

Diff for: simde/simde-arch.h

+1
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@
189189
#if defined(__LCC__)
190190
#define SIMDE_BUG_LCC_TOO_STRICT_VECTOR_SHIFTS_AND_COMPARES
191191
#define SIMDE_BUG_LCC_XOP_MISSING
192+
#define SIMDE_BUG_LCC_WARNING_ON_SHIFTS
192193
#define SIMDE_BUG_LCC_FMA_WRONG_RESULT
193194
#define SIMDE_BUG_LCC_AVX_NO_LOAD_STORE_U2
194195

Diff for: simde/x86/sse2.h

+10-2
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)