diff options
author | Alexander Monakov <amonakov@ispras.ru> | 2013-10-12 16:48:23 +0400 |
---|---|---|
committer | Alexander Monakov <amonakov@gcc.gnu.org> | 2013-10-12 16:48:23 +0400 |
commit | b86a70ff8d42f72bf998602fb1fcd724b7f76092 (patch) | |
tree | 649a8c47e4ba41cd240bdfefa81acc7ac135bc33 /gcc | |
parent | f89163fd487c99f264ebcc9cd07b679b62b87870 (diff) | |
download | gcc-b86a70ff8d42f72bf998602fb1fcd724b7f76092.zip gcc-b86a70ff8d42f72bf998602fb1fcd724b7f76092.tar.gz gcc-b86a70ff8d42f72bf998602fb1fcd724b7f76092.tar.bz2 |
i386.c (ix86_expand_sse_compare_and_jump): Use mode provided by ix86_fp_compare_mode instead of CCFPUmode.
* 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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/builtin-ucmp.c | 9 |
4 files changed, 21 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b0fd76c..aace6c4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index f6058a4..c35cb70 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -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); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5c26e56..5ab49b4 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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 index 0000000..709804c --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/builtin-ucmp.c @@ -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" } } */ |