arm ネオン コードを使用して SIMD アーキテクチャに取り組んでいます。ここでの問題は、関数の 1 つのパスで、で利用可能なすべてのレジスタを使用していることであり、 neon であるため、コンパイル中に次のエラーが発生します。
nw2.c: In function 'bit_24':
nw2.c:123: error: unable to find a register to spill in class 'GENERAL_REGS'
nw2.c:123: error: this is the insn:
(insn 33 32 34 5 c:\cs\codesourcery\sourcery_g++_lite\bin\../lib/gcc/arm-none-ea
bi/4.3.3/include/arm_neon.h:9246 (parallel [
(set (reg:CI 178 [ D.19511 ])
(unspec:CI [
(mem:CI (reg/f:SI 177 [ __a.165 ]) [0 S48 A64])
(reg:CI 178 [ D.19511 ])
(unspec:V16QI [
(const_int 0 [0x0])
] 191)
] 106))
(set (reg/f:SI 177 [ __a.165 ])
(plus:SI (reg/f:SI 177 [ __a.165 ])
(const_int 24 [0x18])))
]) 1593 {neon_vld3qav16qi} (nil))
nw2.c:123: confused by earlier errors, bailing out
レジスタを最小限に抑えたいので、最初に 8x16 として宣言されたレジスタを 16x8 として使用できるかどうか疑問に思っていました。
私を助けてください