[Bug target/34256] mmx and movd/movq on x86_64

2008-12-13 Thread ubizjak at gmail dot com


--- Comment #11 from ubizjak at gmail dot com  2008-12-13 19:29 ---
(In reply to comment #10)

> FAIL: gcc.target/i386/pr34256.c scan-assembler-times mov 4

PR 37364


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34256



[Bug target/34256] mmx and movd/movq on x86_64

2008-12-13 Thread howarth at nitro dot med dot uc dot edu


--- Comment #10 from howarth at nitro dot med dot uc dot edu  2008-12-13 
18:38 ---
On i686-apple-darwin9, I have been using...

Using built-in specs.
Target: i686-apple-darwin9
Configured with: ../gcc-4.4-20081213/configure --prefix=/sw
--prefix=/sw/lib/gcc4.4 --mandir=/sw/share/man --infodir=/sw/share/info
--enable-languages=c,c++,fortran,objc,java --with-gmp=/sw
--with-libiconv-prefix=/sw --with-ppl=/sw --with-cloog=/sw --with-system-zlib
--x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib --with-arch=nocona
--with-tune=generic --build=i686-apple-darwin9 --host=i686-apple-darwin9
--target=i686-apple-darwin9
Thread model: posix
gcc version 4.4.0 20081213 (experimental) (GCC) 

when the testsuite produces the failure...

FAIL: gcc.target/i386/pr34256.c scan-assembler-times mov 4


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34256



[Bug target/34256] mmx and movd/movq on x86_64

2008-11-16 Thread howarth at nitro dot med dot uc dot edu


--- Comment #9 from howarth at nitro dot med dot uc dot edu  2008-11-17 
00:37 ---
Created an attachment (id=16704)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16704&action=view)
assembly file for gcc.target/i386/pr34256.c at -m64 on i686-apple-darwin9 with
-fomit-frame-pointer


-- 

howarth at nitro dot med dot uc dot edu changed:

   What|Removed |Added

  Attachment #16691|0   |1
is obsolete||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34256



[Bug target/34256] mmx and movd/movq on x86_64

2008-11-16 Thread howarth at nitro dot med dot uc dot edu


--- Comment #8 from howarth at nitro dot med dot uc dot edu  2008-11-17 
00:34 ---
The gcc.target/i386/pr34256.c test case is still failing as...

Executing on host:
/sw/src/fink.build/gcc44-4.3.999-20081116/darwin_objdir/gcc/xgcc
-B/sw/src/fink.build/gcc44-4.3.999-20081116/darwin_objdir/gcc/
/sw/src/fink.build/gcc44-4.3.999-20081116/gcc-4.4-20081116/gcc/testsuite/gcc.target/i386/pr34256.c
  -O2 -fomit-frame-pointer -march=core2 -S  -m64 -o pr34256.s(timeout =
300)
PASS: gcc.target/i386/pr34256.c (test for excess errors)
FAIL: gcc.target/i386/pr34256.c scan-assembler-times mov 4
UNSUPPORTED: gcc.target/i386/pr34312.c
UNSUPPORTED: gcc.target/i386/pr34522.c
UNSUPPORTED: gcc.target/i386/pr35083.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34256



[Bug target/34256] mmx and movd/movq on x86_64

2008-11-15 Thread howarth at nitro dot med dot uc dot edu


--- Comment #7 from howarth at nitro dot med dot uc dot edu  2008-11-16 
00:09 ---
Created an attachment (id=16691)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16691&action=view)
assembly file generated for gcc.target/i386/pr34256.c at -m64 on
i686-apple-darwin9


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34256



[Bug target/34256] mmx and movd/movq on x86_64

2008-11-15 Thread howarth at nitro dot med dot uc dot edu


--- Comment #6 from howarth at nitro dot med dot uc dot edu  2008-11-16 
00:07 ---
The gcc.target/i386/pr34256.c test case fails on i686-apple-darwin9 at -m64 as
follows...

Executing on host:
/sw/src/fink.build/gcc44-4.3.999-20081115/darwin_objdir/gcc/xgcc
-B/sw/src/fink.build/gcc44-4.3.999-20081115/darwin_objdi
r/gcc/
/sw/src/fink.build/gcc44-4.3.999-20081115/gcc-4.4-20081115/gcc/testsuite/gcc.target/i386/pr34256.c
  -O2 -march=core2 -S  -m64 -o pr3
4256.s(timeout = 300)
PASS: gcc.target/i386/pr34256.c (test for excess errors)
FAIL: gcc.target/i386/pr34256.c scan-assembler-times mov 4


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34256



[Bug target/34256] mmx and movd/movq on x86_64

2008-02-23 Thread uros at gcc dot gnu dot org


