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]

PATCH: Simplify x86 load/store builtin expand


Hi,

x86 backend has many exceptions, for store, load, asymetric types, ...
when expanding x86 builtins. AVX has masked load/store builtins,
which need new exceptions. This patch removes bdesc_1arg,
ix86_expand_store_builtin and ix86_expand_unop_builtin.
ix86_expand_args_builtin can handle load/store builtins with
more than one argument. I am testing on Linux/ia32 and Linux/Intel64.
Ok for trunk if there are no regressions?

Thanks.


H.J.
---
2008-04-28  H.J. Lu  <hongjiu.lu@intel.com>

        * config/i386/i386.c (sse_builtin_type): Renamed to ...
        (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
        INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
        INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
        V16QI_FTYPE_PCCHAR, V4SF_FTYPE_PCFLOAT, V2DF_FTYPE_PCDOUBLE,
        V2DI_FTYPE_PV2DI, VOID_FTYPE_PV2DI_V2DI,
        VOID_FTYPE_PCHAR_V16QI, VOID_FTYPE_PFLOAT_V4SF,
        VOID_FTYPE_PDOUBLE_V2DF, VOID_FTYPE_PDI_DI,
        VOID_FTYPE_PINT_INT, V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI,
        V8HI_FTYPE_V16QI, V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI,
        V4SI_FTYPE_V16QI, V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI,
        V4SI_FTYPE_V2DF, V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF,
        V4SF_FTYPE_V4SI, V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI,
        V2DI_FTYPE_V16QI, V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI,
        V2DF_FTYPE_V2DF, V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF,
        V2DF_FTYPE_V2SI, V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF,
        V2SI_FTYPE_V2SF, V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and
        V2SF_FTYPE_V2SI.
        (bdesc_sse_args): Renamed to ...
        (bdesc_args): This.  Add IX86_BUILTIN_LOADUPS,
        IX86_BUILTIN_STOREUPS, IX86_BUILTIN_MOVNTP,
        IX86_BUILTIN_MOVNTQ, IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
        IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
        IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF,
        IX86_BUILTIN_LOADUPD, IX86_BUILTIN_STOREUPD,
        IX86_BUILTIN_MOVNTPD, IX86_BUILTIN_MOVNTDQ,
        IX86_BUILTIN_MOVNTI, IX86_BUILTIN_LOADDQU,
        IX86_BUILTIN_LDDQU, IX86_BUILTIN_MOVNTDQA,
        IX86_BUILTIN_MOVNTSD, IX86_BUILTIN_MOVNTSS,
        and IX86_BUILTIN_FABSQ.
        (bdesc_1arg): Moved to ...
        (bdesc_args): Here.
        (ix86_init_mmx_sse_builtins): Updated.
        (ix86_expand_sse_operands_builtin): Renamed to ...
        (ix86_expand_args_builtin): This.  Updated to handle load
        and store builtins.
        (ix86_expand_store_builtin ): Removed.
        (ix86_expand_unop_builtin): Likewise.
        (ix86_expand_builtin): Updated.

Attachment: expand.txt
Description: Text document


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