http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56313
--- Comment #1 from Joshua Conner <josh.m.conner at gmail dot com> 2013-02-14 01:39:55 UTC --- In case it helps, the pattern for aarch64_vmls<mode> is written as: (set (op0) (minus (op1) (mult (op2) (op3)))) Restructuring this to: (set (op0) (fma (neg (op1)) (op2) (op3))) Allows the combiner to take advantage of the pattern.