Skip to content

Commit 9863f62

Browse files
authored
Trying to avoid unused warnings in isa detection. (simdjson#846)
1 parent 7cd1f7d commit 9863f62

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

src/isadetection.h

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,6 @@ POSSIBILITY OF SUCH DAMAGE.
5656

5757
namespace simdjson {
5858

59-
namespace {
60-
// Can be found on Intel ISA Reference for CPUID
61-
constexpr uint32_t cpuid_avx2_bit = 1 << 5; ///< @private Bit 5 of EBX for EAX=0x7
62-
constexpr uint32_t cpuid_bmi1_bit = 1 << 3; ///< @private bit 3 of EBX for EAX=0x7
63-
constexpr uint32_t cpuid_bmi2_bit = 1 << 8; ///< @private bit 8 of EBX for EAX=0x7
64-
constexpr uint32_t cpuid_sse42_bit = 1 << 20; ///< @private bit 20 of ECX for EAX=0x1
65-
constexpr uint32_t cpuid_pclmulqdq_bit = 1 << 1; ///< @private bit 1 of ECX for EAX=0x1
6659

6760
enum instruction_set {
6861
DEFAULT = 0x0,
@@ -73,7 +66,6 @@ enum instruction_set {
7366
BMI1 = 0x20,
7467
BMI2 = 0x40
7568
};
76-
}
7769

7870
#if defined(__arm__) || defined(__aarch64__) // incl. armel, armhf, arm64
7971

@@ -91,7 +83,20 @@ static inline uint32_t detect_supported_architectures() {
9183

9284
#endif
9385

94-
#else // x86
86+
#elif defined(__x86_64__) || defined(_M_AMD64) // x64
87+
88+
89+
namespace {
90+
// Can be found on Intel ISA Reference for CPUID
91+
constexpr uint32_t cpuid_avx2_bit = 1 << 5; ///< @private Bit 5 of EBX for EAX=0x7
92+
constexpr uint32_t cpuid_bmi1_bit = 1 << 3; ///< @private bit 3 of EBX for EAX=0x7
93+
constexpr uint32_t cpuid_bmi2_bit = 1 << 8; ///< @private bit 8 of EBX for EAX=0x7
94+
constexpr uint32_t cpuid_sse42_bit = 1 << 20; ///< @private bit 20 of ECX for EAX=0x1
95+
constexpr uint32_t cpuid_pclmulqdq_bit = 1 << 1; ///< @private bit 1 of ECX for EAX=0x1
96+
}
97+
98+
99+
95100
static inline void cpuid(uint32_t *eax, uint32_t *ebx, uint32_t *ecx,
96101
uint32_t *edx) {
97102
#if defined(_MSC_VER)
@@ -147,6 +152,13 @@ static inline uint32_t detect_supported_architectures() {
147152

148153
return host_isa;
149154
}
155+
#else // fallback
156+
157+
158+
static inline uint32_t detect_supported_architectures() {
159+
return instruction_set::DEFAULT;
160+
}
161+
150162

151163
#endif // end SIMD extension detection code
152164

0 commit comments

Comments
 (0)