summaryrefslogtreecommitdiff
path: root/indra/llmath/llsimdtypes.h
diff options
context:
space:
mode:
authorRye <rye@lindenlab.com>2025-02-02 03:40:21 -0500
committerRye <rye@lindenlab.com>2025-02-11 05:04:05 -0500
commit39a13e4088db6e4023d196de07765363ddce2c4f (patch)
tree612417d310bd8796424d34dc43a03ebdc9e39541 /indra/llmath/llsimdtypes.h
parent6fcd349f374710a3f4e0e0585bb6d7af86ebb66d (diff)
Restore math types to trivially copyable and add static asserts
Diffstat (limited to 'indra/llmath/llsimdtypes.h')
-rw-r--r--indra/llmath/llsimdtypes.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/indra/llmath/llsimdtypes.h b/indra/llmath/llsimdtypes.h
index a407f51029..6c4f55b0c0 100644
--- a/indra/llmath/llsimdtypes.h
+++ b/indra/llmath/llsimdtypes.h
@@ -36,7 +36,7 @@ typedef __m128 LLQuad;
class LLBool32
{
public:
- inline LLBool32() {}
+ inline LLBool32() = default;
inline LLBool32(int rhs) : m_bool(rhs) {}
inline LLBool32(unsigned int rhs) : m_bool(rhs) {}
inline LLBool32(bool rhs) { m_bool = static_cast<const int>(rhs); }
@@ -46,13 +46,15 @@ public:
inline operator bool() const { return static_cast<const bool&>(m_bool); }
private:
- int m_bool{ 0 };
+ int m_bool;
};
+static_assert(std::is_trivial<LLBool32>::value, "LLBool32 must be a standard layout type");
+
class LLSimdScalar
{
public:
- inline LLSimdScalar() {}
+ inline LLSimdScalar() = default;
inline LLSimdScalar(LLQuad q)
{
mQ = q;
@@ -100,7 +102,9 @@ public:
}
private:
- LLQuad mQ{};
+ LLQuad mQ;
};
+static_assert(std::is_trivial<LLSimdScalar>::value, "LLSimdScalar must be a standard layout type");
+
#endif //LL_SIMD_TYPES_H