16#include <freerdp/config.h>
18#include <freerdp/types.h>
19#include <freerdp/primitives.h>
20#include <winpr/sysinfo.h>
22#include "prim_andor.h"
24#include "prim_internal.h"
25#include "prim_templates.h"
27#if defined(SSE_AVX_INTRINSICS_ENABLED)
34SSE3_SCD_PRE_ROUTINE(sse3_andC_32u, UINT32, generic->andC_32u, _mm_and_si128,
35 *dptr++ = *sptr++ & val)
36SSE3_SCD_PRE_ROUTINE(sse3_orC_32u, UINT32, generic->orC_32u, _mm_or_si128, *dptr++ = *sptr++ | val)
41void primitives_init_andor_sse3_int(
primitives_t* WINPR_RESTRICT prims)
43#if defined(SSE_AVX_INTRINSICS_ENABLED)
44 generic = primitives_get_generic();
46 WLog_VRB(PRIM_TAG,
"SSE2/SSE3 optimizations");
47 prims->andC_32u = sse3_andC_32u;
48 prims->orC_32u = sse3_orC_32u;
51 WLog_VRB(PRIM_TAG,
"undefined WITH_SIMD or SSE3 intrinsics not available");