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.