Patchwork [i386,AVX512,25/n] Add vps[rl]ldq insn patterns.

login
register
mail settings
Submitter Kirill Yukhin
Date Aug. 27, 2014, 12:22 p.m.
Message ID <20140827122223.GC7762@msticlxl57.ims.intel.com>
Download mbox | patch
Permalink /patch/383438/
State New
Headers show

Comments

Kirill Yukhin - Aug. 27, 2014, 12:22 p.m.
Hello,
Proposed patch adds patterns for vps[rl]ldq insns

Bootstrapped.
AVX-512* tests on top of patch-set all pass
under simulator.

Is it ok for trunk?

gcc/
	* config/i386/sse.md
	(define_mode_iterator VIMAX_AVX2): Add V4TI mode.
	(define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
	(define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.

--
Thanks, K
Uros Bizjak - Aug. 27, 2014, 3:18 p.m.
On Wed, Aug 27, 2014 at 2:22 PM, Kirill Yukhin <kirill.yukhin@gmail.com> wrote:
> Hello,
> Proposed patch adds patterns for vps[rl]ldq insns
>
> Bootstrapped.
> AVX-512* tests on top of patch-set all pass
> under simulator.
>
> Is it ok for trunk?
>
> gcc/
>         * config/i386/sse.md
>         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
>         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
>         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.

OK.

Thanks,
Uros.

Patch

diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 6c99d84..a208400 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -331,7 +331,7 @@ 
 
 ;; ??? We should probably use TImode instead.
 (define_mode_iterator VIMAX_AVX2
-  [(V2TI "TARGET_AVX2") V1TI])
+  [(V4TI "TARGET_AVX512BW") (V2TI "TARGET_AVX2") V1TI])
 
 ;; ??? This should probably be dropped in favor of VIMAX_AVX2.
 (define_mode_iterator SSESCALARMODE
@@ -8819,9 +8819,9 @@ 
 })
 
 (define_insn "<sse2_avx2>_ashl<mode>3"
-  [(set (match_operand:VIMAX_AVX2 0 "register_operand" "=x,x")
+  [(set (match_operand:VIMAX_AVX2 0 "register_operand" "=x,v")
 	(ashift:VIMAX_AVX2
-	 (match_operand:VIMAX_AVX2 1 "register_operand" "0,x")
+	 (match_operand:VIMAX_AVX2 1 "register_operand" "0,v")
 	 (match_operand:SI 2 "const_0_to_255_mul_8_operand" "n,n")))]
   "TARGET_SSE2"
 {
@@ -8858,9 +8858,9 @@ 
 })
 
 (define_insn "<sse2_avx2>_lshr<mode>3"
-  [(set (match_operand:VIMAX_AVX2 0 "register_operand" "=x,x")
+  [(set (match_operand:VIMAX_AVX2 0 "register_operand" "=x,v")
 	(lshiftrt:VIMAX_AVX2
-	 (match_operand:VIMAX_AVX2 1 "register_operand" "0,x")
+	 (match_operand:VIMAX_AVX2 1 "register_operand" "0,v")
 	 (match_operand:SI 2 "const_0_to_255_mul_8_operand" "n,n")))]
   "TARGET_SSE2"
 {