В последнее время у меня возникают некоторые проблемы при попытке оптимизировать операцию извлечения error ошибка: операнд должен быть регистром в диапазоне [d0, d15] "vmla.s32 q8, q12,% f18 [0] \ n"
k0_0123 , k0_4567 .. все векторы int32x4_t, я просто не знаю, как исправить эту ошибку
"0: \n"
"pld [%5, #128] \n"
"vld1.s32 {d14-d15}, [%5] \n"
"pld [%6, #128] \n"
"vld1.s32 {d16-d17}, [%6] \n"
"pld [%7, #128] \n"
"vld1.s32 {d18-d19}, [%7] \n"
"pld [%8, #128] \n"
"vld1.s32 {d20-d21}, [%8] \n"
"pld [%1, #64] \n"
"vld1.u8 {d8}, [%1] \n"
"vmovl.u8 q4, d8 \n"
"vext.16 q5, q4, q4, #1 \n"
"vext.16 q6, q4, q4, #2 \n"
"vmovl.s32 q4, d8 \n"
"vmovl.s32 q11, d10 \n"
"vmovl.s32 q12, d12 \n"
"vmla.s32 q7, q4, %e18[0] \n"
"vmla.s32 q7, q11, %e18[1] \n"
"vmla.s32 q7, q12, %f18[0] \n"
"vmla.s32 q9, q4, %e21[0] \n"
"vmla.s32 q9, q11, %e21[1] \n"
"vst1.s32 {d14-d15}, [%5]! \n"
"vst1.s32 {d16-d17}, [%6]! \n"
"vst1.s32 {d18-d19}, [%7]! \n"
"vst1.s32 {d20-d21}, [%8]! \n"
"add %1, #4 \n"
"add %2, #4 \n"
"add %3, #4 \n"
"add %4, #4 \n"
"subs %0, #1 \n"
"bne 0b \n"
:"=r"(iOutImg_N), // %0
"=r"(r0), // %1
"=r"(r1), // %2
"=r"(r2), // %3
"=r"(r3), // %4
"=r"(piOutPtr0), // %5
"=r"(piOutPtr0n), // %6
"=r"(piOutPtr1), // %7
"=r"(piOutPtr1n) // %8
:"0"(iOutImg_N),
"1"(r0),
"2"(r1),
"3"(r2),
"4"(r3),
"5"(piOutPtr0),
"6"(piOutPtr0n),
"7"(piOutPtr1),
"8"(piOutPtr1n),
"w"(k0_0123), // %18
"w"(k0_4567), // %19
"w"(k0_8xxx), // %20
"w"(k1_0123), // %21
"w"(k1_4567), // %22
"w"(k1_8xxx) // %23
:"cc", "memory", "q4", "q5", "q6", "q7", "q8" ,"q9", "q10", "q11", "q12"