diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 87ccb792d568043816c9f58ce657a634c1a6e4e9..c4048a577d9ea59db948fd08ec0818cfefcb0d2d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2009-10-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+	* config/s390/s390.c (s390_z10_optimize_cmp): Don't touch FP compares.
+
 2009-10-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
 	* config/s390/s390.c (s390_z10_optimize_cmp): Use
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index c13170d25ca2e84c9464d06cc7c0ae9fc8ebd4cf..a43348192034c117def878772cef82a5a1a393fd 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -9864,6 +9864,9 @@ s390_z10_optimize_cmp (rtx insn)
   if (!REG_P (*op0) || !REG_P (*op1))
     return false;
 
+  if (GET_MODE_CLASS (GET_MODE (*op0)) != MODE_INT)
+    return false;
+
   /* Swap the COMPARE arguments and its mask if there is a
      conflicting access in the previous insn.  */
   prev_insn = prev_active_insn (insn);