]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
i386.c (ix86_expand_sse_compare_and_jump): Use mode provided by ix86_fp_compare_mode...
authorAlexander Monakov <amonakov@ispras.ru>
Sat, 12 Oct 2013 12:48:23 +0000 (16:48 +0400)
committerAlexander Monakov <amonakov@gcc.gnu.org>
Sat, 12 Oct 2013 12:48:23 +0000 (16:48 +0400)
* config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
provided by ix86_fp_compare_mode instead of CCFPUmode.

testsuite/:
* gcc.target/i386/builtin-ucmp.c: New test.

From-SVN: r203483

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/builtin-ucmp.c [new file with mode: 0644]

index b0fd76c3782c92d00693c7c8105f7ac0916b85e1..aace6c4f435150bc410f184fb4db78fc336b8c09 100644 (file)
@@ -1,3 +1,8 @@
+2013-10-12  Alexander Monakov  <amonakov@ispras.ru>
+
+       * config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
+       provided by ix86_fp_compare_mode instead of CCFPUmode.
+
 2013-10-12  James Greenhalgh  <james.greenhalgh@arm.com>
 
        * config/aarch64/arm_neon.h
index f6058a42ea94d28d974a459e6d23b1cac9c020ef..c35cb700b0449d06e3fdde4037a19c821f7b83eb 100644 (file)
@@ -38289,6 +38289,7 @@ static rtx
 ix86_expand_sse_compare_and_jump (enum rtx_code code, rtx op0, rtx op1,
                                   bool swap_operands)
 {
+  enum machine_mode fpcmp_mode = ix86_fp_compare_mode (code);
   rtx label, tmp;
 
   if (swap_operands)
@@ -38299,9 +38300,9 @@ ix86_expand_sse_compare_and_jump (enum rtx_code code, rtx op0, rtx op1,
     }
 
   label = gen_label_rtx ();
-  tmp = gen_rtx_REG (CCFPUmode, FLAGS_REG);
+  tmp = gen_rtx_REG (fpcmp_mode, FLAGS_REG);
   emit_insn (gen_rtx_SET (VOIDmode, tmp,
-                         gen_rtx_COMPARE (CCFPUmode, op0, op1)));
+                         gen_rtx_COMPARE (fpcmp_mode, op0, op1)));
   tmp = gen_rtx_fmt_ee (code, VOIDmode, tmp, const0_rtx);
   tmp = gen_rtx_IF_THEN_ELSE (VOIDmode, tmp,
                              gen_rtx_LABEL_REF (VOIDmode, label), pc_rtx);
index 5c26e564506e0545edc010cec8510452b3c77ce8..5ab49b471a349124eb8e374c8acee655fcc4b89b 100644 (file)
@@ -1,3 +1,7 @@
+2013-10-12  Alexander Monakov  <amonakov@ispras.ru>
+
+       * gcc.target/i386/builtin-ucmp.c: New test.
+
 2013-10-11  Brooks Moses  <bmoses@google.com>
 
        * g++.dg/ext/altivec-7.C: Check for standard vector-type name
diff --git a/gcc/testsuite/gcc.target/i386/builtin-ucmp.c b/gcc/testsuite/gcc.target/i386/builtin-ucmp.c
new file mode 100644 (file)
index 0000000..709804c
--- /dev/null
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -ffast-math -mfpmath=sse -msse2" } */
+
+double foo(double a)
+{
+  return __builtin_round(a);
+}
+
+/* { dg-final { scan-assembler-not "ucom" } } */