From 146a08dabdf96dd3352876c2115091ab2e98fa98 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Sat, 22 Aug 2020 20:44:55 -0700 Subject: [PATCH] ircd::simd: Fix static emission of traits and related templates. --- include/ircd/simd/popcnt.h | 2 ++ include/ircd/simd/traits.h | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/include/ircd/simd/popcnt.h b/include/ircd/simd/popcnt.h index 8217ca5ee..25f99e2d1 100644 --- a/include/ircd/simd/popcnt.h +++ b/include/ircd/simd/popcnt.h @@ -40,6 +40,7 @@ noexcept /// Convenience template. Extends a bool value where the lsb is 1 or 0 into a /// mask value like the result of vector comparisons. template +[[gnu::always_inline]] inline T ircd::simd::boolmask(const T a) noexcept @@ -51,6 +52,7 @@ noexcept /// sometimes one might need an actual value of 1 for accumulators or maybe /// some bool-type reason... template +[[gnu::always_inline]] inline T ircd::simd::popmask(const T a) noexcept diff --git a/include/ircd/simd/traits.h b/include/ircd/simd/traits.h index 6ad303cad..c4f017ebc 100644 --- a/include/ircd/simd/traits.h +++ b/include/ircd/simd/traits.h @@ -40,7 +40,8 @@ namespace ircd::simd /// Get number of lanes for vector type (the number after the x in the /// type name). template -constexpr size_t +[[gnu::always_inline]] +inline constexpr size_t ircd::simd::lanes() { constexpr size_t ret @@ -58,7 +59,8 @@ ircd::simd::lanes() /// Get the size of each lane; i.e the size of one integral element. template -constexpr size_t +[[gnu::always_inline]] +inline constexpr size_t ircd::simd::sizeof_lane() { constexpr size_t ret