From patchwork Thu Jun 14 18:47:15 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [PATCH.,i386] : movd in zero_extend RTX is SSE2 instruction. Date: Thu, 14 Jun 2012 08:47:15 -0000 From: Uros Bizjak X-Patchwork-Id: 165000 Message-Id: To: gcc-patches@gcc.gnu.org Hello! movd to/from MMX or SSE registers is SSE2 instruction. Also, remove wrong x,x alternative. 2012-06-14 Uros Bizjak * config/i386/i386.md (*zero_extendsidi2): Mark movd alternatives SSE2 only. Remove x,x alternative. (*zero_extendsidi2_rex64): Ditto. Bootstrapped and regression tested on x86_64-pc-linux-gnu, committed to mainline SVN. Patch will be backported to other release branches. Uros. Index: i386.md =================================================================== --- i386.md (revision 188622) +++ i386.md (working copy) @@ -3467,10 +3467,10 @@ (define_insn "*zero_extendsidi2_rex64" [(set (match_operand:DI 0 "nonimmediate_operand" - "=r ,o,?*Ym,?*y,?*Yi,!*x") + "=r ,o,?*Ym,?*y,?*Yi,?*x") (zero_extend:DI (match_operand:SI 1 "x86_64_zext_general_operand" - "rmWz,0,r ,m ,r ,m*x")))] + "rmWz,0,r ,m ,r ,m")))] "TARGET_64BIT" "@ mov{l}\t{%1, %k0|%k0, %1} @@ -3479,7 +3479,7 @@ movd\t{%1, %0|%0, %1} %vmovd\t{%1, %0|%0, %1} %vmovd\t{%1, %0|%0, %1}" - [(set_attr "isa" "*,*,*,*,*,sse2") + [(set_attr "isa" "*,*,sse2,sse2,sse2,sse2") (set_attr "type" "imovx,multi,mmxmov,mmxmov,ssemov,ssemov") (set_attr "prefix" "orig,*,orig,orig,maybe_vex,maybe_vex") (set_attr "prefix_0f" "0,*,*,*,*,*") @@ -3487,9 +3487,9 @@ (define_insn "*zero_extendsidi2" [(set (match_operand:DI 0 "nonimmediate_operand" - "=ro,?r,?o,?*Ym,?*y,?*Yi,!*x") + "=ro,?r,?o,?*Ym,?*y,?*Yi,?*x") (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand" - "0 ,rm,r ,r ,m ,r ,m*x")))] + "0 ,rm,r ,r ,m ,r ,m")))] "!TARGET_64BIT" "@ # @@ -3499,7 +3499,7 @@ movd\t{%1, %0|%0, %1} %vmovd\t{%1, %0|%0, %1} %vmovd\t{%1, %0|%0, %1}" - [(set_attr "isa" "*,*,*,*,*,*,sse2") + [(set_attr "isa" "*,*,*,sse2,sse2,sse2,sse2") (set_attr "type" "multi,multi,multi,mmxmov,mmxmov,ssemov,ssemov") (set_attr "prefix" "*,*,*,orig,orig,maybe_vex,maybe_vex") (set_attr "mode" "SI,SI,SI,DI,DI,TI,TI")])