On Thu, Dec 12, 2019 at 04:59:40PM +0100, Richard Biener wrote:
> >If it starts being ambiguous somewhere, could we use some target macro
> >or
> >target hook to decide? 
> 
> Ambiguous IL is bad :/  IL semantics dependent on a target hook, too. Just 
> look at SHIFT_COUNT_TRUNCATED... 

The comparisons are like that since forever.
What is the result of a scalar comparison depends on the STORE_FLAG_VALUE macro,
true can be -1 or 1.
What is the result of vector comparison with vector result is unspecified,
unless VECTOR_STORE_FLAG_VALUE is defined (only s390 defines it).
What is the result of vector comparison with CC*mode result is unspecified,
could very well be either that all elements compare that way, or at least
one of them; who knows?  Bet the only case where
simplify_const_relational_operation handles vector comparisons doesn't care
about this distinction though.
And similarly, what exactly means vector comparison with int mode result is
unspecified, right now only i386 backend uses it for the bitmasks.

Anyway, I guess I can live with punting, I'm afraid I don't have spare 2
months to rewrite all of AVX512* masking just to fix this wrong-code, and it
wouldn't be appropriate in stage4 anyway.

        Jakub

Reply via email to