[35/43] i386: Allow MMXMODE moves with TARGET_MMX_WITH_SSE

Message ID 20190210001947.27278-36-hjl.tools@gmail.com
State Superseded
Headers show
Series
  • V3: Emulate MMX intrinsics with SSE
Related show

Commit Message

H.J. Lu Feb. 10, 2019, 12:19 a.m.
PR target/89021
	* config/i386/mmx.md (MMXMODE:mov<mode>): Also allow
	TARGET_MMX_WITH_SSE.
	(MMXMODE:*mov<mode>_internal): Likewise.
	(MMXMODE:movmisalign<mode>): Likewise.
---
 gcc/config/i386/mmx.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

-- 
2.20.1

Comments

Uros Bizjak Feb. 10, 2019, 12:34 p.m. | #1
On 2/10/19, H.J. Lu <hjl.tools@gmail.com> wrote:
> 	PR target/89021

> 	* config/i386/mmx.md (MMXMODE:mov<mode>): Also allow

> 	TARGET_MMX_WITH_SSE.

> 	(MMXMODE:*mov<mode>_internal): Likewise.

> 	(MMXMODE:movmisalign<mode>): Likewise.


OK.

Uros.

> ---

>  gcc/config/i386/mmx.md | 6 +++---

>  1 file changed, 3 insertions(+), 3 deletions(-)

>

> diff --git a/gcc/config/i386/mmx.md b/gcc/config/i386/mmx.md

> index dafc6c4dcb8..25954891b11 100644

> --- a/gcc/config/i386/mmx.md

> +++ b/gcc/config/i386/mmx.md

> @@ -75,7 +75,7 @@

>  (define_expand "mov<mode>"

>    [(set (match_operand:MMXMODE 0 "nonimmediate_operand")

>  	(match_operand:MMXMODE 1 "nonimmediate_operand"))]

> -  "TARGET_MMX"

> +  "TARGET_MMX || TARGET_MMX_WITH_SSE"

>  {

>    ix86_expand_vector_move (<MODE>mode, operands);

>    DONE;

> @@ -86,7 +86,7 @@

>      "=r ,o ,r,r ,m ,?!y,!y,?!y,m  ,r  ,?!y,v,v,v,m,r,v,!y,*x")

>  	(match_operand:MMXMODE 1 "nonimm_or_0_operand"

>      "rCo,rC,C,rm,rC,C  ,!y,m  ,?!y,?!y,r  ,C,v,m,v,v,r,*x,!y"))]

> -  "TARGET_MMX

> +  "(TARGET_MMX || TARGET_MMX_WITH_SSE)

>     && !(MEM_P (operands[0]) && MEM_P (operands[1]))"

>  {

>    switch (get_attr_type (insn))

> @@ -237,7 +237,7 @@

>  (define_expand "movmisalign<mode>"

>    [(set (match_operand:MMXMODE 0 "nonimmediate_operand")

>  	(match_operand:MMXMODE 1 "nonimmediate_operand"))]

> -  "TARGET_MMX"

> +  "TARGET_MMX || TARGET_MMX_WITH_SSE"

>  {

>    ix86_expand_vector_move (<MODE>mode, operands);

>    DONE;

> --

> 2.20.1

>

>

Patch

diff --git a/gcc/config/i386/mmx.md b/gcc/config/i386/mmx.md
index dafc6c4dcb8..25954891b11 100644
--- a/gcc/config/i386/mmx.md
+++ b/gcc/config/i386/mmx.md
@@ -75,7 +75,7 @@ 
 (define_expand "mov<mode>"
   [(set (match_operand:MMXMODE 0 "nonimmediate_operand")
 	(match_operand:MMXMODE 1 "nonimmediate_operand"))]
-  "TARGET_MMX"
+  "TARGET_MMX || TARGET_MMX_WITH_SSE"
 {
   ix86_expand_vector_move (<MODE>mode, operands);
   DONE;
@@ -86,7 +86,7 @@ 
     "=r ,o ,r,r ,m ,?!y,!y,?!y,m  ,r  ,?!y,v,v,v,m,r,v,!y,*x")
 	(match_operand:MMXMODE 1 "nonimm_or_0_operand"
     "rCo,rC,C,rm,rC,C  ,!y,m  ,?!y,?!y,r  ,C,v,m,v,v,r,*x,!y"))]
-  "TARGET_MMX
+  "(TARGET_MMX || TARGET_MMX_WITH_SSE)
    && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
 {
   switch (get_attr_type (insn))
@@ -237,7 +237,7 @@ 
 (define_expand "movmisalign<mode>"
   [(set (match_operand:MMXMODE 0 "nonimmediate_operand")
 	(match_operand:MMXMODE 1 "nonimmediate_operand"))]
-  "TARGET_MMX"
+  "TARGET_MMX || TARGET_MMX_WITH_SSE"
 {
   ix86_expand_vector_move (<MODE>mode, operands);
   DONE;