https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104982
--- Comment #3 from Hongtao.liu <crazylht at gmail dot com> --- (In reply to Hongtao.liu from comment #2) > 334Failed to match this instruction: > 335(set (reg/v:SI 88 [ z ]) > 336 (if_then_else:SI (eq (zero_extract:SI (reg:SI 92) > 337 (const_int 1 [0x1]) > 338 (zero_extend:SI (subreg:QI (reg:SI 93) 0))) > 339 (const_int 0 [0])) > 340 (reg:SI 95) > 341 (reg:SI 94))) And it's equal to > 335(set (reg/v:SI 88 [ z ]) > 336 (if_then_else:SI (ne (zero_extract:SI (reg:SI 92) > 337 (const_int 1 [0x1]) > 338 (zero_extend:SI (subreg:QI (reg:SI 93) 0))) > 339 (const_int 0 [0])) > 340 (reg:SI 94) > 341 (reg:SI 95))) by swapping 'then' and 'else' rtx. Guess generic part won't give a second try for such reversed condition?