https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116358
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=116353 Status|UNCONFIRMED |NEW Target Milestone|--- |15.0 Ever confirmed|0 |1 Last reconfirmed| |2024-08-13 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I am 99% sure this was introduced by r15-2890-g72c9b5f438f22c . umindi3 is the libcall for unsigned min for DI mode. And it gets formed when ifcvt of the following BB: (note 92 91 93 15 [bb 15] NOTE_INSN_BASIC_BLOCK) (insn 93 92 96 15 (set (reg:DI 205 [ _119 ]) (sign_extend:DI (reg:SI 345))) "/opt/compiler-explorer/arm64/gcc-trunk-20240813/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/include/c++/15.0.0/bits/stl_algobase.h":238:7 105 {*extendsidi2_aarch64} (nil)) (note 96 93 97 15 NOTE_INSN_DELETED) (note 97 96 98 15 NOTE_INSN_DELETED) (note 98 97 99 15 NOTE_INSN_DELETED) (insn 99 98 100 15 (parallel [ (set (reg:DI 146 [ _123 ]) (plus:DI (umin:DI (reg:DI 205 [ _119 ]) (const_int 16 [0x10])) (const_int -16 [0xfffffffffffffff0]))) (clobber (reg:CC 66 cc)) ]) "/app/example.cpp":15:72 discrim 4 500 {*aarch64_minmax_plus} (expr_list:REG_UNUSED (reg:CC 66 cc) (expr_list:REG_DEAD (reg:DI 205 [ _119 ]) (nil)))) ;; succ: 16 [always] count:52559662 (estimated locally, freq 45.9480) (FALLTHRU) ;; lr out 29 [x29] 31 [sp] 64 [sfp] 65 [ap] 106 114 117 120 125 130 132 133 146 189 190 191 192 193 285 288 289 324 327 328 329 330 332 336 338 ;; live out 29 [x29] 31 [sp] 64 [sfp] 65 [ap] 106 114 117 120 125 130 132 133 146 189 190 191 192 193 285 288 289 324 327 328 329 330 332 336 338