This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Improve other 13 define_insns
- From: Kirill Yukhin <kirill dot yukhin at gmail dot com>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: Uros Bizjak <ubizjak at gmail dot com>, gcc-patches at gcc dot gnu dot org
- Date: Thu, 12 May 2016 17:20:02 +0300
- Subject: Re: [PATCH] Improve other 13 define_insns
- Authentication-results: sourceware.org; auth=none
- References: <20160504194302 dot GO26501 at tucnak dot zalov dot cz>
Hi Jakub,
On 04 May 21:43, Jakub Jelinek wrote:
> Hi!
>
> This patch tweaks more define_insns at once, again all the insns
> should be already in AVX512F or AVX512VL.
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
>
> 2016-05-04 Jakub Jelinek <jakub@redhat.com>
>
> * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
> sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
> sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
> sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
> alternatives, use maybe_evex instead of vex in prefix.
>
> ;; Avoid combining registers from different units in a single alternative,
> ;; see comment above inline_secondary_memory_needed function in i386.c
> (define_insn "sse2_storehpd"
> - [(set (match_operand:DF 0 "nonimmediate_operand" "=m,x,x,x,*f,r")
> + [(set (match_operand:DF 0 "nonimmediate_operand" "=m,x,v,x,*f,r")
> (vec_select:DF
> - (match_operand:V2DF 1 "nonimmediate_operand" " x,0,x,o,o,o")
> + (match_operand:V2DF 1 "nonimmediate_operand" " v,0,v,o,o,o")
Same (as [1]) here.
Testing this fix:
@@ -8426,7 +8426,7 @@
;; Avoid combining registers from different units in a single alternative,
;; see comment above inline_secondary_memory_needed function in i386.c
(define_insn "sse2_storehpd"
- [(set (match_operand:DF 0 "nonimmediate_operand" "=m,x,v,x,*f,r")
+ [(set (match_operand:DF 0 "nonimmediate_operand" "=m,x,Yv,x,*f,r")
(vec_select:DF
(match_operand:V2DF 1 "nonimmediate_operand" " v,0,v,o,o,o")
[1] - https://gcc.gnu.org/ml/gcc-patches/2016-05/msg00908.html
--
Thanks, K