On Thu, Oct 08, 2026 at 10:46:50AM +0530, jeevitha wrote:
> 
> 
> On 06/10/26 3:39 pm, jeevitha wrote:
> > Hi All,
> > 
> > The following patch has been bootstrapped and regtested on
> > powerpc64le-linux and powerpc64-linux.
> > 
> > The vcond_mask_<mode><mode> expander used the VEC_I mode iterator,
> > while the vec_cmp<mode><mode> and vec_cmpu<mode><mode> expanders
> > already used VEC_IC, which includes V1TI for Power10. As a result,
> > vcond_mask_v1tiv1ti was not generated for V1TI.
> > 
> > Without vcond_mask_v1tiv1ti, expand_vec_cond_expr_p returns false
> > for V1TI and veclower2 scalarises the VEC_COND_EXPR for vector
> > __int128 comparisons through GPRs, losing the xxlnor instructions
> > expected by fold-vec-cmp-int128.c and pr103316.c.
> > 
> > Fix this by changing the iterator for vcond_mask_<mode><mode> from
> > VEC_I to VEC_IC.
> > 
> > 2026-10-06  Jeevitha Palanisamy  <[email protected]>
> > 
> > gcc/
> >     PR target/125060
> >     * config/rs6000/vector.md (vcond_mask_<mode><mode>): Change the
> >     mode iterator from VEC_I to VEC_IC to support V1TI.
> > 
> > diff --git a/gcc/config/rs6000/vector.md b/gcc/config/rs6000/vector.md
> > index 22eee2f81f0..7a44a8a7e55 100644
> > --- a/gcc/config/rs6000/vector.md
> > +++ b/gcc/config/rs6000/vector.md
> > @@ -336,10 +336,10 @@
> >  
> >  ;; Same mode for condition true/false values and predicate operand.
> >  (define_expand "vcond_mask_<mode><mode>"
> > -  [(match_operand:VEC_I 0 "vint_operand")
> > -   (match_operand:VEC_I 1 "vint_operand")
> > -   (match_operand:VEC_I 2 "vint_operand")
> > -   (match_operand:VEC_I 3 "vint_operand")]
> > +  [(match_operand:VEC_IC 0 "vint_operand")
> > +   (match_operand:VEC_IC 1 "vint_operand")
> > +   (match_operand:VEC_IC 2 "vint_operand")
> > +   (match_operand:VEC_IC 3 "vint_operand")]
> >    "VECTOR_UNIT_ALTIVEC_OR_VSX_P (<MODE>mode)"
> >  {
> >    emit_insn (gen_vector_select_<mode> (operands[0], operands[2], 
> > operands[1],
> 
> This patch has been committed to trunk. The issue is present in GCC 15 and
> GCC 16. Can I backport it to the GCC 16 and GCC 15 branches as well?

This is fine for the backports.

-- 
Michael Meissner, IBM
PO Box 98, Ayer, Massachusetts, USA, 01432
email: [email protected]

Reply via email to