https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112306

            Bug ID: 112306
           Summary: [AArch64][neon] incorrect  combine the (a -1)* b into
                    fnmsub for fixed vector type
           Product: gcc
           Version: 13.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zhongyunde at huawei dot com
  Target Milestone: ---

* test: https://gcc.godbolt.org/z/sr6Mevf9G
```
float32x4_t test2_float_vec (float32x4_t a, float32x4_t b) {
    return -b + a * b;
}
```
* it seems not right for gcc to generate the a single **fnmsub s0, s0, s1,
s1**, because the variables of a and b are vector type, while the output use a
scalar float type registers ?

Reply via email to