pack four 32-bit boolean vectors into one 8-bit boolean vector
| 98 | |
| 99 | // pack four 32-bit boolean vectors into one 8-bit boolean vector |
| 100 | NPY_FINLINE npyv_b8 |
| 101 | npyv_pack_b8_b32(npyv_b32 a, npyv_b32 b, npyv_b32 c, npyv_b32 d) { |
| 102 | #if defined(__aarch64__) |
| 103 | npyv_b16 ab = vuzp1q_u16((uint16x8_t)a, (uint16x8_t)b); |
| 104 | npyv_b16 cd = vuzp1q_u16((uint16x8_t)c, (uint16x8_t)d); |
| 105 | #else |
| 106 | npyv_b16 ab = vcombine_u16(vmovn_u32(a), vmovn_u32(b)); |
| 107 | npyv_b16 cd = vcombine_u16(vmovn_u32(c), vmovn_u32(d)); |
| 108 | #endif |
| 109 | return npyv_pack_b8_b16(ab, cd); |
| 110 | } |
| 111 | |
| 112 | // pack eight 64-bit boolean vectors into one 8-bit boolean vector |
| 113 | NPY_FINLINE npyv_b8 |
no test coverage detected