re PR target/63947 (Wrong fcmov suffix)

PR target/63947
	* config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
	Output "b" and "nb" suffix for FP mode.

testsuite/ChangeLog:

	PR target/63947
	* gcc.target/i386/pr63947.c: New test.

From-SVN: r217810
This commit is contained in:
Uros Bizjak 2014-11-19 21:38:59 +01:00
parent 61204ad95c
commit 9da8fef02f
4 changed files with 26 additions and 6 deletions

View File

@ -1,3 +1,9 @@
2014-11-19 Uros Bizjak <ubizjak@gmail.com>
PR target/63947
* config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
Output "b" and "nb" suffix for FP mode.
2014-11-19 Jan Hubicka <hubicka@ucw.cz>
PR bootstrap/63963
@ -850,12 +856,12 @@
2014-11-19 Renlin Li <Renlin.Li@arm.com>
PR target/63424
PR target/63424
* config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
2014-11-19 Renlin Li <Renlin.Li@arm.com>
PR middle-end/63762
PR middle-end/63762
* ira.c (ira): Update preferred class.
2014-11-19 Jakub Jelinek <jakub@redhat.com>

View File

@ -14953,7 +14953,7 @@ put_condition_code (enum rtx_code code, machine_mode mode, bool reverse,
if (mode == CCmode)
suffix = "b";
else if (mode == CCCmode)
suffix = "c";
suffix = fp ? "b" : "c";
else
gcc_unreachable ();
break;
@ -14976,9 +14976,9 @@ put_condition_code (enum rtx_code code, machine_mode mode, bool reverse,
break;
case GEU:
if (mode == CCmode)
suffix = fp ? "nb" : "ae";
suffix = "nb";
else if (mode == CCCmode)
suffix = "nc";
suffix = fp ? "nb" : "nc";
else
gcc_unreachable ();
break;

View File

@ -1,7 +1,12 @@
2014-11-19 Uros Bizjak <ubizjak@gmail.com>
PR target/63947
* gcc.target/i386/pr63947.c: New test.
2014-11-19 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/55425
* g++.dg/cpp0x/constexpr-__func__.C
* g++.dg/cpp0x/constexpr-__func__.C: New.
2014-11-19 Renlin Li <Renlin.Li@arm.com>

View File

@ -0,0 +1,9 @@
/* PR target/63947 */
/* { dg-do assemble } */
/* { dg-options "-Os" } */
/* { dg-additional-options "-march=i686" { target ia32 } } */
long double foo (unsigned a, unsigned b)
{
return a + b < a;
}