diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d8af506844282a0c783717ea93152818e6818c2c..de9be71ced10018ae253825e1348f3bf6c8b75ef 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2006-07-23  Jan Hubicka  <jh@suse.cz>
+
+	* i386.md (subsi_3_zext): Fix output template.
+
 2006-07-21  Mike Stump  <mrs@apple.com>
 
 	* doc/invoke.texi (C++ Dialect Options): Note that
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index ee2e76bf9b14e5b010cbc7438b86f5cbd225b39c..00e06ba7e771e845bd835f43847c7b8c493b4064 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -6718,7 +6718,7 @@
 		    (match_dup 2))))]
   "TARGET_64BIT && ix86_match_ccmode (insn, CCmode)
    && ix86_binary_operator_ok (MINUS, SImode, operands)"
-  "sub{q}\t{%2, %0|%0, %2}"
+  "sub{l}\t{%2, %1|%1, %2}"
   [(set_attr "type" "alu")
    (set_attr "mode" "DI")])