90 static const int BLOCK_SIZE = 4;
102 explicit EMULSimdX4Int32(
Int32 a)
103 : v0(a), v1(a), v2(a), v3(a){}
106 : v0(a0), v1(a1), v2(a2), v3(a3){}
108 EMULSimdX4Int32(
const Int32* base,
const Int32* idx)
109 : v0(base[idx[0]]), v1(base[idx[1]]), v2(base[idx[2]]), v3(base[idx[3]]){}
110 explicit EMULSimdX4Int32(
const Int32* base)
111 : v0(base[0]), v1(base[1]), v2(base[2]), v3(base[3]){}
112 explicit EMULSimdX4Int32(
const EMULSimdX4Int32* base)
113 : v0(base->v0), v1(base->v1), v2(base->v2), v3(base->v3){}
118 void set(ARCANE_RESTRICT
Int32* base,
const ARCANE_RESTRICT
Int32* idx)
const
126 void set(ARCANE_RESTRICT
Int32* base)
const
136 return EMULSimdX4Int32(a3,a2,a1,a0);
140 void operator=(
Int32 _v);
157 static const int BLOCK_SIZE = 2;
167 explicit EMULSimdReal(
Real a)
173 EMULSimdReal(
const Real* base)
174 : v0(base[0]), v1(base[1]) {}
175 EMULSimdReal(
const Real* base,
const Int32* idx)
176 : v0(base[idx[0]]), v1(base[idx[1]]) {}
177 EMULSimdReal(
const Real* base,
const Int32IndexType* idx)
178 : v0(base[idx->v0]), v1(base[idx->v1]) {}
179 EMULSimdReal(
const Real* base,
const Int32IndexType& idx)
180 : v0(base[idx.v0]), v1(base[idx.v1]) {}
183 void set(ARCANE_RESTRICT
Real* base)
const
188 void set(ARCANE_RESTRICT
Real* base,
const Int32* idx)
const
193 void set(ARCANE_RESTRICT
Real* base,
const Int32IndexType* idx)
const
198 void set(ARCANE_RESTRICT
Real* base,
const Int32IndexType& idx)
const
203 static EMULSimdReal fromScalar(
Real a0,
Real a1)
205 return EMULSimdReal(a0,a1);
208 void operator=(
Real _v);