[Bug target/77918] S390: Floating point comparisons don't raise invalid for unordered operands.
iii at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Oct 7 15:01:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77918
--- Comment #7 from iii at gcc dot gnu.org ---
Author: iii
Date: Mon Oct 7 15:01:15 2019
New Revision: 276660
URL: https://gcc.gnu.org/viewcvs?rev=276660&root=gcc&view=rev
Log:
Introduce can_vcond_compare_p function
z13 supports only non-signaling vector comparisons. This means we
cannot vectorize LT, LE, GT, GE and LTGT when compiling for z13.
However, we cannot express this restriction today: the code only checks
whether vcond$a$b optab exists, but this does not say anything about the
operation.
Introduce a function that checks whether back-end supports vector
comparisons with individual rtx codes by matching vcond expander's third
argument with a fake comparison with the corresponding rtx code.
gcc/ChangeLog:
2019-10-07 Ilya Leoshkevich <iii@linux.ibm.com>
PR target/77918
* optabs-tree.c (vcond_icode_p): New function.
(vcond_eq_icode_p): Likewise.
(expand_vec_cond_expr_p): Use vcond_icode_p and
vcond_eq_icode_p.
* optabs.c (can_vcond_compare_p): New function.
* optabs.h (can_vcond_compare_p): Likewise.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/optabs-tree.c
trunk/gcc/optabs.c
trunk/gcc/optabs.h
More information about the Gcc-bugs
mailing list