On Tue, Nov 13, 2018 at 6:08 AM H.J. Lu <hjl.to...@gmail.com> wrote:
>
> On Sun, Nov 4, 2018 at 7:24 AM H.J. Lu <hjl.to...@gmail.com> wrote:
> >
> > On Fri, Oct 26, 2018 at 12:44 AM H.J. Lu <hjl.to...@gmail.com> wrote:
> > >
> > > On 10/25/18, Uros Bizjak <ubiz...@gmail.com> wrote:
> > > > On Fri, Oct 26, 2018 at 8:48 AM H.J. Lu <hjl.to...@gmail.com> wrote:
> > > >>
> > > >> On 10/25/18, Uros Bizjak <ubiz...@gmail.com> wrote:
> > > >> > On Fri, Oct 26, 2018 at 8:07 AM H.J. Lu <hjl.to...@gmail.com> wrote:
> > > >> >>
> > > >> >>         * read-rtl.c (apply_subst_iterator): Handle
> > > >> >> define_insn_and_split.
> > > >> >> ---
> > > >> >>  gcc/read-rtl.c | 6 ++++--
> > > >> >>  1 file changed, 4 insertions(+), 2 deletions(-)
> > > >> >>
> > > >> >> diff --git a/gcc/read-rtl.c b/gcc/read-rtl.c
> > > >> >> index d698dd4af4d..5957c29671a 100644
> > > >> >> --- a/gcc/read-rtl.c
> > > >> >> +++ b/gcc/read-rtl.c
> > > >> >> @@ -275,9 +275,11 @@ apply_subst_iterator (rtx rt, unsigned int, int
> > > >> >> value)
> > > >> >>    if (value == 1)
> > > >> >>      return;
> > > >> >>    gcc_assert (GET_CODE (rt) == DEFINE_INSN
> > > >> >> +             || GET_CODE (rt) == DEFINE_INSN_AND_SPLIT
> > > >> >>               || GET_CODE (rt) == DEFINE_EXPAND);
> > > >> >
> > > >> > Can we also handle DEFINE_SPLIT here?
> > > >> >
> > > >>
> > > >> Yes, we could if there were a usage for it.  I am reluctant to add
> > > >> something
> > > >> I have no use nor test for.
> > > >
> > > > Just split one define_insn_and_split to define_insn and corresponding
> > > > define_split.
> > > >
> > > > define_insn_and_split is a contraction for for the define_insn and
> > > > corresponding define_split, so it looks weird to only handle
> > > > define_insn_and-split without handling define_split.
> > > >
> > >
> > > Here is the updated patch to handle define_split.  Tested with
> > >
> > > (define_insn "*sse4_1_<code>v8qiv8hi2<mask_name>_2"
> > >   [(set (match_operand:V8HI 0 "register_operand")
> > >         (any_extend:V8HI
> > >           (vec_select:V8QI
> > >             (subreg:V16QI
> > >               (vec_concat:V2DI
> > >                 (match_operand:DI 1 "memory_operand")
> > >                 (const_int 0)) 0)
> > >             (parallel [(const_int 0) (const_int 1)
> > >                        (const_int 2) (const_int 3)
> > >                        (const_int 4) (const_int 5)
> > >                        (const_int 6) (const_int 7)]))))]
> > >   "TARGET_SSE4_1 && <mask_avx512bw_condition> && 
> > > <mask_avx512vl_condition>"
> > >   "#")
> > >
> > > (define_split
> > >   [(set (match_operand:V8HI 0 "register_operand")
> > >         (any_extend:V8HI
> > >           (vec_select:V8QI
> > >             (subreg:V16QI
> > >               (vec_concat:V2DI
> > >                 (match_operand:DI 1 "memory_operand")
> > >                 (const_int 0)) 0)
> > >             (parallel [(const_int 0) (const_int 1)
> > >                        (const_int 2) (const_int 3)
> > >                        (const_int 4) (const_int 5)
> > >                        (const_int 6) (const_int 7)]))))]
> > >   "TARGET_SSE4_1 && <mask_avx512bw_condition> && <mask_avx512vl_condition>
> > >    && can_create_pseudo_p ()"
> > >   [(set (match_dup 0)
> > >         (any_extend:V8HI (match_dup 1)))]
> > > {
> > >   operands[1] = adjust_address_nv (operands[1], V8QImode, 0);
> > > })
> > >
> >
> > PING:
> >
> > https://gcc.gnu.org/ml/gcc-patches/2018-10/msg01665.html
> >
> > This patch blocks an i386 backend patch.
> >
>
> PING.
>

PING.

-- 
H.J.

Reply via email to