[PATCH v3 4/9] S/390: Do not use signaling vector comparisons on z13

Segher Boessenkool segher@kernel.crashing.org
Fri Sep 6 10:34:00 GMT 2019


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



More information about the Gcc-patches mailing list