https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118696
--- Comment #8 from Stefan Schulze Frielinghaus <stefansf at gcc dot gnu.org> --- (In reply to Stefan Schulze Frielinghaus from comment #6) > Patch LGTM and I started a bootstrap+regtest which will finish approximately > in 4 hours. Sorry for the hassle and thanks for fixing this so quickly! Bootstrap and regtest finished successfully. (In reply to Jakub Jelinek from comment #7) > BTW, I was surprised that only MIN_EXPR/MAX_EXPR (and likely ABS_EXPR) is > optimized, while > __attribute__((noipa)) __int128 > bar (__int128 x, __int128 y, __int128 z, __int128 w) > { > return x < y ? z : w; > } > is not. That could be done with the same comparison code and just using > different vectors for the vector select. I agree that this somewhat similar, however, when I was experimenting with this, during expand, I always ended up with DI mode and never made it back to TI mode because cc-compares where missing. Do you have a particular pattern in mind?