On Fri, May 29, 2020 at 05:57:13PM +0100, Richard Sandiford wrote:
> Segher Boessenkool <seg...@kernel.crashing.org> writes:
> > On Fri, May 29, 2020 at 02:17:00PM +0200, Richard Biener wrote:
> >> Now it looks like that those verification also simply checks optab
> >> availability only but then this is just a preexisting issue (and we can
> >> possibly build a testcase that FAILs RTL expansion for power...).
> >> 
> >> So given that this means the latent bug in the powerpc backend
> >> should be fixed and we should use a direct internal function instead?
> >
> > I don't see what you consider a bug in the backend here?  The expansion
> > FAILs, and it is explicitly allowed to do that.
> 
> Well, the docs say:
> 
>   …  For **certain** named patterns, it may invoke @code{FAIL} to tell the
>   compiler to use an alternate way of performing that task.  …
> 
> (my emphasis).  Later on they say:
> 
>   @findex FAIL
>   @item FAIL
>   …
> 
>   Failure is currently supported only for binary (addition, multiplication,
>   shifting, etc.) and bit-field (@code{extv}, @code{extzv}, and @code{insv})
>   operations.
> 
> which explicitly says that vcond* isn't allowed to fail.
> 
> OK, so that list looks out of date.  But still. :-)
> 
> We now explicitly say that some patterns aren't allowed to FAIL,
> which I guess gives the (implicit) impression that all the others can.
> But that wasn't the intention.  The lines were just added for emphasis.
> (AFAIK 7f9844caf1ebd513 was the first patch to do this.)

Most patterns *do* FAIL on some target.  We cannot rewind time.


Segher

Reply via email to