[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