aboutsummaryrefslogtreecommitdiff
path: root/src/xnnpack/intrinsics-polyfill.h
diff options
context:
space:
mode:
authorMarat Dukhan <maratek@google.com>2022-06-14 00:08:33 -0700
committerXNNPACK Team <xnnpack-github-robot@google.com>2022-06-14 00:09:36 -0700
commite8e963b3283caacac8ff504307049cae41282fa9 (patch)
tree00fc5b74101a5d1b575f24ef39327969cf633115 /src/xnnpack/intrinsics-polyfill.h
parent9305918cb401b0492237e5a26a97792c07ebcae1 (diff)
downloadXNNPACK-e8e963b3283caacac8ff504307049cae41282fa9.tar.gz
Polyfill _mm_storeu_si16 for old compilers
PiperOrigin-RevId: 454785235
Diffstat (limited to 'src/xnnpack/intrinsics-polyfill.h')
-rw-r--r--src/xnnpack/intrinsics-polyfill.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/xnnpack/intrinsics-polyfill.h b/src/xnnpack/intrinsics-polyfill.h
index c2747d4b0..c42464d8b 100644
--- a/src/xnnpack/intrinsics-polyfill.h
+++ b/src/xnnpack/intrinsics-polyfill.h
@@ -28,6 +28,11 @@ static XNN_INTRINSIC
void _mm_storeu_si32(const void* address, __m128i v) {
unaligned_store_u32(address, (uint32_t) _mm_cvtsi128_si32(v));
}
+
+static XNN_INTRINSIC
+void _mm_storeu_si16(const void* address, __m128i v) {
+ unaligned_store_u16(address, (uint16_t) _mm_extract_epi16(v, 0));
+}
#endif // GCC pre-11, Clang pre-8, Android NDK Clang pre-8.0.7, Apple Clang pre-11, and ICC pre-16
#endif // SSE2