This is the mail archive of the gcc-patches@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]

Re: PATCH: PR target/33944: streaming 64-bit integer stores


On Fri, Nov 18, 2011 at 6:58 PM, H.J. Lu <hongjiu.lu@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.lu@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.


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