https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100028
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org Status|NEW |ASSIGNED --- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I guess it is basically a dup of PR87763, except that it needs yet another pattern. Combiner tries to match here: (ior:SI (and:SI (reg:SI 102) (const_int -8 [0xfffffffffffffff8])) (subreg:SI (zero_extract:DI (subreg:DI (reg:SI 103) 0) (const_int 3 [0x3]) (const_int 11 [0xb])) 0))) which is similar to: (define_insn "*aarch64_bfi<GPI:mode>4_noand" [(set (match_operand:GPI 0 "register_operand" "=r") (ior:GPI (and:GPI (match_operand:GPI 1 "register_operand" "0") (match_operand:GPI 2 "const_int_operand" "n")) (ashift:GPI (match_operand:GPI 3 "register_operand" "r") (match_operand:GPI 4 "aarch64_simd_shift_imm_<mode>" n"))))] "aarch64_masks_and_shift_for_bfi_p (<MODE>mode, UINTVAL (operands[2]), UINTVAL (operands[4]), HOST_WIDE_INT_M1U << UINTVAL (operands[4]) )"