easy_fp_constant accepts const_double, easy_vector_constant accepts
const_vector. Calling one from the other therefore will always return
false. I believe the zero_constant call in easy_vector_constant will
cover the 0.0 case of easy_fp_constant.
* config/rs6000/predicates.md (easy_vector_constant): Don't call
easy_fp_constant.
From-SVN: r266606
+2018-11-29 Alan Modra <amodra@gmail.com>
+
+ * config/rs6000/predicates.md (easy_vector_constant): Don't call
+ easy_fp_constant.
+
2018-11-29 Alan Modra <amodra@gmail.com>
* config.in (HAVE_AS_PLTSEQ): Add.
(define_predicate "easy_vector_constant"
(match_code "const_vector")
{
- /* Because IEEE 128-bit floating point is considered a vector type
- in order to pass it in VSX registers, it might use this function
- instead of easy_fp_constant. */
- if (FLOAT128_VECTOR_P (mode))
- return easy_fp_constant (op, mode);
-
if (VECTOR_MEM_ALTIVEC_OR_VSX_P (mode))
{
int value = 256;