i386: Allow MMXMODE moves with TARGET_MMX_WITH_SSE
authorH.J. Lu <hongjiu.lu@intel.com>
Wed, 15 May 2019 15:30:32 +0000 (15:30 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Wed, 15 May 2019 15:30:32 +0000 (08:30 -0700)
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.

From-SVN: r271250

gcc/ChangeLog
gcc/config/i386/mmx.md

index 206281dcd0a6a1d5415dc90119ba7dd32f75f3a7..a0664dc0691230b647dbb71a4b19cab840f8842a 100644 (file)
@@ -1,3 +1,11 @@
+2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+       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.
+
 2019-05-15  Uroš Bizjak  <ubizjak@gmail.com>
 
        PR target/89021
index 8ffe4f7dfdb04a51084f4cc93ef384460bbabd3f..95cc5411e1f0752d7c5587b13839830f2b8f95f5 100644 (file)
@@ -70,7 +70,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;
@@ -81,7 +81,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))
 (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;