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

            Bug ID: 108818
           Summary: [aarch64] use a extra mov instruction compare to llvm
           Product: gcc
           Version: 13.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/res6aTYqP
```
unsigned sel(unsigned X) {
  return X == 6 ? 6 : 8;
}
```

* gcc:
```
sel:
        cmp     w0, 6
        mov     w1, 8
        mov     w0, 6
        csel    w0, w1, w0, ne
        ret
```

* llvm:
```
sel:                                    // @sel
        mov     w8, #8
        cmp     w0, #6
        csel    w0, w0, w8, eq
        ret

```

Reply via email to