mirror of
https://github.com/fastfloat/fast_float.git
synced 2026-01-01 03:12:18 +08:00
Compare commits
No commits in common. "3ae6d3c2b3e93ec48af7f4ce7d540518efc3b323" and "9e1d063628e6db7d4495859f74db75f6573c6892" have entirely different histories.
3ae6d3c2b3
...
9e1d063628
@ -130,8 +130,7 @@ struct event_collector {
|
|||||||
LinuxEvents<PERF_TYPE_HARDWARE> linux_events;
|
LinuxEvents<PERF_TYPE_HARDWARE> linux_events;
|
||||||
|
|
||||||
event_collector()
|
event_collector()
|
||||||
: linux_events(std::array<unsigned long long,
|
: linux_events(std::array<unsigned long long, 4>{
|
||||||
4 /*event_counter_types_size*/>{
|
|
||||||
PERF_COUNT_HW_CPU_CYCLES, PERF_COUNT_HW_INSTRUCTIONS,
|
PERF_COUNT_HW_CPU_CYCLES, PERF_COUNT_HW_INSTRUCTIONS,
|
||||||
PERF_COUNT_HW_BRANCH_INSTRUCTIONS, // Retired branch instructions
|
PERF_COUNT_HW_BRANCH_INSTRUCTIONS, // Retired branch instructions
|
||||||
PERF_COUNT_HW_BRANCH_MISSES}) {}
|
PERF_COUNT_HW_BRANCH_MISSES}) {}
|
||||||
|
|||||||
@ -70,7 +70,7 @@ read8_to_u64(UC const *chars) {
|
|||||||
|
|
||||||
#ifdef FASTFLOAT_SSE2
|
#ifdef FASTFLOAT_SSE2
|
||||||
|
|
||||||
fastfloat_really_inline uint64_t simd_read8_to_u64(__m128i const data) {
|
fastfloat_really_inline uint64_t simd_read8_to_u64(__m128i const &data) {
|
||||||
FASTFLOAT_SIMD_DISABLE_WARNINGS
|
FASTFLOAT_SIMD_DISABLE_WARNINGS
|
||||||
// _mm_packus_epi16 is SSE2+, converts 8×u16 → 8×u8
|
// _mm_packus_epi16 is SSE2+, converts 8×u16 → 8×u8
|
||||||
__m128i const packed = _mm_packus_epi16(data, data);
|
__m128i const packed = _mm_packus_epi16(data, data);
|
||||||
@ -94,7 +94,7 @@ fastfloat_really_inline uint64_t simd_read8_to_u64(char16_t const *chars) {
|
|||||||
|
|
||||||
#elif defined(FASTFLOAT_NEON)
|
#elif defined(FASTFLOAT_NEON)
|
||||||
|
|
||||||
fastfloat_really_inline uint64_t simd_read8_to_u64(uint16x8_t const data) {
|
fastfloat_really_inline uint64_t simd_read8_to_u64(uint16x8_t const &data) {
|
||||||
FASTFLOAT_SIMD_DISABLE_WARNINGS
|
FASTFLOAT_SIMD_DISABLE_WARNINGS
|
||||||
uint8x8_t utf8_packed = vmovn_u16(data);
|
uint8x8_t utf8_packed = vmovn_u16(data);
|
||||||
return vget_lane_u64(vreinterpret_u64_u8(utf8_packed), 0);
|
return vget_lane_u64(vreinterpret_u64_u8(utf8_packed), 0);
|
||||||
|
|||||||
@ -179,8 +179,7 @@ using parse_options = parse_options_t<char>;
|
|||||||
#if defined(__SSE2__) || (defined(FASTFLOAT_VISUAL_STUDIO) && \
|
#if defined(__SSE2__) || (defined(FASTFLOAT_VISUAL_STUDIO) && \
|
||||||
(defined(_M_AMD64) || defined(_M_X64) || \
|
(defined(_M_AMD64) || defined(_M_X64) || \
|
||||||
(defined(_M_IX86_FP) && _M_IX86_FP == 2)))
|
(defined(_M_IX86_FP) && _M_IX86_FP == 2)))
|
||||||
// try to fix error on x86 platform: disable SSE2 code
|
#define FASTFLOAT_SSE2 1
|
||||||
// #define FASTFLOAT_SSE2 1
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__aarch64__) || defined(_M_ARM64)
|
#if defined(__aarch64__) || defined(_M_ARM64)
|
||||||
|
|||||||
@ -69,7 +69,7 @@ template <typename T> std::string fHexAndDec(T v) {
|
|||||||
return ss.str();
|
return ss.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::string_view round_name(int const d) {
|
const std::string round_name(int const d) {
|
||||||
switch (d) {
|
switch (d) {
|
||||||
case FE_UPWARD:
|
case FE_UPWARD:
|
||||||
return "FE_UPWARD";
|
return "FE_UPWARD";
|
||||||
@ -107,9 +107,9 @@ TEST_CASE("system_info") {
|
|||||||
#endif
|
#endif
|
||||||
#ifdef FASTFLOAT_IS_BIG_ENDIAN
|
#ifdef FASTFLOAT_IS_BIG_ENDIAN
|
||||||
#if FASTFLOAT_IS_BIG_ENDIAN
|
#if FASTFLOAT_IS_BIG_ENDIAN
|
||||||
std::cout << "big endian" << std::endl;
|
printf("big endian\n");
|
||||||
#else
|
#else
|
||||||
std::cout << "little endian" << std::endl;
|
printf("little endian\n");
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#ifdef FASTFLOAT_32BIT
|
#ifdef FASTFLOAT_32BIT
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user