Ignore:
Timestamp:
Oct 24, 2011, 1:20:43 PM (8 years ago)
Author:
huah
Message:

fixed the bitblock::load/store for AVX; added testing modules for bitblock::srl/sll/srli/slli

File:
1 edited

Legend:

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

    r1580 r1584  
    8989public:
    9090        static IDISA_ALWAYS_INLINE bitblock128_t sll(bitblock128_t arg1, bitblock128_t arg2);
    91         static IDISA_ALWAYS_INLINE bitblock128_t load_unaligned(bitblock128_t* arg1);
     91        static IDISA_ALWAYS_INLINE bitblock128_t load_unaligned(float const* arg1);
    9292        template <uint64_t sh> static IDISA_ALWAYS_INLINE bitblock128_t srli(bitblock128_t arg1);
    9393        static IDISA_ALWAYS_INLINE bitblock128_t srl(bitblock128_t arg1, bitblock128_t arg2);
    94         static IDISA_ALWAYS_INLINE void store_aligned(bitblock128_t* arg1, bitblock128_t arg2);
     94        static IDISA_ALWAYS_INLINE void store_aligned(float* arg1, bitblock128_t arg2);
    9595        static IDISA_ALWAYS_INLINE bool all(bitblock128_t arg1);
    9696        static IDISA_ALWAYS_INLINE bool any(bitblock128_t arg1);
    9797        static IDISA_ALWAYS_INLINE uint64_t popcount(bitblock128_t arg1);
    9898        template <uint64_t sh> static IDISA_ALWAYS_INLINE bitblock128_t slli(bitblock128_t arg1);
    99         static IDISA_ALWAYS_INLINE bitblock128_t load_aligned(bitblock128_t* arg1);
    100         static IDISA_ALWAYS_INLINE void store_unaligned(bitblock128_t* arg1, bitblock128_t arg2);
     99        static IDISA_ALWAYS_INLINE bitblock128_t load_aligned(float const* arg1);
     100        static IDISA_ALWAYS_INLINE void store_unaligned(float* arg1, bitblock128_t arg2);
    101101};
    102102
     
    29862986
    29872987//The total number of operations is 1
    2988 IDISA_ALWAYS_INLINE bitblock128_t bitblock128::load_unaligned(bitblock128_t* arg1)
     2988IDISA_ALWAYS_INLINE bitblock128_t bitblock128::load_unaligned(float const* arg1)
    29892989{
    29902990        return _mm_loadu_si128((bitblock128_t*)(arg1));
     
    29982998
    29992999//The total number of operations is 1
    3000 IDISA_ALWAYS_INLINE void bitblock128::store_aligned(bitblock128_t* arg1, bitblock128_t arg2)
     3000IDISA_ALWAYS_INLINE void bitblock128::store_aligned(float* arg1, bitblock128_t arg2)
    30013001{
    30023002        _mm_store_si128((bitblock128_t*)(arg1), arg2);
     
    30343034
    30353035//The total number of operations is 1
    3036 IDISA_ALWAYS_INLINE bitblock128_t bitblock128::load_aligned(bitblock128_t* arg1)
     3036IDISA_ALWAYS_INLINE bitblock128_t bitblock128::load_aligned(float const* arg1)
    30373037{
    30383038        return _mm_load_si128((bitblock128_t*)(arg1));
     
    30403040
    30413041//The total number of operations is 1
    3042 IDISA_ALWAYS_INLINE void bitblock128::store_unaligned(bitblock128_t* arg1, bitblock128_t arg2)
     3042IDISA_ALWAYS_INLINE void bitblock128::store_unaligned(float* arg1, bitblock128_t arg2)
    30433043{
    30443044        _mm_storeu_si128((bitblock128_t*)(arg1), arg2);
Note: See TracChangeset for help on using the changeset viewer.