diff --git a/circle.yml b/circle.yml index 7d1b6942..8b2dadca 100644 --- a/circle.yml +++ b/circle.yml @@ -195,6 +195,15 @@ jobs: - build_and_test - benchmark + arm64: + environment: + BUILD_TYPE: Release + machine: + image: ubuntu-2004:202101-01 + resource_class: arm.medium + steps: + - build_and_test + no-exceptions: environment: BUILD_TYPE: Release @@ -289,3 +298,4 @@ workflows: - fuzzing - macos - cmake-min + - arm64 diff --git a/test/benchmarks/bench_div.cpp b/test/benchmarks/bench_div.cpp index ad4413f0..6b91f56d 100644 --- a/test/benchmarks/bench_div.cpp +++ b/test/benchmarks/bench_div.cpp @@ -52,11 +52,11 @@ inline uint64_t reciprocal_naive(uint64_t d) noexcept const auto u = uint128{~uint64_t{0}, ~d}; uint64_t v; -#if _MSC_VER - v = (u / d).lo; -#else +#if __x86_64__ uint64_t _; asm("divq %4" : "=d"(_), "=a"(v) : "d"(u[1]), "a"(u[0]), "g"(d)); +#else + v = (u / d)[0]; #endif return v; diff --git a/test/unittests/test_builtins.cpp b/test/unittests/test_builtins.cpp index 99221dbf..8ba7b3d7 100644 --- a/test/unittests/test_builtins.cpp +++ b/test/unittests/test_builtins.cpp @@ -132,7 +132,7 @@ TEST(builtins, is_constant_evaluated) auto is_constexpr_false = is_constant_evaluated(); auto nonconstexpr_func_res = func(); -#if (defined(__clang__) && __clang_major__ >= 9) || (defined(__GNUC__) && __GNUC__ >= 9) || \ +#if (defined(__clang__) && __clang_major__ >= 9) || (defined(__GNUC__) && __GNUC__ >= 10) || \ (defined(_MSC_VER) && _MSC_VER >= 1925) EXPECT_FALSE(is_constexpr_false); EXPECT_EQ(nonconstexpr_func_res, 2);