public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: [PATCH] Fix up predicates for commutative vector comparison (PR target/82855)
@ 2017-11-08  8:53 Uros Bizjak
  0 siblings, 0 replies; 2+ messages in thread
From: Uros Bizjak @ 2017-11-08  8:53 UTC (permalink / raw)
  To: gcc-patches; +Cc: Jakub Jelinek, Kirill Yukhin

> The issues fixed by the previous patch together with this one result
> in the testcase from the PR with -mtune=intel (for some reason with
> generic tuning we decide to perform the 256-bit load as 2 128-bit loads and
> don't merge that into 256-bit comparison operand, shall we change that?)
> to use memory operand directly in vcmpeq* instead of loading it into a
> register first.
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
>
> 2017-11-06  Jakub Jelinek  <jakub@redhat.com>
>
> PR target/82855
> * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>_1):
> Use nonimmediate_operand predicate for operand 1 instead of
> register_operand.

Please also change operand1 of corresponding expanders to nonimmediate_operand.

OK with the above change.

Thanks,
Uros.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH] Fix up predicates for commutative vector comparison (PR target/82855)
@ 2017-11-06 21:23 Jakub Jelinek
  0 siblings, 0 replies; 2+ messages in thread
From: Jakub Jelinek @ 2017-11-06 21:23 UTC (permalink / raw)
  To: Kirill Yukhin; +Cc: gcc-patches

Hi!

The issues fixed by the previous patch together with this one result
in the testcase from the PR with -mtune=intel (for some reason with
generic tuning we decide to perform the 256-bit load as 2 128-bit loads and
don't merge that into 256-bit comparison operand, shall we change that?)
to use memory operand directly in vcmpeq* instead of loading it into a
register first.

Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

2017-11-06  Jakub Jelinek  <jakub@redhat.com>

	PR target/82855
	* config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>_1):
	Use nonimmediate_operand predicate for operand 1 instead of
	register_operand.

--- gcc/config/i386/sse.md.jj	2017-11-06 11:47:55.103076500 +0100
+++ gcc/config/i386/sse.md	2017-11-06 11:50:16.832266795 +0100
@@ -11168,7 +11168,7 @@ (define_expand "<avx512>_eq<mode>3<mask_
 (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"
   [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=Yk")
 	(unspec:<avx512fmaskmode>
-	  [(match_operand:VI12_AVX512VL 1 "register_operand" "%v")
+	  [(match_operand:VI12_AVX512VL 1 "nonimmediate_operand" "%v")
 	   (match_operand:VI12_AVX512VL 2 "nonimmediate_operand" "vm")]
 	  UNSPEC_MASKED_EQ))]
   "TARGET_AVX512F
@@ -11182,7 +11182,7 @@ (define_insn "<avx512>_eq<mode>3<mask_sc
 (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"
   [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=Yk")
 	(unspec:<avx512fmaskmode>
-	  [(match_operand:VI48_AVX512VL 1 "register_operand" "%v")
+	  [(match_operand:VI48_AVX512VL 1 "nonimmediate_operand" "%v")
 	   (match_operand:VI48_AVX512VL 2 "nonimmediate_operand" "vm")]
 	  UNSPEC_MASKED_EQ))]
   "TARGET_AVX512F

	Jakub

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-11-08  8:46 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-08  8:53 [PATCH] Fix up predicates for commutative vector comparison (PR target/82855) Uros Bizjak
  -- strict thread matches above, loose matches on Subject: below --
2017-11-06 21:23 Jakub Jelinek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).