i386.md (sse_movdfcc_eq): Fix constraint (sse_mov?fcc splitter): Use operands_match_p...
authorJan Hubicka <jh@suse.cz>
Thu, 29 Mar 2001 22:32:53 +0000 (00:32 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 29 Mar 2001 22:32:53 +0000 (22:32 +0000)
* i386.md (sse_movdfcc_eq): Fix constraint (sse_mov?fcc splitter): Use operands_match_p
instead of rtx_equal_p; fix the output template.

From-SVN: r40959

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

index 826b875..6696baf 100644 (file)
@@ -1,3 +1,8 @@
+Fri Mar 30 00:31:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (sse_movdfcc_eq): Fix constraint (sse_mov?fcc splitter): Use operands_match_p
+       instead of rtx_equal_p; fix the output template.
+
 Fri Mar 30 00:21:41 CEST 2001  Jan Hubicka  <jh@suse.cz>
 
        * i386.c (ix86_expand_setcc): Support 64bit.
index 695d488..d8c402e 100644 (file)
                             (match_operand:SF 4 "nonimmediate_operand" "xm#f,xm#f,f#x,x#f,f#x,x#f"))
                      (match_operand:SF 1 "nonimmediate_operand" "x#fr,0#fr,0#fx,0#fx,0#rx,0#rx")
                      (match_operand:SF 2 "nonimmediate_operand" "x#fr,x#fr,f#fx,f#fx,rm#rx,rm#rx")))
-   (clobber (match_scratch:SF 5 "=1,&4,X,X,X,X"))
+   (clobber (match_scratch:SF 5 "=1,&3,X,X,X,X"))
    (clobber (reg:CC 17))]
   "TARGET_SSE
    && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)"
   "SSE_REG_P (operands[0]) && reload_completed"
   [(set (match_dup 4) (match_op_dup 1 [(match_dup 4) (match_dup 5)]))
    (set (subreg:TI (match_dup 2) 0) (and:TI (subreg:TI (match_dup 2) 0)
-                                           (subreg:TI (match_dup 0) 0)))
-   (set (subreg:TI (match_dup 4) 0) (and:TI (not:TI (subreg:TI (match_dup 0) 0))
+                                           (subreg:TI (match_dup 4) 0)))
+   (set (subreg:TI (match_dup 4) 0) (and:TI (not:TI (subreg:TI (match_dup 4) 0))
                                            (subreg:TI (match_dup 3) 0)))
    (set (subreg:TI (match_dup 0) 0) (ior:TI (subreg:TI (match_dup 6) 0)
                                            (subreg:TI (match_dup 7) 0)))]
   "
 {
   PUT_MODE (operands[1], GET_MODE (operands[0]));
-  if (rtx_equal_p (operands[0], operands[4]))
+  if (operands_match_p (operands[0], operands[4]))
     operands[6] = operands[4], operands[7] = operands[2];
   else
-    operands[6] = operands[2], operands[7] = operands[0];
+    operands[6] = operands[2], operands[7] = operands[4];
 }")
 
 ;; Special case of conditional move we can handle effectivly.