c - How to convert unsigned char to signed integer using Neon SIMD -


how convert variable of data type uint8_t int32_t using neon? not find intrinsic doing this.

assuming want convert vector of 16 x 8 bit ints 4 vectors of 4 x 32 bit ints, can first unpacking 16 bits , again 32 bits:

// load 8 bit vector uint8x16_t v = vld1q_u8(p);   // load vector of 16 x 8 bits ints p  // unpack 16 bits int16x8_t vl =  vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(v)));   // 0..7 int16x8_t vh =  vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(v)));  // 8..15  // unpack 32 bits int32x4_t vll = vmovl_s16(vget_low_s16(vl));           // 0..3 int32x4_t vlh = vmovl_s16(vget_high_s16(vl));          // 4..7 int32x4_t vhl = vmovl_s16(vget_low_s16(vh));           // 8..11 int32x4_t vhh = vmovl_s16(vget_high_s16(vh));          // 12..15 

Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -