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

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Created attachment 62044
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=62044&action=edit
Semi reduced

This as reduced as I can get it.

The problem looks related to how long branches work. So we get a cbgt which is
valid for 63 but siwtching it around for le, 63 is no longer valid.

//(jump_insn:TI 196 195 197 (set (pc)
//        (if_then_else (gt (reg:SI 4 x4 [orig:158 iftmp.11_94 ] [158])
//                (const_int 63 [0x3f]))
//            (label_ref:DI 725)
//            (pc))) "/app/example.cpp":55:38 discrim 2 24 {aarch64_cbgtsi}
//     (int_list:REG_BR_PROB 1073741825 (nil))
// -> 725)
        cble    w4, 63, .L59    // 196  [c=28 l=8]  aarch64_cbgtsi
        b       .L49

Reply via email to