OpenMS
Loading...
Searching...
No Matches
SIMDe.h
Go to the documentation of this file.
1// Copyright (c) 2002-present, OpenMS Inc. -- EKU Tuebingen, ETH Zurich, and FU Berlin
2// SPDX-License-Identifier: BSD-3-Clause
3//
4// --------------------------------------------------------------------------
5// $Maintainer: Chris Bielow $
6// $Authors: Chris Bielow $
7// --------------------------------------------------------------------------
8
9#pragma once
10
11//
12// + Use this header whenever you want to make use of SIMDe, since it ensures
13// + better cross-platform experience (defining missing operators on simde__m128i etc)
14// + you are only using the SIMDe features backed by the build system (i.e. compile flags, e.g. '-mssse3')
15//
16// + Include it only in .cpp files, never in a header, since we do not want to expose the
17// SIMDe internals to the outside world
18//
19
20// if you want to upgrade to anything more advanced (e.g. SSE4, or AVX),
21// add the respective compile flags to <git>/cmake/compiler_flags.cmake
22#include <simde/x86/ssse3.h>
23
24// these operators are defined for GCC/clang, but not in MSVC (TODO: maybe use SFINAE, but that is overkill for the moment)
25#ifdef _MSC_VER
26inline simde__m128i operator|(const simde__m128i& left, const simde__m128i& right)
27{
28 return simde_mm_or_si128(left, right);
29}
30inline simde__m128i& operator|=(simde__m128i& left, const simde__m128i& right)
31{
32 left = simde_mm_or_si128(left, right);
33 return left;
34}
35inline simde__m128i operator&(const simde__m128i left, const simde__m128i& right)
36{
37 return simde_mm_and_si128(left, right);
38}
39#endif
40
41namespace OpenMS
42{
43}
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19