On Fri, Jul 13, 2018 at 5:40 PM Uros Bizjak <ubiz...@gmail.com> wrote:
>
> As demonstrated in the PR, middle-end changes the trappines of the
> compare by expanding non-trapping compare to a combination of
> setcc/cmove branchless code, e.g. UNLT is split to UNORDERED setcc and
> LT cmove.
>
> The above conversion is invalid w.r.t traps, since UNLT doesn't trap
> on NaNs, while LT does.
>
> The solution is to avoid the above expansion for compares that would
> change their trappines and emit jumps around
>
> 2018-07-13  Uros Bizjak  <ubiz...@gmail.com>
>
>     PR target/86511
>     * expmed.c (emit_store_flag): Do not emit setcc followed by a
>     conditional move when trapping comparison was split to a
>     non-trapping one (and vice versa).
>
> Patch was bootstrapped and regression tested on x86_64-linux-gnu
> {,-m32}, regression tests on alphaev68-linux-gnu are still running.
>
> OK for mainline and branch?

OK.

Thanks,
Richard.

> Uros.

Reply via email to