Avoid forward_as_tuple for comparing EAXVECTORs
commita81d399130931328dc7bdf787c667ad02b1b213a
authorChris Robinson <chris.kcat@gmail.com>
Tue, 24 Sep 2024 20:59:01 +0000 (24 13:59 -0700)
committerChris Robinson <chris.kcat@gmail.com>
Tue, 24 Sep 2024 22:28:34 +0000 (24 15:28 -0700)
tree546620a42383c40a2436b338e95b2da4070b2eee
parentdf443279945b1ec68e90a5a30ebe1897241c8a67
Avoid forward_as_tuple for comparing EAXVECTORs

Some compilers don't seem to be able to optimize this properly, amd will put a
list of addresses on the stack for each member of both operands, then load the
value from each address individually to compare. It doesn't seem to realize
what it's comparing to do it directly, creating a bloated. less efficient
comparison that the compiler will give up on trying to inline.

This at least prevents the inline failure warning, but the individual EAX
effect structs still use it. C++20 should allow creating default comparison
operators by auto-generating member-wise comparisons, so unless it's a
performance bottleneck, it can be fixed later.
al/eax/api.h