https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54408
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- __builtin_tg_sqrt () maybe. The difficulty is in expected behavior for "standard" -O[0] when you supply vector arguments. I think the most "convenient" thing to do is to say that __builtin_tg_sqrt () when not invoked on scalar types can (but also might not) affect errno but in unpredictable ways. OTOH for sqrt the only documented errno is EDOM thus the result would be that errno is EDOM if at least one component caused a domain error. That would support lowering non-scalar variants to component-wise operation and also gives eventual support from math libraries the necessary freedom.