Message ID | 20181125121111.GK21617@bubble.grove.modra.org |
---|---|
State | New |
Headers | show |
Series | [RS6000] Bogus easy_fp_constant call | expand |
On Sun, Nov 25, 2018 at 10:41:11PM +1030, Alan Modra wrote: > 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 for KFmode and TFmode. > > Bootstrapped and regression tested powerpc64le-linux. Okay for trunk. Thanks! Segher > * config/rs6000/predicates.md (easy_vector_constant): Don't call > easy_fp_constant.
diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md index e98b00dec5d..afe1b286833 100644 --- a/gcc/config/rs6000/predicates.md +++ b/gcc/config/rs6000/predicates.md @@ -644,12 +644,6 @@ (define_predicate "xxspltib_constant_nosplit" (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;