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

--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> ---
Comment on attachment 49901
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49901
gcc11-pr98567.patch

>+(define_insn "*bmi_blsi_<mode>_cmp"
>+  [(set (reg:CCZ FLAGS_REG)
>+      (compare:CCZ
>+        (and:SWI48
>+          (neg:SWI48 (match_operand:SWI48 1 "nonimmediate_operand" "rm"))
>+          (match_dup 1))
>+        (const_int 0)))
>+   (set (match_operand:SWI48 0 "register_operand" "=r")
>+      (and:SWI48 (neg:SWI48 (match_dup 1)) (match_dup 1)))]
>+   "TARGET_BMI"
>+   "blsi\t{%1, %0|%0, %1}"
>+  [(set_attr "type" "bitmanip")
>+   (set_attr "btver2_decode" "double")
>+   (set_attr "mode" "<MODE>")])

This insn also sets SF and thus can handle all CCNOmode comparisons. So,
ix86_match_ccmode (insn, CCNOmode) insn predicate should be used instead of CCZ
mode.

Reply via email to