This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/18967] New: [4.0 regression] type conflict for __v2di in xmmintrin.h


On x86_64 the include file xmmintrin.h cannot be compiled with the C++
frontend. Consequently the test g++.dg/other/mmintrin.C fails, see e.g.
http://gcc.gnu.org/ml/gcc-testresults/2004-12/msg00595.html

The error message (as reported by Andreas Jaeger) is:

  /builds/gcc/misc/gcc/testsuite/../include/emmintrin.h: In function 'void
_mm_stream_si128(long long int __vector__*, long long int __vector__)':
  /builds/gcc/misc/gcc/testsuite/../include/emmintrin.h:1426: error: invalid
conversion from 'long long int __vector__*' to 'long int __vector__*'
  /builds/gcc/misc/gcc/testsuite/../include/emmintrin.h:1426: error:  
initializing argument 1 of 'void __builtin_ia32_movntdq(long int __vector__*,
long int __vector__)'

The code in question is as follows:

  __builtin_ia32_movntdq ((__v2di *)__A, (__v2di)__B);

with __v2di being defined as

  typedef long long __v2di __attribute__ ((vector_size (16)));

In i386/i386.c we have:
  def_builtin (MASK_SSE2, "__builtin_ia32_movntdq", void_ftype_pv2di_v2di,
IX86_BUILTIN_MOVNTDQ);

>From the signature of __builtin_ia32_movntdq it looks like __v2di is not a
long long int vector, but a long int vector instead. This incompatibility
should be fixed, see http://gcc.gnu.org/ml/gcc-patches/2004-12/msg00944.html

-- 
           Summary: [4.0 regression] type conflict for __v2di in xmmintrin.h
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Keywords: rejects-valid
          Severity: critical
          Priority: P2
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: reichelt at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]