12#ifndef ARCANE_UTILS_SIMDEMULATED_H
13#define ARCANE_UTILS_SIMDEMULATED_H
39 static const int BLOCK_SIZE = 2;
51 explicit EMULSimdX2Int32(
Int32 a)
65 EMULSimdX2Int32(
const Int32* base,
const Int32* idx)
69 explicit EMULSimdX2Int32(
const Int32* base)
77 void set(ARCANE_RESTRICT
Int32* base,
const ARCANE_RESTRICT
Int32* idx)
const
83 void set(ARCANE_RESTRICT
Int32* base)
const
89 static EMULSimdX2Int32 fromScalar(
Int32 a0,
Int32 a1)
91 return EMULSimdX2Int32(a1, a0);
96 void operator=(
Int32 _v);
110 static const int BLOCK_SIZE = 4;
124 explicit EMULSimdX4Int32(
Int32 a)
142 EMULSimdX4Int32(
const Int32* base,
const Int32* idx)
148 explicit EMULSimdX4Int32(
const Int32* base)
154 explicit EMULSimdX4Int32(
const EMULSimdX4Int32* base)
164 void set(ARCANE_RESTRICT
Int32* base,
const ARCANE_RESTRICT
Int32* idx)
const
172 void set(ARCANE_RESTRICT
Int32* base)
const
182 return EMULSimdX4Int32(a3, a2, a1, a0);
187 void operator=(
Int32 _v);
205 static const int BLOCK_SIZE = 2;
215 explicit EMULSimdReal(
Real a)
229 EMULSimdReal(
const Real* base)
233 EMULSimdReal(
const Real* base,
const Int32* idx)
237 EMULSimdReal(
const Real* base,
const Int32IndexType* idx)
241 EMULSimdReal(
const Real* base,
const Int32IndexType& idx)
247 void set(ARCANE_RESTRICT
Real* base)
const
252 void set(ARCANE_RESTRICT
Real* base,
const Int32* idx)
const
257 void set(ARCANE_RESTRICT
Real* base,
const Int32IndexType* idx)
const
262 void set(ARCANE_RESTRICT
Real* base,
const Int32IndexType& idx)
const
267 static EMULSimdReal fromScalar(
Real a0,
Real a1)
269 return EMULSimdReal(a0, a1);
274 void operator=(
Real _v);
284 static const char* name() {
return "EMUL"; }
290 typedef EMULSimdReal::Int32IndexType SimdInt32IndexType;
296ARCANE_UTILS_EXPORT std::ostream&
303 return EMULSimdReal::fromScalar(-(za[0]), -(za[1]));
Real vectorization using emulation.
Integer vectorization using emulation.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.
double Real
Type representing a real number.
std::ostream & operator<<(std::ostream &ostr, eItemKind item_kind)
Output operator for a stream.
std::int32_t Int32
Signed integer type of 32 bits.