* config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
mode, return that mode.
* gcc.target/arm/pr53187.c: New test.
* gcc.c-torture/compile/pr53187.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@187086
138bc75d-0d04-0410-961f-
82ee72b054a4
+2012-05-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/53187
+ * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
+ mode, return that mode.
+
2012-05-03 Richard Guenther <rguenther@suse.de>
PR tree-optimization/53144
}
}
+ if (GET_MODE_CLASS (GET_MODE (x)) == MODE_CC)
+ return GET_MODE (x);
+
return CCmode;
}
+2012-05-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/53187
+ * gcc.target/arm/pr53187.c: New test.
+ * gcc.c-torture/compile/pr53187.c: New test.
+
2012-05-03 Richard Guenther <rguenther@suse.de>
PR tree-optimization/53144
--- /dev/null
+/* PR target/53187 */
+
+void bar (int);
+
+void
+foo (int x, double y, double z)
+{
+ _Bool t = z >= y;
+ if (!t || x)
+ bar (t ? 1 : 16);
+}
--- /dev/null
+/* PR target/53187 */
+/* { dg-do compile } */
+/* { dg-options "-march=armv7-a -mfloat-abi=hard -O2" } */
+
+void bar (int);
+
+void
+foo (int x, double y, double z)
+{
+ _Bool t = z >= y;
+ if (!t || x)
+ bar (t ? 1 : 16);
+}