fnmul was modeled as (-a)*b instead of -(a*b), which is wrong with -frounding-math, so the correct pattern is added too and the other one is only used if !flag_rounding_math. This affects a glibc math test, similar fix will be needed for ARM. Tested with aarch64-none-linux-gnu cross compiler. is this OK? gcc/Changelog: 2015-07-06 Szabolcs Nagy PR target/66731 * config/aarch64/aarch64.md (fnmul3): Handle -frounding-math. gcc/testsuite/Changelog: 2015-07-06 Szabolcs Nagy * gcc.target/aarch64/fnmul-1.c: New. * gcc.target/aarch64/fnmul-2.c: New. * gcc.target/aarch64/fnmul-3.c: New. * gcc.target/aarch64/fnmul-4.c: New.