Skip to content

Commit bf53427

Browse files
committed
Fix bugs on SIMD flags and unit test
1 parent 5c480d6 commit bf53427

File tree

3 files changed

+19
-23
lines changed

3 files changed

+19
-23
lines changed

paddle/utils/CpuId.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,6 @@ limitations under the License. */
2828

2929
namespace paddle {
3030

31-
/// init simd instance
32-
static InitFunction __init_simd_flags(
33-
[]{ SIMDFlags::instance(); }, std::numeric_limits<int>::max());
34-
3531
SIMDFlags::SIMDFlags() {
3632
unsigned int cpuInfo[4];
3733
// CPUID: https://en.wikipedia.org/wiki/CPUID

paddle/utils/CpuId.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,17 @@ class SIMDFlags final {
2424

2525
static SIMDFlags* instance();
2626

27-
inline bool isSSE() { return simd_flags_ & SIMD_SSE; }
28-
inline bool isSSE2() { return simd_flags_ & SIMD_SSE2; }
29-
inline bool isSSE3() { return simd_flags_ & SIMD_SSE3; }
30-
inline bool isSSSE3() { return simd_flags_ & SIMD_SSSE3; }
31-
inline bool isSSE41() { return simd_flags_ & SIMD_SSE41; }
32-
inline bool isSSE42() { return simd_flags_ & SIMD_SSE42; }
33-
inline bool isFMA3() { return simd_flags_ & SIMD_FMA3; }
34-
inline bool isFMA4() { return simd_flags_ & SIMD_FMA4; }
35-
inline bool isAVX() { return simd_flags_ & SIMD_AVX; }
36-
inline bool isAVX2() { return simd_flags_ & SIMD_AVX2; }
37-
inline bool isAVX512() { return simd_flags_ & SIMD_AVX512;}
27+
inline bool isSSE() const { return simd_flags_ & SIMD_SSE; }
28+
inline bool isSSE2() const { return simd_flags_ & SIMD_SSE2; }
29+
inline bool isSSE3() const { return simd_flags_ & SIMD_SSE3; }
30+
inline bool isSSSE3() const { return simd_flags_ & SIMD_SSSE3; }
31+
inline bool isSSE41() const { return simd_flags_ & SIMD_SSE41; }
32+
inline bool isSSE42() const { return simd_flags_ & SIMD_SSE42; }
33+
inline bool isFMA3() const { return simd_flags_ & SIMD_FMA3; }
34+
inline bool isFMA4() const { return simd_flags_ & SIMD_FMA4; }
35+
inline bool isAVX() const { return simd_flags_ & SIMD_AVX; }
36+
inline bool isAVX2() const { return simd_flags_ & SIMD_AVX2; }
37+
inline bool isAVX512()const { return simd_flags_ & SIMD_AVX512;}
3838

3939
private:
4040
enum simd_t {

paddle/utils/tests/test_SIMDFlags.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ using namespace paddle; // NOLINT
2020

2121
TEST(SIMDFlags, gccTest) {
2222
#if (defined(__GNUC__) || defined(__GNUG__)) && !(defined(__clang__))
23-
CHECK(__builtin_cpu_supports("sse") == HAS_SSE);
24-
CHECK(__builtin_cpu_supports("sse2") == HAS_SSE2);
25-
CHECK(__builtin_cpu_supports("sse3") == HAS_SSE3);
26-
CHECK(__builtin_cpu_supports("ssse3") == HAS_SSSE3);
27-
CHECK(__builtin_cpu_supports("sse4.1")== HAS_SSE41);
28-
CHECK(__builtin_cpu_supports("sse4.2")== HAS_SSE42);
29-
CHECK(__builtin_cpu_supports("avx") == HAS_AVX);
30-
CHECK(__builtin_cpu_supports("avx2") == HAS_AVX2);
23+
CHECK(!__builtin_cpu_supports("sse") != HAS_SSE);
24+
CHECK(!__builtin_cpu_supports("sse2") != HAS_SSE2);
25+
CHECK(!__builtin_cpu_supports("sse3") != HAS_SSE3);
26+
CHECK(!__builtin_cpu_supports("ssse3") != HAS_SSSE3);
27+
CHECK(!__builtin_cpu_supports("sse4.1")!= HAS_SSE41);
28+
CHECK(!__builtin_cpu_supports("sse4.2")!= HAS_SSE42);
29+
CHECK(!__builtin_cpu_supports("avx") != HAS_AVX);
30+
CHECK(!__builtin_cpu_supports("avx2") != HAS_AVX2);
3131
#endif
3232
}
3333

0 commit comments

Comments
 (0)