Re: [PATCH][AArch64] Emit TARGET_DOTPROD-specific sequence for sadv16qi

2019-06-03 Thread James Greenhalgh
On Mon, May 13, 2019 at 12:18:25PM +0100, Kyrill Tkachov wrote: > Hi Richard, > > On 5/9/19 9:06 AM, Richard Sandiford wrote: > > Kyrill Tkachov writes: > >> +;; Helper expander for aarch64_abd_3 to save the callers > >> +;; the hassle of constructing the other arm of the MINUS. > >> +(define_exp

Re: [PATCH][AArch64] Emit TARGET_DOTPROD-specific sequence for sadv16qi

2019-05-20 Thread Kyrill Tkachov
Ping. https://gcc.gnu.org/ml/gcc-patches/2019-05/msg00594.html Thanks, Kyrill On 5/13/19 12:18 PM, Kyrill Tkachov wrote: Hi Richard, On 5/9/19 9:06 AM, Richard Sandiford wrote: Kyrill Tkachov writes: +;; Helper expander for aarch64_abd_3 to save the callers +;; the hassle of constructing

Re: [PATCH][AArch64] Emit TARGET_DOTPROD-specific sequence for sadv16qi

2019-05-13 Thread Kyrill Tkachov
Hi Richard, On 5/9/19 9:06 AM, Richard Sandiford wrote: Kyrill Tkachov writes: +;; Helper expander for aarch64_abd_3 to save the callers +;; the hassle of constructing the other arm of the MINUS. +(define_expand "abd_3" + [(use (match_operand:VDQ_BHSI 0 "register_operand")) + (USMAX:VDQ_BHS

Re: [PATCH][AArch64] Emit TARGET_DOTPROD-specific sequence for sadv16qi

2019-05-09 Thread Richard Sandiford
Kyrill Tkachov writes: > +;; Helper expander for aarch64_abd_3 to save the callers > +;; the hassle of constructing the other arm of the MINUS. > +(define_expand "abd_3" > + [(use (match_operand:VDQ_BHSI 0 "register_operand")) > + (USMAX:VDQ_BHSI (match_operand:VDQ_BHSI 1 "register_operand") >

Re: [PATCH][AArch64] Emit TARGET_DOTPROD-specific sequence for sadv16qi

2019-05-08 Thread Kyrill Tkachov
Hi Richard, On 5/4/19 5:13 PM, Richard Sandiford wrote: Kyrill Tkachov writes: @@ -764,6 +780,13 @@ (define_insn "aarch64_adalp_3" ;; UABAL tmp.8h, op1.16b, op2.16b ;; UADALP op3.4s, tmp.8h ;; MOVop0, op3 // should be eliminated in later passes. +;; +;; For TARGE

Re: [PATCH][AArch64] Emit TARGET_DOTPROD-specific sequence for sadv16qi

2019-05-04 Thread Richard Sandiford
Kyrill Tkachov writes: > @@ -764,6 +780,13 @@ (define_insn "aarch64_adalp_3" > ;; UABAL tmp.8h, op1.16b, op2.16b > ;; UADALPop3.4s, tmp.8h > ;; MOV op0, op3 // should be eliminated in later passes. > +;; > +;; For TARGET_DOTPROD we do: > +;; MOV tmp1.16b, #1 // Can b

[PATCH][AArch64] Emit TARGET_DOTPROD-specific sequence for sadv16qi

2019-05-01 Thread Kyrill Tkachov
Hi all, Wilco pointed out that when the Dot Product instructions are available we can use them to generate an even more efficient expansion for the [us]sadv16qi optab. Instead of the current:     uabdl2  v0.8h, v1.16b, v2.16b     uabal   v0.8h, v1.8b, v2.8b     uadalp  v3.4s, v0.8h