Loading [MathJax]/extensions/tex2jax.js
ROOT
6.06/09
Reference Guide
ROOT Home Page
Main Page
Related Pages
User's Classes
Namespaces
All Classes
Files
Release Notes
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
math
vc
include
Vc
sse
macros.h
Go to the documentation of this file.
1
/* This file is part of the Vc library.
2
3
Copyright (C) 2009-2010 Matthias Kretz <kretz@kde.org>
4
5
Vc is free software: you can redistribute it and/or modify
6
it under the terms of the GNU Lesser General Public License as
7
published by the Free Software Foundation, either version 3 of
8
the License, or (at your option) any later version.
9
10
Vc is distributed in the hope that it will be useful, but
11
WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
GNU Lesser General Public License for more details.
14
15
You should have received a copy of the GNU Lesser General Public
16
License along with Vc. If not, see <http://www.gnu.org/licenses/>.
17
18
*/
19
20
#include "../common/macros.h"
21
22
#ifndef VC_SSE_MACROS_H
23
#define VC_SSE_MACROS_H
24
#undef VC_SSE_UNDOMACROS_H
25
26
#ifndef _M128
27
# define _M128 __m128
28
#endif
29
30
#ifndef _M128I
31
# define _M128I __m128i
32
#endif
33
34
#ifndef _M128D
35
# define _M128D __m128d
36
#endif
37
38
#define STORE_VECTOR(type, name, vec) \
39
union { __m128i p; type v[16 / sizeof(type)]; } CAT(u, __LINE__); \
40
_mm_store_si128(&CAT(u, __LINE__).p, vec); \
41
const type *const name = &CAT(u, __LINE__).v[0]
42
43
#if defined(VC_IMPL_SSE4_1) && !defined(VC_DISABLE_PTEST)
44
#define VC_USE_PTEST
45
#endif
46
47
#endif // VC_SSE_MACROS_H