Changeset 2123 for trunk/lib/idisa_cpp


Ignore:
Timestamp:
May 19, 2012, 3:48:54 PM (7 years ago)
Author:
cameron
Message:

Hand override load/store unaligned signatures for AVX

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/idisa_cpp/idisa_avx.cpp

    r1953 r2123  
    9292{
    9393public:
    94         static IDISA_ALWAYS_INLINE bitblock256_t load_unaligned(const float* arg1);
     94        static IDISA_ALWAYS_INLINE bitblock256_t load_unaligned(const bitblock256_t* arg1);
    9595        template <uint64_t sh> static IDISA_ALWAYS_INLINE bitblock256_t srli(bitblock256_t arg1);
    96         static IDISA_ALWAYS_INLINE void store_aligned(bitblock256_t arg1, float* arg2);
     96        static IDISA_ALWAYS_INLINE void store_aligned(bitblock256_t arg1, bitblock256_t* arg2);
    9797        static IDISA_ALWAYS_INLINE bool all(bitblock256_t arg1);
    9898        static IDISA_ALWAYS_INLINE bool any(bitblock256_t arg1);
    9999        static IDISA_ALWAYS_INLINE uint64_t popcount(bitblock256_t arg1);
    100100        template <uint64_t sh> static IDISA_ALWAYS_INLINE bitblock256_t slli(bitblock256_t arg1);
    101         static IDISA_ALWAYS_INLINE bitblock256_t load_aligned(const float* arg1);
    102         static IDISA_ALWAYS_INLINE void store_unaligned(bitblock256_t arg1, float* arg2);
     101        static IDISA_ALWAYS_INLINE bitblock256_t load_aligned(const bitblock256_t* arg1);
     102        static IDISA_ALWAYS_INLINE void store_unaligned(bitblock256_t arg1, bitblock256_t* arg2);
    103103};
    104104
     
    33093309
    33103310//The total number of operations is 1.0
    3311 IDISA_ALWAYS_INLINE bitblock256_t bitblock256::load_unaligned(const float* arg1)
     3311IDISA_ALWAYS_INLINE bitblock256_t bitblock256::load_unaligned(const bitblock256_t* arg1)
    33123312{
    33133313        return _mm256_loadu_ps((float*)(arg1));
     
    33213321
    33223322//The total number of operations is 1.0
    3323 IDISA_ALWAYS_INLINE void bitblock256::store_aligned(bitblock256_t arg1, float* arg2)
     3323IDISA_ALWAYS_INLINE void bitblock256::store_aligned(bitblock256_t arg1, bitblock256_t* arg2)
    33243324{
    33253325        _mm256_store_ps((float*)(arg2), arg1);
     
    33513351
    33523352//The total number of operations is 1.0
    3353 IDISA_ALWAYS_INLINE bitblock256_t bitblock256::load_aligned(const float* arg1)
     3353IDISA_ALWAYS_INLINE bitblock256_t bitblock256::load_aligned(const bitblock256_t* arg1)
    33543354{
    33553355        return _mm256_load_ps((float*)(arg1));
     
    33573357
    33583358//The total number of operations is 1.0
    3359 IDISA_ALWAYS_INLINE void bitblock256::store_unaligned(bitblock256_t arg1, float* arg2)
     3359IDISA_ALWAYS_INLINE void bitblock256::store_unaligned(bitblock256_t arg1, bitblock256_t* arg2)
    33603360{
    33613361        _mm256_storeu_ps((float*)(arg2), arg1);
Note: See TracChangeset for help on using the changeset viewer.