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

--- Comment #2 from Sinan <sinan.lin at linux dot alibaba.com> ---
commit 23d9f62c50d935462ecda5516746037a474c25cd looks like a solution for this.


like adding a new pattern for `not`
```
(define_insn "*one_cmpl_subreg"
  [(set (match_operand:DI         0 "register_operand" "=r")
        (not:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "
r"))))]
  "TARGET_64BIT && !partial_subreg_p (operands[1])"
  "not\t%0,%1"
  [(set_attr "type" "logical")
   (set_attr "mode" "SI")])
```

but somehow it does not work for xor/or/and ...

Reply via email to