From: amodra Date: Thu, 29 Nov 2018 04:56:33 +0000 (+0000) Subject: [RS6000] Bogus easy_fp_constant call X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fa31be6baeb8be6965c5075ab14f1c1b83be222b;p=thirdparty%2Fgcc.git [RS6000] Bogus easy_fp_constant call 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266606 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 56dd30f9b3eb..b1ea39997520 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2018-11-29 Alan Modra + + * config/rs6000/predicates.md (easy_vector_constant): Don't call + easy_fp_constant. + 2018-11-29 Alan Modra * config.in (HAVE_AS_PLTSEQ): Add. diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md index e98b00dec5db..afe1b286833b 100644 --- a/gcc/config/rs6000/predicates.md +++ b/gcc/config/rs6000/predicates.md @@ -644,12 +644,6 @@ (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;