I'm trying to access ARM/Thumb FEAT_FHM vfmal instructions with the GNU tool chains, without success. With every combination of flags I try, I'm getting output like this from the compiler:
asmtest.S:50: Error: selected processor does not support `vfmal.f16 d0,s1,s2' in ARM modeasmtest.S:51: Error: selected processor does not support `vfmal.f16 q3,d4,d5' in ARM modeasmtest.S:57: Error: selected processor does not support `vfmal.f16 d6,s7,s8[1]' in ARM modeasmtest.S:58: Error: selected processor does not support `vfmal.f16 q9,d10,d11[0]' in ARM modeasmtest.S:64: Error: selected processor does not support `vfmsl.f16 d0,s1,s2' in ARM modeasmtest.S:65: Error: selected processor does not support `vfmsl.f16 q3,d4,d5' in ARM modeasmtest.S:71: Error: selected processor does not support `vfmsl.f16 d6,s7,s8[1]' in ARM modeasmtest.S:72: Error: selected processor does not support `vfmsl.f16 q9,d10,d11[0]' in ARM mode
What options do I need to set for these instructions to be enabled? And if I encounter a similar problem in future with other instructions, what is the process to use to find the exact flag combinations that allow instructions to be accessed?
Ideally, I would like to be able to disable this check altogether and just have the compiler do what I ask without question. Is this possible?
Thanks.
I am using this compile line:
gcc-arm-10.3-2021.07-x86_64-arm-none-eabi/bin/arm-none-eabi-gcc -c -march=armv8.4-a+fp16 -mfpu=neon-fp-armv8 asmtest.S -o asmtest.S.o
So I am I think using what you specified as option 3 without success. What am I doing wrong?
I want to use the resulting executable on the Foundation Platform which I believe implements these instructions.
Ok, I need to use:
-Wa,-march=armv8.4-a+fp16
To get this down to the assember I think.