Hi Ilya, On Thu, Sep 05, 2019 at 01:10:14PM +0200, Ilya Leoshkevich wrote: > z13 supports only non-signaling vector comparisons. This means we > cannot vectorize LT, LE, GT, GE and LTGT when compiling for z13. Notify > middle-end about this using more restrictive operator predicate in > vcond<V_HW:mode><V_HW2:mode>.
> +(define_predicate "vcond_comparison_operator" > + (match_operand 0 "comparison_operator") > +{ > + if (!HONOR_NANS (GET_MODE (XEXP (op, 0))) > + && !HONOR_NANS (GET_MODE (XEXP (op, 1)))) > + return true; > + switch (GET_CODE (op)) > + { > + case LE: > + case LT: > + case GE: > + case GT: > + case LTGT: > + /* Signaling vector comparisons are supported only on z14+. */ > + return TARGET_Z14; > + default: > + return true; > + } > +}) Should you handle -fsignaling-nans here as well? Segher