Lines 277-294
ptranspose(PacketBlock<Packet2cf,2>& ker
Link Here
|
277 |
Packet4f tmp = vcombine_f32(vget_high_f32(kernel.packet[0].v), vget_high_f32(kernel.packet[1].v)); |
277 |
Packet4f tmp = vcombine_f32(vget_high_f32(kernel.packet[0].v), vget_high_f32(kernel.packet[1].v)); |
278 |
kernel.packet[0].v = vcombine_f32(vget_low_f32(kernel.packet[0].v), vget_low_f32(kernel.packet[1].v)); |
278 |
kernel.packet[0].v = vcombine_f32(vget_low_f32(kernel.packet[0].v), vget_low_f32(kernel.packet[1].v)); |
279 |
kernel.packet[1].v = tmp; |
279 |
kernel.packet[1].v = tmp; |
280 |
} |
280 |
} |
281 |
|
281 |
|
282 |
//---------- double ---------- |
282 |
//---------- double ---------- |
283 |
#if EIGEN_ARCH_ARM64 && !EIGEN_APPLE_DOUBLE_NEON_BUG |
283 |
#if EIGEN_ARCH_ARM64 && !EIGEN_APPLE_DOUBLE_NEON_BUG |
284 |
|
284 |
|
285 |
const uint64_t p2ul_conj_XOR_DATA[] = { 0x0, 0x8000000000000000 }; |
285 |
// See bug 1325, clang 3.5 fails to call vld1q_u64. |
286 |
static uint64x2_t p2ul_CONJ_XOR = vld1q_u64( p2ul_conj_XOR_DATA ); |
286 |
#if EIGEN_COMP_CLANG |
|
|
287 |
static uint64x2_t p2ul_CONJ_XOR = {0x0, 0x8000000000000000}; |
288 |
#else |
289 |
const uint64_t p2ul_conj_XOR_DATA[] = { 0x0, 0x8000000000000000 }; |
290 |
static uint64x2_t p2ul_CONJ_XOR = vld1q_u64( p2ul_conj_XOR_DATA ); |
291 |
#endif |
287 |
|
292 |
|
288 |
struct Packet1cd |
293 |
struct Packet1cd |
289 |
{ |
294 |
{ |
290 |
EIGEN_STRONG_INLINE Packet1cd() {} |
295 |
EIGEN_STRONG_INLINE Packet1cd() {} |
291 |
EIGEN_STRONG_INLINE explicit Packet1cd(const Packet2d& a) : v(a) {} |
296 |
EIGEN_STRONG_INLINE explicit Packet1cd(const Packet2d& a) : v(a) {} |
292 |
Packet2d v; |
297 |
Packet2d v; |
293 |
}; |
298 |
}; |
294 |
|
299 |
|