--- Comment #5 from uros at gcc dot gnu dot org  2008-02-23 15:24 ---
Subject: Bug 34256

Author: uros
Date: Sat Feb 23 15:24:02 2008
New Revision: 132572

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=132572
Log:
PR target/22076
PR target/34256

* config/i386/mmx.md (*mov_internal_rex64): Use "!y" to
prevent reload from using MMX registers.
(*mov_internal): Ditto.
(*movv2sf_internal_rex64): Ditto.
(*movv2sf_internal): Ditto.

testsuite/ChangeLog:

PR target/22076
PR target/34256
* gcc.target/i386/pr22076.c: New test.
* gcc.target/i386/pr34256.c: New test.
* gcc.target/i386/vecinit-5.c: New test.
* gcc.target/i386/vecinit-6.c: New test.
* gcc.target/i386/vecinit-[1-4].c: Check that no MMX register is used.

* g++.dg/compat/struct-layout-1.h: Do not include  and
, define __m64 and __m128 directly.
* g++.dg/compat/struct-layout-1_generate.c: Add -mno-mmx for x86.

Added:
trunk/gcc/testsuite/gcc.target/i386/pr22076.c
trunk/gcc/testsuite/gcc.target/i386/pr34256.c
trunk/gcc/testsuite/gcc.target/i386/vecinit-5.c
trunk/gcc/testsuite/gcc.target/i386/vecinit-6.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/mmx.md
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/compat/struct-layout-1.h
trunk/gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c
trunk/gcc/testsuite/gcc.target/i386/vecinit-1.c
trunk/gcc/testsuite/gcc.target/i386/vecinit-2.c
trunk/gcc/testsuite/gcc.target/i386/vecinit-3.c
trunk/gcc/testsuite/gcc.target/i386/vecinit-4.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34256



[Bug target/34256] mmx and movd/movq on x86_64

2007-12-10 Thread ubizjak at gmail dot com


--- Comment #4 from ubizjak at gmail dot com  2007-12-10 08:40 ---


*** This bug has been marked as a duplicate of 22076 ***


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34256



[Bug target/34256] mmx and movd/movq on x86_64

2007-11-28 Thread ubizjak at gmail dot com


--- Comment #3 from ubizjak at gmail dot com  2007-11-28 12:46 ---
Confirmed.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||patch
   Last reconfirmed|-00-00 00:00:00 |2007-11-28 12:46:37
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34256



[Bug target/34256] mmx and movd/movq on x86_64

2007-11-28 Thread ubizjak at gmail dot com


--- Comment #2 from ubizjak at gmail dot com  2007-11-28 12:45 ---
Created an attachment (id=14653)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14653&action=view)
Patch to adjust mmx move instructions

It looks that mmx move instructions need some tuning.  Attached patch fixes
your problems and generates (-march=core2):

foo:
.LFB4:
movqx(%rip), %mm0
paddd   y(%rip), %mm0
movd%mm0, %rax
ret

Since these RA adjustments are very fragile, this patch is not appropriate for
stage3.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34256



[Bug target/34256] mmx and movd/movq on x86_64

2007-11-27 Thread dean at arctic dot org


--- Comment #1 from dean at arctic dot org  2007-11-28 01:43 ---
this appears to be a regression between gcc 4.1.x and 4.2.x.  i had to switch
the intrinsic to _mm_cvtsi64_si64x but it otherwise generates the same code on
4.3.x...

ubuntu 4.1.2:

% objdump -dr movq.o

movq.o: file format elf64-x86-64

Disassembly of section .text:

 :
   0:   0f 6f 05 00 00 00 00movq   0(%rip),%mm0# 7 
3: R_X86_64_PC32x+0xfffc
   7:   0f fe 05 00 00 00 00paddd  0(%rip),%mm0# e 
a: R_X86_64_PC32y+0xfffc
   e:   48 0f 7e c0 movd   %mm0,%rax
  12:   c3  retq

and 4.2.1:

movq.o: file format elf64-x86-64

Disassembly of section .text:

 :
   0:   48 8b 05 00 00 00 00mov0x0(%rip),%rax# 7 
3: R_X86_64_PC32x+0xfffc
   7:   48 89 44 24 f8  mov%rax,-0x8(%rsp)
   c:   0f 6f 44 24 f8  movq   -0x8(%rsp),%mm0
  11:   0f fe 05 00 00 00 00paddd  0x0(%rip),%mm0# 18 
14: R_X86_64_PC32   y+0xfffc
  18:   0f 7f 44 24 f8  movq   %mm0,-0x8(%rsp)
  1d:   48 8b 44 24 f8  mov-0x8(%rsp),%rax
  22:   c3  retq


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34256