Commit f9ed28db by Uros Bizjak Committed by Uros Bizjak

re PR target/44578 (GCC generates MMX instructions but fails to generate "emms")

	PR target/44578
	* config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
	alternative.

testsuite/ChangeLog:

	PR target/44578
	* gcc.target/i386/pr44578.c: New test.

From-SVN: r198433
parent deca73f5
2013-04-29 Uros Bizjak <ubizjak@gmail.com>
PR target/44578
* config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
alternative.
2013-04-29 Vladimir Makarov <vmakarov@redhat.com>
PR target/57097
......
......@@ -3049,10 +3049,10 @@
(define_insn "*zero_extendsidi2"
[(set (match_operand:DI 0 "nonimmediate_operand"
"=r,?r,?o,r ,o,?*Ym,?*y,?*Yi,?*x")
"=r,?r,?o,r ,o,?*Ym,?!*y,?*Yi,?*x")
(zero_extend:DI
(match_operand:SI 1 "x86_64_zext_operand"
"0 ,rm,r ,rmWz,0,r ,m ,r ,m")))]
"0 ,rm,r ,rmWz,0,r ,m ,r ,m")))]
""
{
switch (get_attr_type (insn))
......
2013-04-29 Uros Bizjak <ubizjak@gmail.com>
PR target/44578
* gcc.target/i386/pr44578.c: New test.
2013-04-29 Vladimir Makarov <vmakarov@redhat.com>
PR target/57097
......
/* { dg-do run } */
/* { dg-options "-O2 -mtune=athlon64" } */
extern void abort (void);
long double
__attribute__((noinline, noclone))
test (float num)
{
unsigned int i;
if (num < 0.0)
num = 0.0;
__builtin_memcpy (&i, &num, sizeof(unsigned int));
return (long double)(unsigned long long) i;
}
int
main ()
{
long double x;
x = test (0.0);
if (x != 0.0)
abort ();
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment