#include "arm_neon.h"
int main()
{
uint64_t op1_64[2]={0x9999991234567890,0xFFFFFFFFFFFFFFFF};
uint64_t op2_64[2]={0xFFFFFFFFFFFFFFFF,0xFEEEEEEEEEEEEEEE};
uint64x2_t op3[3];
uint64x2_t* kkk;
op1_64[0]=0x9999991234567890;
op2_64[0]=0xFFFFFFFFFFFFFFFF;
uint32_t ret,ret2;
//op3[0]=vld1q_u64(op1_64);
//op3[1]=vld1q_u64(op2_64);
asm(
//"add r0, sp, #0x0 \n\t"
"vld1.64 {D0,D1}, [%0] \n\t"
"add r0, sp, #0x10 \n\t"
"vld1.64 {D2,D3}, [r0] \n\t"
// "vtrn.32 d0,d1 \n\t"
"vext.32 q2,q1,q0, #2\n\t"
//"vsli.64 q2, q1, #2 \n\t"
//"veor q2,q1,q0 \n\t"
// "mov r1, #10 \n\t"
// "mov r2, #20 \n\t"
// "vmov d4, r1,r2 \n\t"
// "add r0,sp,#0x0 \n\t"
"vst1.64 {d4,d5},[%0] \n\t"
:
: "r"(&op1_64[0]) ,[value] "r" (ret2)
//"add r0, sp, #0x20 \n\t"
//"vstm r0, {D2,D3} \n\t"
);
op3[2]=vaddq_u64(op3[0],op3[1]);
vst1q_u64(op1_64,op3[2]);
return 0;
}
댓글 없음:
댓글 쓰기