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 <i...@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