View | Details | Return to bug 80799
Collapse All | Expand All

(-)a/gcc/config/i386/mmx.md (-8 / +8 lines)
Lines 78-86 Link Here
78
78
79
(define_insn "*mov<mode>_internal"
79
(define_insn "*mov<mode>_internal"
80
  [(set (match_operand:MMXMODE 0 "nonimmediate_operand"
80
  [(set (match_operand:MMXMODE 0 "nonimmediate_operand"
81
    "=r ,o ,r,r ,m ,?!y,!y,?!y,m  ,r   ,?!Ym,v,v,v,m,*x,*x,*x,m ,r ,Yi,!Ym,*Yi")
81
    "=r ,o ,r,r ,m ,?!y,!y,?!y,m  ,r   ,?!Ym,v,v,v,m,r ,Yi,!Ym,*Yi")
82
	(match_operand:MMXMODE 1 "vector_move_operand"
82
	(match_operand:MMXMODE 1 "vector_move_operand"
83
    "rCo,rC,C,rm,rC,C  ,!y,m  ,?!y,?!Yn,r   ,C,v,m,v,C ,*x,m ,*x,Yj,r ,*Yj,!Yn"))]
83
    "rCo,rC,C,rm,rC,C  ,!y,m  ,?!y,?!Yn,r   ,C,v,m,v,Yj,r ,*Yj,!Yn"))]
84
  "TARGET_MMX
84
  "TARGET_MMX
85
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
85
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
86
{
86
{
Lines 146-152 Link Here
146
  [(set (attr "isa")
146
  [(set (attr "isa")
147
     (cond [(eq_attr "alternative" "0,1")
147
     (cond [(eq_attr "alternative" "0,1")
148
	      (const_string "nox64")
148
	      (const_string "nox64")
149
	    (eq_attr "alternative" "2,3,4,9,10,11,12,13,14,19,20")
149
	    (eq_attr "alternative" "2,3,4,9,10,15,16")
150
	      (const_string "x64")
150
	      (const_string "x64")
151
	   ]
151
	   ]
152
	   (const_string "*")))
152
	   (const_string "*")))
Lines 159-172 Link Here
159
	      (const_string "mmx")
159
	      (const_string "mmx")
160
	    (eq_attr "alternative" "6,7,8,9,10")
160
	    (eq_attr "alternative" "6,7,8,9,10")
161
	      (const_string "mmxmov")
161
	      (const_string "mmxmov")
162
	    (eq_attr "alternative" "11,15")
162
	    (eq_attr "alternative" "11")
163
	      (const_string "sselog1")
163
	      (const_string "sselog1")
164
	    (eq_attr "alternative" "21,22")
164
	    (eq_attr "alternative" "17,18")
165
	      (const_string "ssecvt")
165
	      (const_string "ssecvt")
166
	   ]
166
	   ]
167
	   (const_string "ssemov")))
167
	   (const_string "ssemov")))
168
   (set (attr "prefix_rex")
168
   (set (attr "prefix_rex")
169
     (if_then_else (eq_attr "alternative" "9,10,19,20")
169
     (if_then_else (eq_attr "alternative" "9,10,15,16")
170
       (const_string "1")
170
       (const_string "1")
171
       (const_string "*")))
171
       (const_string "*")))
172
   (set (attr "prefix")
172
   (set (attr "prefix")
Lines 181-187 Link Here
181
   (set (attr "mode")
181
   (set (attr "mode")
182
     (cond [(eq_attr "alternative" "2")
182
     (cond [(eq_attr "alternative" "2")
183
	      (const_string "SI")
183
	      (const_string "SI")
184
	    (eq_attr "alternative" "11,12,15,16")
184
	    (eq_attr "alternative" "11,12")
185
	      (cond [(ior (match_operand 0 "ext_sse_reg_operand")
185
	      (cond [(ior (match_operand 0 "ext_sse_reg_operand")
186
			  (match_operand 1 "ext_sse_reg_operand"))
186
			  (match_operand 1 "ext_sse_reg_operand"))
187
			(const_string "XI")
187
			(const_string "XI")
Lines 197-203 Link Here
197
		    ]
197
		    ]
198
		    (const_string "TI"))
198
		    (const_string "TI"))
199
199
200
	    (and (eq_attr "alternative" "13,14,17,18")
200
	    (and (eq_attr "alternative" "13,14")
201
	    	 (ior (match_test "<MODE>mode == V2SFmode")
201
	    	 (ior (match_test "<MODE>mode == V2SFmode")
202
		      (not (match_test "TARGET_SSE2"))))
202
		      (not (match_test "TARGET_SSE2"))))
203
	      (const_string "V2SF")
203
	      (const_string "V2SF")
(-)a/gcc/config/i386/sse.md (-2 / +2 lines)
Lines 13863-13872 Link Here
13863
;; movd instead of movq is required to handle broken assemblers.
13863
;; movd instead of movq is required to handle broken assemblers.
13864
(define_insn "vec_concatv2di"
13864
(define_insn "vec_concatv2di"
13865
  [(set (match_operand:V2DI 0 "register_operand"
13865
  [(set (match_operand:V2DI 0 "register_operand"
13866
	  "=Yr,*x,x ,v ,Yi,v ,!x,x,v ,x,x,v")
13866
	  "=Yr,*x,x ,v ,Yi,v ,x    ,x,v ,x,x,v")
13867
	(vec_concat:V2DI
13867
	(vec_concat:V2DI
13868
	  (match_operand:DI 1 "nonimmediate_operand"
13868
	  (match_operand:DI 1 "nonimmediate_operand"
13869
	  "  0, 0,x ,Yv,r ,vm,*y,0,Yv,0,0,v")
13869
	  "  0, 0,x ,Yv,r ,vm,?!*Yn,0,Yv,0,0,v")
13870
	  (match_operand:DI 2 "vector_move_operand"
13870
	  (match_operand:DI 2 "vector_move_operand"
13871
	  "*rm,rm,rm,rm,C ,C ,C ,x,Yv,x,m,m")))]
13871
	  "*rm,rm,rm,rm,C ,C ,C ,x,Yv,x,m,m")))]
13872
  "TARGET_SSE"
13872
  "TARGET_SSE"

Return to bug 80799