Ignore:
Timestamp:
Jan 21, 2012, 3:47:37 PM (7 years ago)
Author:
cameron
Message:

signmask strategy using packss

File:
1 edited

Legend:

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

    r1807 r1872  
    22932293}
    22942294
    2295 //The total number of operations is 16.0
     2295//The total number of operations is 8.0
    22962296template <> IDISA_ALWAYS_INLINE uint64_t hsimd256<16>::signmask(bitblock256_t arg1)
    22972297{
    2298         return hsimd256<(8)>::signmask(hsimd256<16>::packh(simd256<16>::constant<0>(), arg1));
    2299 }
    2300 
    2301 //The total number of operations is 29.0
     2298        return hsimd256<(8)>::signmask(hsimd256<16>::packss(simd256<16>::constant<0>(), arg1));
     2299}
     2300
     2301//The total number of operations is 13.0
    23022302template <> IDISA_ALWAYS_INLINE uint64_t hsimd256<32>::signmask(bitblock256_t arg1)
    23032303{
    2304         return hsimd256<(16)>::signmask(hsimd256<32>::packh(simd256<32>::constant<0>(), arg1));
    2305 }
    2306 
    2307 //The total number of operations is 120.0
     2304        return hsimd256<(16)>::signmask(hsimd256<32>::packss(simd256<32>::constant<0>(), arg1));
     2305}
     2306
     2307//The total number of operations is 104.0
    23082308template <> IDISA_ALWAYS_INLINE uint64_t hsimd256<64>::signmask(bitblock256_t arg1)
    23092309{
     
    23112311}
    23122312
    2313 //The total number of operations is 264.666666667
     2313//The total number of operations is 248.666666667
    23142314template <> IDISA_ALWAYS_INLINE uint64_t hsimd256<128>::signmask(bitblock256_t arg1)
    23152315{
     
    23172317}
    23182318
    2319 //The total number of operations is 282.166666667
     2319//The total number of operations is 266.166666667
    23202320template <> IDISA_ALWAYS_INLINE uint64_t hsimd256<256>::signmask(bitblock256_t arg1)
    23212321{
Note: See TracChangeset for help on using the changeset viewer.