I want to implement bitwise extract vector instruction in ASIMD assembly instruction. Let me put it this way that in ARMv7 NEON instructions, suppose I have some values inside q15 and q11, and I have:
"vext.8 d30, d30, d22, #4 \n\t"
"vext.8 d31, d31, d23, #4 \n\t"
As you can see here, I'm extracting 4-byte elements from the bottom end of d22 and 4-byte elements from the top end of d30. Then I combine them into one 64-bit register d30 (first instruction above). The same operation is done on the second half of the q vectors (d31 and d23). Now, I want to implement the exact same logic in ARMv8 ASIMD instructions. The replacement instruction for vext in ASIMD is ext and it's defined as:
EXT Vd.(T), Vn.(T), Vm.(T), #index
Bitwise extract (vector). Where (T) is either 8B or 16B. The index is an immediate value in the range 0 to nelem((T))-1.
My question is, How can I use this instruction to construct the same logic in my two SIMD vector registers v15 and v11 for example.