On Fri, Nov 18, 2011 at 6:58 PM, H.J. Lu <hongjiu...@intel.com> wrote:
> _mm_stream_si64 intrinsic is missing. It is implemented in VC++: > > http://msdn.microsoft.com/en-us/library/bb531466.aspx > > We are adding it to Intel64 SDM. Here is a patch to implement it in GCC. > I added UNSPEC_MOVNTI so that it won't get confused with > > (define_insn "sse_movntdi" > [(set (match_operand:DI 0 "memory_operand" "=m") > (unspec:DI [(match_operand:DI 1 "register_operand" "y")] > UNSPEC_MOVNT))] > "TARGET_SSE || TARGET_3DNOW_A" > "movntq\t{%1, %0|%0, %1}" > [(set_attr "type" "mmxmov") > (set_attr "mode" "DI")]) > > OK for trunk? > > Thanks. > > H.J. > --- > 2011-11-16 H.J. Lu <hongjiu...@intel.com> > > PR target/33944 > * doc/extend.texi: Document __builtin_ia32_movnti64. > > * config/i386/emmintrin.h (_mm_stream_si64): New. > > * config/i386/i386-builtin-types.def: Add > VOID_FTYPE_PLONGLONG_LONGLONG. > > * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTI64. > (bdesc_special_args): Update __builtin_ia32_movnti. Add > __builtin_ia32_movnti64. > (ix86_expand_special_args_builtin): Handle > VOID_FTYPE_PLONGLONG_LONGLONG. > > * config/i386/i386.md (UNSPEC_MOVNTI): New. > > * config/i386/sse.md (sse2_movntsi): Renamed to ... > (sse2_movnti<mode>): This. OK. Thanks, Uros.