https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118460
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Last reconfirmed| |2025-01-14 Known to work|4.1.0 | Status|UNCONFIRMED |NEW --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. There is a "movhfcc" For TARGET_VFP_FP16INST. And a: (define_insn "*cmovhf" [(set (match_operand:HF 0 "s_register_operand" "=t") (if_then_else:HF (match_operator 1 "arm_vsel_comparison_operator" [(match_operand 2 "cc_register" "") (const_int 0)]) (match_operand:HF 3 "s_register_operand" "t") (match_operand:HF 4 "s_register_operand" "t")))] Someone else more familiar with the backend should be able to understand what is going wrong. r14-2699-g9f8f37f5490 exposed the ICE because now we get a COND_EXPR and expand uses emit_conditional_move .