Re: [PATCH,rs6000] PR79395: Fix compile error with -mcpu=power9 and -mno-vsx and __builtin_vec_cmpne_p
Fixed as r245849. Thanks... -- Bill Bill Schmidt, Ph.D. GCC for Linux on Power Linux on Power Toolchain IBM Linux Technology Center wschm...@linux.vnet.ibm.com > On Mar 2, 2017, at 11:33 AM, Bill Schmidtwrote: > > Hi Andreas, > > We discovered the problem this morning in-house and are working on a patch. > > -- Bill > > Bill Schmidt, Ph.D. > GCC for Linux on Power > Linux on Power Toolchain > IBM Linux Technology Center > wschm...@linux.vnet.ibm.com > >> On Mar 2, 2017, at 11:25 AM, Andreas Schwab wrote: >> >> ../../gcc/config/rs6000/vector.md:721:14: error: 'operands[3]' is used >> uninitialized in this function [-Werror=uninitialized] >> >>UNSPEC_PREDICATE)) >>~^ >> ../../gcc/config/rs6000/vector.md: In function 'rtx_def* >> gen_vector_ne_v8hi_p(rtx, rtx, rtx)': >> ../../gcc/config/rs6000/vector.md:721:14: error: 'operands[3]' is used >> uninitialized in this function [-Werror=uninitialized] >>UNSPEC_PREDICATE)) >>~^ >> ../../gcc/config/rs6000/vector.md: In function 'rtx_def* >> gen_vector_ne_v16qi_p(rtx, rtx, rtx)': >> ../../gcc/config/rs6000/vector.md:721:14: error: 'operands[3]' is used >> uninitialized in this function [-Werror=uninitialized] >>UNSPEC_PREDICATE)) >>~^ >> ../../gcc/config/rs6000/vector.md: In function 'rtx_def* >> gen_vector_ae_v4si_p(rtx, rtx, rtx)': >> ../../gcc/config/rs6000/vector.md:743:14: error: 'operands[3]' is used >> uninitialized in this function [-Werror=uninitialized] >> [(match_operand:VI 1 "vlogical_operand") >> ^ >> ../../gcc/config/rs6000/vector.md: In function 'rtx_def* >> gen_vector_ae_v8hi_p(rtx, rtx, rtx)': >> ../../gcc/config/rs6000/vector.md:743:14: error: 'operands[3]' is used >> uninitialized in this function [-Werror=uninitialized] >> [(match_operand:VI 1 "vlogical_operand") >> ^ >> ../../gcc/config/rs6000/vector.md: In function 'rtx_def* >> gen_vector_ae_v16qi_p(rtx, rtx, rtx)': >> ../../gcc/config/rs6000/vector.md:743:14: error: 'operands[3]' is used >> uninitialized in this function [-Werror=uninitialized] >> [(match_operand:VI 1 "vlogical_operand") >> ^ >> ../../gcc/config/rs6000/vector.md: In function 'rtx_def* >> gen_vector_ne_v2di_p(rtx, rtx, rtx)': >> ../../gcc/config/rs6000/vector.md:784:14: error: 'operands[3]' is used >> uninitialized in this function [-Werror=uninitialized] >> [(parallel >> ^ >> ../../gcc/config/rs6000/vector.md: In function 'rtx_def* >> gen_vector_ae_v2di_p(rtx, rtx, rtx)': >> ../../gcc/config/rs6000/vector.md:810:14: error: 'operands[3]' is used >> uninitialized in this function [-Werror=uninitialized] >>[(set (reg:CC CR6_REGNO) >>~^ >> ../../gcc/config/rs6000/vector.md: In function 'rtx_def* >> gen_vector_ne_v4sf_p(rtx, rtx, rtx)': >> ../../gcc/config/rs6000/vector.md:832:14: error: 'operands[3]' is used >> uninitialized in this function [-Werror=uninitialized] >>[(set (reg:CC CR6_REGNO) >>~^ >> ../../gcc/config/rs6000/vector.md: In function 'rtx_def* >> gen_vector_ne_v2df_p(rtx, rtx, rtx)': >> ../../gcc/config/rs6000/vector.md:832:14: error: 'operands[3]' is used >> uninitialized in this function [-Werror=uninitialized] >>[(set (reg:CC CR6_REGNO) >>~^ >> ../../gcc/config/rs6000/vector.md: In function 'rtx_def* >> gen_vector_ae_v4sf_p(rtx, rtx, rtx)': >> ../../gcc/config/rs6000/vector.md:857:14: error: 'operands[3]' is used >> uninitialized in this function [-Werror=uninitialized] >> (gt:VEC_A (match_dup 1) >>~^ >> ../../gcc/config/rs6000/vector.md: In function 'rtx_def* >> gen_vector_ae_v2df_p(rtx, rtx, rtx)': >> ../../gcc/config/rs6000/vector.md:857:14: error: 'operands[3]' is used >> uninitialized in this function [-Werror=uninitialized] >> (gt:VEC_A (match_dup 1) >>~^ >> ../../gcc/config/rs6000/vsx.md: In function 'rtx_def* >> gen_vsx_tsqrtdf2_fg(rtx, rtx)': >> ../../gcc/config/rs6000/vsx.md:1402:14: error: 'operands[2]' is used >> uninitialized in this function [-Werror=uninitialized] >> (set (match_operand:SI 0 "gpc_reg_operand" "") >>~^ >> ../../gcc/config/rs6000/vsx.md: In function 'rtx_def* >> gen_vsx_tsqrtv4sf2_fg(rtx, rtx)': >> ../../gcc/config/rs6000/vsx.md:1402:14: error: 'operands[2]' is used >> uninitialized in this function [-Werror=uninitialized] >> (set (match_operand:SI 0 "gpc_reg_operand" "") >>~^ >> ../../gcc/config/rs6000/vsx.md: In function 'rtx_def* >> gen_vsx_tsqrtv2df2_fg(rtx, rtx)': >> ../../gcc/config/rs6000/vsx.md:1402:14: error: 'operands[2]' is used >> uninitialized in this function [-Werror=uninitialized] >> (set (match_operand:SI 0 "gpc_reg_operand" "") >>~^ >>
Re: [PATCH,rs6000] PR79395: Fix compile error with -mcpu=power9 and -mno-vsx and __builtin_vec_cmpne_p
Hi Andreas, We discovered the problem this morning in-house and are working on a patch. -- Bill Bill Schmidt, Ph.D. GCC for Linux on Power Linux on Power Toolchain IBM Linux Technology Center wschm...@linux.vnet.ibm.com > On Mar 2, 2017, at 11:25 AM, Andreas Schwabwrote: > > ../../gcc/config/rs6000/vector.md:721:14: error: 'operands[3]' is used > uninitialized in this function [-Werror=uninitialized] > > UNSPEC_PREDICATE)) > ~^ > ../../gcc/config/rs6000/vector.md: In function 'rtx_def* > gen_vector_ne_v8hi_p(rtx, rtx, rtx)': > ../../gcc/config/rs6000/vector.md:721:14: error: 'operands[3]' is used > uninitialized in this function [-Werror=uninitialized] > UNSPEC_PREDICATE)) > ~^ > ../../gcc/config/rs6000/vector.md: In function 'rtx_def* > gen_vector_ne_v16qi_p(rtx, rtx, rtx)': > ../../gcc/config/rs6000/vector.md:721:14: error: 'operands[3]' is used > uninitialized in this function [-Werror=uninitialized] > UNSPEC_PREDICATE)) > ~^ > ../../gcc/config/rs6000/vector.md: In function 'rtx_def* > gen_vector_ae_v4si_p(rtx, rtx, rtx)': > ../../gcc/config/rs6000/vector.md:743:14: error: 'operands[3]' is used > uninitialized in this function [-Werror=uninitialized] > [(match_operand:VI 1 "vlogical_operand") > ^ > ../../gcc/config/rs6000/vector.md: In function 'rtx_def* > gen_vector_ae_v8hi_p(rtx, rtx, rtx)': > ../../gcc/config/rs6000/vector.md:743:14: error: 'operands[3]' is used > uninitialized in this function [-Werror=uninitialized] > [(match_operand:VI 1 "vlogical_operand") > ^ > ../../gcc/config/rs6000/vector.md: In function 'rtx_def* > gen_vector_ae_v16qi_p(rtx, rtx, rtx)': > ../../gcc/config/rs6000/vector.md:743:14: error: 'operands[3]' is used > uninitialized in this function [-Werror=uninitialized] > [(match_operand:VI 1 "vlogical_operand") > ^ > ../../gcc/config/rs6000/vector.md: In function 'rtx_def* > gen_vector_ne_v2di_p(rtx, rtx, rtx)': > ../../gcc/config/rs6000/vector.md:784:14: error: 'operands[3]' is used > uninitialized in this function [-Werror=uninitialized] > [(parallel > ^ > ../../gcc/config/rs6000/vector.md: In function 'rtx_def* > gen_vector_ae_v2di_p(rtx, rtx, rtx)': > ../../gcc/config/rs6000/vector.md:810:14: error: 'operands[3]' is used > uninitialized in this function [-Werror=uninitialized] > [(set (reg:CC CR6_REGNO) > ~^ > ../../gcc/config/rs6000/vector.md: In function 'rtx_def* > gen_vector_ne_v4sf_p(rtx, rtx, rtx)': > ../../gcc/config/rs6000/vector.md:832:14: error: 'operands[3]' is used > uninitialized in this function [-Werror=uninitialized] > [(set (reg:CC CR6_REGNO) > ~^ > ../../gcc/config/rs6000/vector.md: In function 'rtx_def* > gen_vector_ne_v2df_p(rtx, rtx, rtx)': > ../../gcc/config/rs6000/vector.md:832:14: error: 'operands[3]' is used > uninitialized in this function [-Werror=uninitialized] > [(set (reg:CC CR6_REGNO) > ~^ > ../../gcc/config/rs6000/vector.md: In function 'rtx_def* > gen_vector_ae_v4sf_p(rtx, rtx, rtx)': > ../../gcc/config/rs6000/vector.md:857:14: error: 'operands[3]' is used > uninitialized in this function [-Werror=uninitialized] >(gt:VEC_A (match_dup 1) > ~^ > ../../gcc/config/rs6000/vector.md: In function 'rtx_def* > gen_vector_ae_v2df_p(rtx, rtx, rtx)': > ../../gcc/config/rs6000/vector.md:857:14: error: 'operands[3]' is used > uninitialized in this function [-Werror=uninitialized] >(gt:VEC_A (match_dup 1) > ~^ > ../../gcc/config/rs6000/vsx.md: In function 'rtx_def* > gen_vsx_tsqrtdf2_fg(rtx, rtx)': > ../../gcc/config/rs6000/vsx.md:1402:14: error: 'operands[2]' is used > uninitialized in this function [-Werror=uninitialized] >(set (match_operand:SI 0 "gpc_reg_operand" "") > ~^ > ../../gcc/config/rs6000/vsx.md: In function 'rtx_def* > gen_vsx_tsqrtv4sf2_fg(rtx, rtx)': > ../../gcc/config/rs6000/vsx.md:1402:14: error: 'operands[2]' is used > uninitialized in this function [-Werror=uninitialized] >(set (match_operand:SI 0 "gpc_reg_operand" "") > ~^ > ../../gcc/config/rs6000/vsx.md: In function 'rtx_def* > gen_vsx_tsqrtv2df2_fg(rtx, rtx)': > ../../gcc/config/rs6000/vsx.md:1402:14: error: 'operands[2]' is used > uninitialized in this function [-Werror=uninitialized] >(set (match_operand:SI 0 "gpc_reg_operand" "") > ~^ > ../../gcc/config/rs6000/vsx.md: In function 'rtx_def* > gen_vsx_tsqrtdf2_fe(rtx, rtx)': > ../../gcc/config/rs6000/vsx.md:1415:14: error: 'operands[2]' is used > uninitialized in this function [-Werror=uninitialized] > "xtsqrt %0,%x1" > ~^ > ../../gcc/config/rs6000/vsx.md: In function 'rtx_def* > gen_vsx_tsqrtv4sf2_fe(rtx, rtx)': >
Re: [PATCH,rs6000] PR79395: Fix compile error with -mcpu=power9 and -mno-vsx and __builtin_vec_cmpne_p
../../gcc/config/rs6000/vector.md:721:14: error: 'operands[3]' is used uninitialized in this function [-Werror=uninitialized] UNSPEC_PREDICATE)) ~^ ../../gcc/config/rs6000/vector.md: In function 'rtx_def* gen_vector_ne_v8hi_p(rtx, rtx, rtx)': ../../gcc/config/rs6000/vector.md:721:14: error: 'operands[3]' is used uninitialized in this function [-Werror=uninitialized] UNSPEC_PREDICATE)) ~^ ../../gcc/config/rs6000/vector.md: In function 'rtx_def* gen_vector_ne_v16qi_p(rtx, rtx, rtx)': ../../gcc/config/rs6000/vector.md:721:14: error: 'operands[3]' is used uninitialized in this function [-Werror=uninitialized] UNSPEC_PREDICATE)) ~^ ../../gcc/config/rs6000/vector.md: In function 'rtx_def* gen_vector_ae_v4si_p(rtx, rtx, rtx)': ../../gcc/config/rs6000/vector.md:743:14: error: 'operands[3]' is used uninitialized in this function [-Werror=uninitialized] [(match_operand:VI 1 "vlogical_operand") ^ ../../gcc/config/rs6000/vector.md: In function 'rtx_def* gen_vector_ae_v8hi_p(rtx, rtx, rtx)': ../../gcc/config/rs6000/vector.md:743:14: error: 'operands[3]' is used uninitialized in this function [-Werror=uninitialized] [(match_operand:VI 1 "vlogical_operand") ^ ../../gcc/config/rs6000/vector.md: In function 'rtx_def* gen_vector_ae_v16qi_p(rtx, rtx, rtx)': ../../gcc/config/rs6000/vector.md:743:14: error: 'operands[3]' is used uninitialized in this function [-Werror=uninitialized] [(match_operand:VI 1 "vlogical_operand") ^ ../../gcc/config/rs6000/vector.md: In function 'rtx_def* gen_vector_ne_v2di_p(rtx, rtx, rtx)': ../../gcc/config/rs6000/vector.md:784:14: error: 'operands[3]' is used uninitialized in this function [-Werror=uninitialized] [(parallel ^ ../../gcc/config/rs6000/vector.md: In function 'rtx_def* gen_vector_ae_v2di_p(rtx, rtx, rtx)': ../../gcc/config/rs6000/vector.md:810:14: error: 'operands[3]' is used uninitialized in this function [-Werror=uninitialized] [(set (reg:CC CR6_REGNO) ~^ ../../gcc/config/rs6000/vector.md: In function 'rtx_def* gen_vector_ne_v4sf_p(rtx, rtx, rtx)': ../../gcc/config/rs6000/vector.md:832:14: error: 'operands[3]' is used uninitialized in this function [-Werror=uninitialized] [(set (reg:CC CR6_REGNO) ~^ ../../gcc/config/rs6000/vector.md: In function 'rtx_def* gen_vector_ne_v2df_p(rtx, rtx, rtx)': ../../gcc/config/rs6000/vector.md:832:14: error: 'operands[3]' is used uninitialized in this function [-Werror=uninitialized] [(set (reg:CC CR6_REGNO) ~^ ../../gcc/config/rs6000/vector.md: In function 'rtx_def* gen_vector_ae_v4sf_p(rtx, rtx, rtx)': ../../gcc/config/rs6000/vector.md:857:14: error: 'operands[3]' is used uninitialized in this function [-Werror=uninitialized] (gt:VEC_A (match_dup 1) ~^ ../../gcc/config/rs6000/vector.md: In function 'rtx_def* gen_vector_ae_v2df_p(rtx, rtx, rtx)': ../../gcc/config/rs6000/vector.md:857:14: error: 'operands[3]' is used uninitialized in this function [-Werror=uninitialized] (gt:VEC_A (match_dup 1) ~^ ../../gcc/config/rs6000/vsx.md: In function 'rtx_def* gen_vsx_tsqrtdf2_fg(rtx, rtx)': ../../gcc/config/rs6000/vsx.md:1402:14: error: 'operands[2]' is used uninitialized in this function [-Werror=uninitialized] (set (match_operand:SI 0 "gpc_reg_operand" "") ~^ ../../gcc/config/rs6000/vsx.md: In function 'rtx_def* gen_vsx_tsqrtv4sf2_fg(rtx, rtx)': ../../gcc/config/rs6000/vsx.md:1402:14: error: 'operands[2]' is used uninitialized in this function [-Werror=uninitialized] (set (match_operand:SI 0 "gpc_reg_operand" "") ~^ ../../gcc/config/rs6000/vsx.md: In function 'rtx_def* gen_vsx_tsqrtv2df2_fg(rtx, rtx)': ../../gcc/config/rs6000/vsx.md:1402:14: error: 'operands[2]' is used uninitialized in this function [-Werror=uninitialized] (set (match_operand:SI 0 "gpc_reg_operand" "") ~^ ../../gcc/config/rs6000/vsx.md: In function 'rtx_def* gen_vsx_tsqrtdf2_fe(rtx, rtx)': ../../gcc/config/rs6000/vsx.md:1415:14: error: 'operands[2]' is used uninitialized in this function [-Werror=uninitialized] "xtsqrt %0,%x1" ~^ ../../gcc/config/rs6000/vsx.md: In function 'rtx_def* gen_vsx_tsqrtv4sf2_fe(rtx, rtx)': ../../gcc/config/rs6000/vsx.md:1415:14: error: 'operands[2]' is used uninitialized in this function [-Werror=uninitialized] "xtsqrt %0,%x1" ~^ ../../gcc/config/rs6000/vsx.md: In function 'rtx_def* gen_vsx_tsqrtv2df2_fe(rtx, rtx)': ../../gcc/config/rs6000/vsx.md:1415:14: error: 'operands[2]' is used uninitialized in this function [-Werror=uninitialized] "xtsqrt %0,%x1" ~^ Andreas. -- Andreas Schwab,
Re: [PATCH,rs6000] PR79395: Fix compile error with -mcpu=power9 and -mno-vsx and __builtin_vec_cmpne_p
Hi Kelvin, On Tue, Feb 28, 2017 at 03:46:20PM -0700, Kelvin Nilsen wrote: > PR 79395 reports a problem that arises when the preprocessor believes > that the target supports Power9 but the gcc compiler believes that > Power9 is not supported. > > This patch addresses this inconsistency by introducing a new > preprocessor macro named __POWER9_VECTOR__ which is automatically > defined if the current gcc configuration, as adjusted by gcc command > line options, supports Power9. Previously, certain macro definitions > that were supplied in altivec.h were conditioned upon the _ARCH_PWR9 > macro, which represents statically whether the compiler can support > Power9, but ignores any command-line options that might disable the > Power9 support in this run of the compiler. Also addressed in this > patch is elimination of the xvcmpnesp and xvcmpnedp instructions, which > are not currently supported. I don't like this much at all. We should not have command line options to disable random instructions. In a sane world we could just test for _ARCH_PWR9 and VSX instead of having this error-prone combinatorial explosion of macros. > This patch has been demonstrated to fix the problems identified in the > test case mentioned in the PR 79395 report. > > This patch has been bootstrapped and tested on > powerpc64le-unknown-linux with no regressions. > > Is this ok for trunk? Okay. Some trivial comments: > PR target/79395 > * config/rs6000/altivec.h (vec_ctz and others): Change the > preprocessor macro that controls conditional compilation from > _ARCH_PWR9 to __POWER9_VECTOR. It is __POWER9_VECTOR__. > (vec_all_ne): Change macro definition to use a power9-specific > expansion under #ifdef __POWER9_VECTOR CONTROL (instead of > _ARCH_PWR9 control). Same; and you don't want to SHOUT control I think ;-) > * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add > support for predefined __POWER9_VECTOR__ macro to indicate that > Power9 instruction selection is enabled. > (altivec_overloaded_builtins): Remove extraneous > ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded Trailing space. > Power9 for impelmentations of vec_cmpne. Change the signature for s/impel/imple/ > @@ -521,9 +521,9 @@ __altivec_scalar_pred(vec_all_nez, > __altivec_scalar_pred(vec_any_eqz, >__builtin_vec_vcmpnez_p (__CR6_LT_REV, a1, a2)) > __altivec_scalar_pred(vec_all_ne, > - __builtin_vec_vcmpne_p (__CR6_LT, a1, a2)) > + __builtin_vec_allne_p (a1, a2)) > __altivec_scalar_pred(vec_any_eq, > - __builtin_vec_vcmpne_p (__CR6_LT_REV, a1, a2)) > + __builtin_vec_anyeq_p (a1, a2)) > #endif Please indent these the same as the surrounding code. Thanks, Segher
[PATCH,rs6000] PR79395: Fix compile error with -mcpu=power9 and -mno-vsx and __builtin_vec_cmpne_p
PR 79395 reports a problem that arises when the preprocessor believes that the target supports Power9 but the gcc compiler believes that Power9 is not supported. This patch addresses this inconsistency by introducing a new preprocessor macro named __POWER9_VECTOR__ which is automatically defined if the current gcc configuration, as adjusted by gcc command line options, supports Power9. Previously, certain macro definitions that were supplied in altivec.h were conditioned upon the _ARCH_PWR9 macro, which represents statically whether the compiler can support Power9, but ignores any command-line options that might disable the Power9 support in this run of the compiler. Also addressed in this patch is elimination of the xvcmpnesp and xvcmpnedp instructions, which are not currently supported. This patch has been demonstrated to fix the problems identified in the test case mentioned in the PR 79395 report. This patch has been bootstrapped and tested on powerpc64le-unknown-linux with no regressions. Is this ok for trunk? gcc/ChangeLog: 2017-02-28 Kelvin NilsenPR target/79395 * config/rs6000/altivec.h (vec_ctz and others): Change the preprocessor macro that controls conditional compilation from _ARCH_PWR9 to __POWER9_VECTOR. (vec_all_ne): Change parameterization of __altivec_scalar_pred macro expansion under preprocessor #ifdef __POWER9_VECTOR__ control (instead of _ARCH_PWR9 control) so that template definition uses power9-specific function. (vec_any_eq): Likewise. (vec_all_ne): Change macro definition to use a power9-specific expansion under #ifdef __POWER9_VECTOR CONTROL (instead of _ARCH_PWR9 control). (vec_any_eq) Likewise. * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2 expansion for CMPNEF to remove support for xvcmpnesp instruction. (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove support for xvcmpnedp instruction. (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2 macro expansion so that Power9 implementation of vec_all_ne does not use the AltiVec predicate framework. (VCMPNEH_P): Likewise. (VCMPNEW_P): Likewise. (VCMPNED_P): Likewise. (VCMPNEFP_P): Likewise. (VCMPNEDP_P): Likewise. (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change implementation of vec_any_eq to not use AltiVec predicate framework. (VCMPAEH_P): Likewise. (VCMPAEW_P): Likewise. (VCMPAED_P): Likewise. (VCMPAEFP_P): Likewise. (VCMPAEDP_P): Likewise. (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does not use the AltiVec predicate framework. (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation of vec_any_eq to not use AltiVec predicate framework. * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add support for predefined __POWER9_VECTOR__ macro to indicate that Power9 instruction selection is enabled. (altivec_overloaded_builtins): Remove extraneous ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded function argument types RS6000_BTI_bool_V16QI and RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded function argument types RS6000_BTI_bool_V4SI andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to P9V_BUILTIN_CMPNEF to force use of instructions not specific to Power9 for impelmentations of vec_cmpne. Change the signature for all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function (representing vec_all_ne) to remove the previously described first argument of type RS6000_BTI_INTSI, as this was an artifact of reliance on the AltiVec predicate framework, which is no longer used in the implementation of these functions. Add P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries since, unlike the AltiVec predicate framework implementation, we do not share function descriptors between vec_alle and vec_anyeq. (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the set of modes that receive special treatment even when TARGET_P9_VECTOR is true. The special treatment emits code that does not depend on Power9 instructions. * config/rs6000/vector.md (vector_ne__p): Change this define_expand to not rely on AltiVec predicate framework. (vector_ae_p): New define_expand to represent vec_any_eq function. (vector_ne_v2di_p): Change this define_expand to