如何在ARM处理器的GCC中打开Fused Multiply Add

时间:2017-04-02 20:43:07

标签: gcc arm

在我的C程序中,我希望处理器使用FMADD指令而不是MUL和ADD来计算* b + c。如何指定编译器执行此操作。另外我想在编译后在汇编代码中看到FMADD指令。

gcc版本4.9.2 ARM v7处理器

1 个答案:

答案 0 :(得分:0)

您需要拥有以下FPU之一

  • vfpv4
  • vfpv4-D16
  • fpv4-SP-D16
  • fpv5-SP-D16
  • fpv5-D16
  • 氖vfpv4
  • FP-armv8
  • 氖-FP-armv8
  • 加密氖-FP-armv8

您必须使用 hard-float ABI选项。

An example with integers
An example with floats

您不需要指定任何特殊功能调用;如果发现它们是有益的,编译器将使用该指令。

负责生成的 arm.c 中的代码是,

case FMA:
  if (TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA)

TARGET_FMA是版本' 4'或更好的FPU。