IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
AllBitsToZeroPack.h
Go to the documentation of this file.
1 // AllBitsToZeroPack.h:
3 // -------------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_LOGICAL_DETAIL_AVX512_ALLBITSTOZEROPACK_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_LOGICAL_DETAIL_AVX512_ALLBITSTOZEROPACK_H__
17 
22 
23 namespace ipsdk {
24 namespace simd {
25 namespace detail {
26 
29 
30 template <typename T>
33  T,
34  typename boost::enable_if_c<sizeof(T) == 1>::type>
35 {
36  static IPSDK_FORCEINLINE
38  act()
39  {
42  return out;
43  }
44 };
45 
46 template <typename T>
49  T,
50  typename boost::enable_if_c<sizeof(T) == 2>::type>
51 {
52  static IPSDK_FORCEINLINE
54  act()
55  {
58  out._val[1] = out._val[0];
59  return out;
60  }
61 };
62 
63 template <typename T>
66  T,
67  typename boost::enable_if_c<sizeof(T) == 4>::type>
68 {
69  static IPSDK_FORCEINLINE
71  act()
72  {
75  out._val[1] = out._val[0];
76  out._val[2] = out._val[0];
77  out._val[3] = out._val[0];
78  return out;
79  }
80 };
81 
82 template <typename T>
85  T,
86  typename boost::enable_if_c<sizeof(T) == 8>::type>
87 {
88  static IPSDK_FORCEINLINE
90  act()
91  {
94  out._val[1] = out._val[0];
95  out._val[2] = out._val[0];
96  out._val[3] = out._val[0];
97  out._val[4] = out._val[0];
98  out._val[5] = out._val[0];
99  out._val[6] = out._val[0];
100  out._val[7] = out._val[0];
101  return out;
102  }
103 };
104 
107 
108 } // end of namespace detail
109 } // end of namespace simd
110 } // end of namespace ipsdk
111 
112 #endif // __IPSDKUTIL_INSTRUCTIONSET_LOGICAL_DETAIL_AVX2_IFMASKIN1ELSEIN2PACK_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
(including fundation and byte and word instructions)
Definition: InstructionSetTypes.h:51
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Definition: AllBitsToZeroPack.h:30
Definition of import/export macro for library.
Definition: AllBitsToZeroReg.h:31