Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Attempt to consolidate SSE and ARM NEON SIMD code for GCC/clang and Visual Studio #252

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Commits on May 10, 2022

  1. graphene-macros.h: Add macros for one-liner intrinsic calls

    This way, we can try to abstract uses of such calls between different compilers
    that we support instead of repeating them in the headers due to differences in
    compiler syntax/feature support.
    fanc999-1 committed May 10, 2022
    Configuration menu
    Copy the full SHA
    fbb5657 View commit details
    Browse the repository at this point in the history
  2. include/graphene-simd*.h: Reduce duplication in SSE one-liner calls

    Use the newly-added macros to abstract the one-liner intrinsic calls for
    GCC/CLang and Visual Studio for building the SSE code, to reduce duplication.
    It's not totally exhausive, but should cover quite a number of items.
    fanc999-1 committed May 10, 2022
    Configuration menu
    Copy the full SHA
    000be8a View commit details
    Browse the repository at this point in the history
  3. include/graphene-simd*.h: Reduce duplication in ARM NEON one-liner calls

    Use the newly-added macros to abstract one-liner intrinsic calls for GCC/CLang
    and Visual Studio for building the ARM NEON code, to reduce duplication.  It's
    not totally exhausive, but should cover quite a number of items.
    fanc999-1 committed May 10, 2022
    Configuration menu
    Copy the full SHA
    4bcde64 View commit details
    Browse the repository at this point in the history
  4. graphene-macros.h: Add macro to initialize SIMD data arrays

    These macros can be used to abstract initializing SIMD data arrays for the
    different compilers that we support, especially as we already require C99
    support for building and using Graphene.
    fanc999-1 committed May 10, 2022
    Configuration menu
    Copy the full SHA
    5a02723 View commit details
    Browse the repository at this point in the history
  5. graphene-simd4f.h: Simplify initializing SSE SIMD data arrays

    Use the macros that we just added to initialize the graphene_simd4f_t arrays
    with the floats that we pass into graphene_simd4f_init*() as applicable.  This
    especially simplifies the code for Visual Studio since we already require C99
    support for building and using Graphene, and we can reduce some code
    duplication.
    fanc999-1 committed May 10, 2022
    Configuration menu
    Copy the full SHA
    4fb484b View commit details
    Browse the repository at this point in the history

Commits on May 11, 2022

  1. graphene-simd4f.h: Typedef graphene_simd4f_uif_t only once

    We don't need identical typedefs separate for GCC/CLang and Visual Studio.  Put
    them in one place for all cases.
    fanc999-1 committed May 11, 2022
    Configuration menu
    Copy the full SHA
    b0442e1 View commit details
    Browse the repository at this point in the history
  2. graphene-simd4f.h: Consolidate graphene_simd4f_get_*() for SSE

    We can define them instead to call the respective graphene_simd4f_get()
    accordingly instead.
    fanc999-1 committed May 11, 2022
    Configuration menu
    Copy the full SHA
    87ed5e7 View commit details
    Browse the repository at this point in the history
  3. graphene-simd4f.h: Prefix MSVC implementation of SSE SIMD calls

    ...with graphene_msvc_ instead of just _.  This attempts to make things clearer
    to people.
    fanc999-1 committed May 11, 2022
    Configuration menu
    Copy the full SHA
    14e30be View commit details
    Browse the repository at this point in the history
  4. graphene-simd4f.h: Prefix MSVC implementation of ARM NEON SIMD calls

    ...with graphene_msvc_ instead of just _.  This attempts to make things clearer
    to people.
    fanc999-1 committed May 11, 2022
    Configuration menu
    Copy the full SHA
    1a7f1e3 View commit details
    Browse the repository at this point in the history