This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH i386 3/8] [AVX512] [19/n] Add AVX-512 patterns: Extracts and converts.
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: Kirill Yukhin <kirill dot yukhin at gmail dot com>
- Cc: Richard Henderson <rth at redhat dot com>, Vladimir Makarov <vmakarov at redhat dot com>, Jakub Jelinek <jakub at redhat dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Sun, 20 Oct 2013 11:55:36 +0200
- Subject: Re: [PATCH i386 3/8] [AVX512] [19/n] Add AVX-512 patterns: Extracts and converts.
- Authentication-results: sourceware.org; auth=none
- References: <20130808112524 dot GA40277 at msticlxl57 dot ims dot intel dot com> <20130814072638 dot GD52726 at msticlxl57 dot ims dot intel dot com> <52129604 dot 6040305 at redhat dot com> <20131009103129 dot GR52466 at msticlxl57 dot ims dot intel dot com> <525D6367 dot 7040804 at redhat dot com> <20131016160707 dot GC22220 at msticlxl57 dot ims dot intel dot com> <525EC60B dot 2080108 at redhat dot com> <20131017104743 dot GA18369 at msticlxl57 dot ims dot intel dot com> <CAFULd4bHfJi6ETOXZPOf0oj4RK1GiM3=ba5rW=oFirbpX22UzA at mail dot gmail dot com> <20131017141615 dot GD18369 at msticlxl57 dot ims dot intel dot com>
On Thu, Oct 17, 2013 at 4:16 PM, Kirill Yukhin <email@example.com> wrote:
>> >> > I suspect gen_lowpart is bad turn when reload is completed, as
>> >> > far as it can create new pseudo. gen_lowpart () may call
>> >> > gen_reg_rtx (), which contain corresponging gcc_assert ().
>> >> False. gen_lowpart is perfectly safe post-reload.
>> >> Indeed, taking the subreg of a hard register should arrive
>> >> x = gen_rtx_REG_offset (op, outermode, final_regno, final_offset);
>> >> in simplify_subreg.
>> >> Have you encountered some specific problem with gen_lowpart?
>> > Maybe the code in the pattern is buggy? Or is it a gen_lowpart?
>> I think that original approach with gen_rtx_REG is correct and follows
>> established practice in sse.md (please grep for gen_reg_RTX in
>> sse.md). If this approach is necessary due to the deficiency of
>> gen_lowpart, then the fix to gen_lowpart should be proposed in a
>> follow-up patch.
> So, I've reverted changes in mult_vect patterns and
> added "%" to constraints.
Please also add back expanders with operand fixups and insn
constraints, as is the case with other commutative operators. They are
needed to hoist operand loads out of the loops (reload and later
passes won't hoist memory loads out of the loops when fixing up
The patch is OK with this change, but please wait for rths final approval.