mirror of
https://github.com/boostorg/endian.git
synced 2025-07-31 13:07:24 +02:00
Eliminate addition as not adding any useful information.
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
|
||||
//--------------------------------------------------------------------------------------//
|
||||
|
||||
#define BOOST_ENDIAN_NO_INTRINSICS
|
||||
//#define BOOST_ENDIAN_NO_INTRINSICS
|
||||
//#define BOOST_ENDIAN_LOG
|
||||
|
||||
#include <boost/endian/detail/disable_warnings.hpp>
|
||||
@@ -84,12 +84,11 @@ namespace
|
||||
void time(Function f)
|
||||
{
|
||||
T x(0);
|
||||
T y(0);
|
||||
EndianT z(0);
|
||||
EndianT y(0);
|
||||
boost::timer::cpu_timer t;
|
||||
for (uint64_t i = 0; i < n; ++i)
|
||||
{
|
||||
f(x, y, z);
|
||||
f(x, y);
|
||||
}
|
||||
t.stop();
|
||||
cout << "<td>" << t.format(places, "%t") << " s</td>";
|
||||
@@ -99,10 +98,9 @@ namespace
|
||||
{
|
||||
cout << "<tr><td>16-bit aligned big endian</td>";
|
||||
time<int16_t, big_int16_t>(user::return_x_big_int16);
|
||||
time<int16_t, big_int16_t>(user::return_x_plus_y_big_int16);
|
||||
time<int16_t, big_int16_t>(user::return_x_plus_y_value_big_int16);
|
||||
time<int16_t, big_int16_t>(user::return_x_plus_y_in_place_big_int16);
|
||||
time<int16_t, big_int16_t>(user::return_x_plus_z_big_int16);
|
||||
time<int16_t, big_int16_t>(user::return_x_value_big_int16);
|
||||
time<int16_t, big_int16_t>(user::return_x_in_place_big_int16);
|
||||
time<int16_t, big_int16_t>(user::return_x_big_int16);
|
||||
cout << "</tr>\n";
|
||||
}
|
||||
|
||||
@@ -110,10 +108,9 @@ namespace
|
||||
{
|
||||
cout << "<tr><td>16-bit aligned little endian</td>";
|
||||
time<int16_t, little_int16_t>(user::return_x_little_int16);
|
||||
time<int16_t, little_int16_t>(user::return_x_plus_y_little_int16);
|
||||
time<int16_t, little_int16_t>(user::return_x_plus_y_value_little_int16);
|
||||
time<int16_t, little_int16_t>(user::return_x_plus_y_in_place_little_int16);
|
||||
time<int16_t, little_int16_t>(user::return_x_plus_z_little_int16);
|
||||
time<int16_t, little_int16_t>(user::return_x_value_little_int16);
|
||||
time<int16_t, little_int16_t>(user::return_x_in_place_little_int16);
|
||||
time<int16_t, little_int16_t>(user::return_x_little_int16);
|
||||
cout << "</tr>\n";
|
||||
}
|
||||
|
||||
@@ -121,10 +118,9 @@ namespace
|
||||
{
|
||||
cout << "<tr><td>32-bit aligned big endian</td>";
|
||||
time<int32_t, big_int32_t>(user::return_x_big_int32);
|
||||
time<int32_t, big_int32_t>(user::return_x_plus_y_big_int32);
|
||||
time<int32_t, big_int32_t>(user::return_x_plus_y_value_big_int32);
|
||||
time<int32_t, big_int32_t>(user::return_x_plus_y_in_place_big_int32);
|
||||
time<int32_t, big_int32_t>(user::return_x_plus_z_big_int32);
|
||||
time<int32_t, big_int32_t>(user::return_x_value_big_int32);
|
||||
time<int32_t, big_int32_t>(user::return_x_in_place_big_int32);
|
||||
time<int32_t, big_int32_t>(user::return_x_big_int32);
|
||||
cout << "</tr>\n";
|
||||
}
|
||||
|
||||
@@ -132,10 +128,9 @@ namespace
|
||||
{
|
||||
cout << "<tr><td>32-bit aligned little endian</td>";
|
||||
time<int32_t, little_int32_t>(user::return_x_little_int32);
|
||||
time<int32_t, little_int32_t>(user::return_x_plus_y_little_int32);
|
||||
time<int32_t, little_int32_t>(user::return_x_plus_y_value_little_int32);
|
||||
time<int32_t, little_int32_t>(user::return_x_plus_y_in_place_little_int32);
|
||||
time<int32_t, little_int32_t>(user::return_x_plus_z_little_int32);
|
||||
time<int32_t, little_int32_t>(user::return_x_value_little_int32);
|
||||
time<int32_t, little_int32_t>(user::return_x_in_place_little_int32);
|
||||
time<int32_t, little_int32_t>(user::return_x_little_int32);
|
||||
cout << "</tr>\n";
|
||||
}
|
||||
|
||||
@@ -143,10 +138,9 @@ namespace
|
||||
{
|
||||
cout << "<tr><td>64-bit aligned big endian</td>";
|
||||
time<int64_t, big_int64_t>(user::return_x_big_int64);
|
||||
time<int64_t, big_int64_t>(user::return_x_plus_y_big_int64);
|
||||
time<int64_t, big_int64_t>(user::return_x_plus_y_value_big_int64);
|
||||
time<int64_t, big_int64_t>(user::return_x_plus_y_in_place_big_int64);
|
||||
time<int64_t, big_int64_t>(user::return_x_plus_z_big_int64);
|
||||
time<int64_t, big_int64_t>(user::return_x_value_big_int64);
|
||||
time<int64_t, big_int64_t>(user::return_x_in_place_big_int64);
|
||||
time<int64_t, big_int64_t>(user::return_x_big_int64);
|
||||
cout << "</tr>\n";
|
||||
}
|
||||
|
||||
@@ -154,10 +148,9 @@ namespace
|
||||
{
|
||||
cout << "<tr><td>64-bit aligned little endian</td>";
|
||||
time<int64_t, little_int64_t>(user::return_x_little_int64);
|
||||
time<int64_t, little_int64_t>(user::return_x_plus_y_little_int64);
|
||||
time<int64_t, little_int64_t>(user::return_x_plus_y_value_little_int64);
|
||||
time<int64_t, little_int64_t>(user::return_x_plus_y_in_place_little_int64);
|
||||
time<int64_t, little_int64_t>(user::return_x_plus_z_little_int64);
|
||||
time<int64_t, little_int64_t>(user::return_x_value_little_int64);
|
||||
time<int64_t, little_int64_t>(user::return_x_in_place_little_int64);
|
||||
time<int64_t, little_int64_t>(user::return_x_little_int64);
|
||||
cout << "</tr>\n";
|
||||
}
|
||||
|
||||
@@ -180,11 +173,10 @@ int cpp_main(int argc, char* argv[])
|
||||
<< ", Intrinsics: " BOOST_ENDIAN_INTRINSIC_MSG
|
||||
<< "</b></td></tr>\n"
|
||||
<< "<tr><td><b>Test Case</b></td>\n"
|
||||
"<td><b>x</b></td>\n"
|
||||
"<td><b>x+y</b></td>\n"
|
||||
"<td><b>x+v(y)</b></td>\n"
|
||||
"<td><b>x+in(y)</b></td>\n"
|
||||
"<td><b>x+z</b></td>\n"
|
||||
"<td><b>int<br>arg</b></td>\n"
|
||||
"<td><b>int<br>value(arg)</b></td>\n"
|
||||
"<td><b>int<br>in place(arg)</b></td>\n"
|
||||
"<td><b>Endian<br>arg</b></td>\n"
|
||||
"</tr>\n"
|
||||
;
|
||||
|
||||
|
@@ -18,37 +18,31 @@
|
||||
namespace user
|
||||
{
|
||||
|
||||
int16_t return_x_big_int16(int16_t x, int16_t, big_int16_t) BOOST_NOEXCEPT {return x;}
|
||||
int16_t return_x_little_int16(int16_t x, int16_t, little_int16_t) BOOST_NOEXCEPT {return x;}
|
||||
int16_t return_x_plus_y_big_int16(int16_t x, int16_t y, big_int16_t) BOOST_NOEXCEPT {return x+y;}
|
||||
int16_t return_x_plus_y_little_int16(int16_t x, int16_t y, little_int16_t) BOOST_NOEXCEPT {return x+y;}
|
||||
int16_t return_x_plus_y_value_big_int16(int16_t x, int16_t y, big_int16_t) BOOST_NOEXCEPT {return x+big_endian_value(y);}
|
||||
int16_t return_x_plus_y_value_little_int16(int16_t x, int16_t y, little_int16_t) BOOST_NOEXCEPT {return x+little_endian_value(y);}
|
||||
int16_t return_x_plus_y_in_place_big_int16(int16_t x, int16_t y, big_int16_t) BOOST_NOEXCEPT {big_endian(y);return x+y;}
|
||||
int16_t return_x_plus_y_in_place_little_int16(int16_t x, int16_t y, little_int16_t) BOOST_NOEXCEPT {little_endian(y);return x+y;}
|
||||
int16_t return_x_plus_z_big_int16(int16_t x, int16_t, big_int16_t z) BOOST_NOEXCEPT {return x+z;}
|
||||
int16_t return_x_plus_z_little_int16(int16_t x, int16_t, little_int16_t z) BOOST_NOEXCEPT {return x+z;}
|
||||
int16_t return_x_big_int16(int16_t x, big_int16_t) BOOST_NOEXCEPT {return x;}
|
||||
int16_t return_x_little_int16(int16_t x, little_int16_t) BOOST_NOEXCEPT {return x;}
|
||||
int16_t return_x_value_big_int16(int16_t x, big_int16_t) BOOST_NOEXCEPT {return big_endian_value(x);}
|
||||
int16_t return_x_value_little_int16(int16_t x, little_int16_t) BOOST_NOEXCEPT {return little_endian_value(x);}
|
||||
int16_t return_x_in_place_big_int16(int16_t x, big_int16_t) BOOST_NOEXCEPT {big_endian(x);return x;}
|
||||
int16_t return_x_in_place_little_int16(int16_t x, little_int16_t) BOOST_NOEXCEPT {little_endian(x);return x;}
|
||||
int16_t return_y_big_int16(int16_t x, big_int16_t y) BOOST_NOEXCEPT {return y;}
|
||||
int16_t return_y_little_int16(int16_t x, little_int16_t y) BOOST_NOEXCEPT {return y;}
|
||||
|
||||
int32_t return_x_big_int32(int32_t x, int32_t, big_int32_t) BOOST_NOEXCEPT {return x;}
|
||||
int32_t return_x_little_int32(int32_t x, int32_t, little_int32_t) BOOST_NOEXCEPT {return x;}
|
||||
int32_t return_x_plus_y_big_int32(int32_t x, int32_t y, big_int32_t) BOOST_NOEXCEPT {return x+y;}
|
||||
int32_t return_x_plus_y_little_int32(int32_t x, int32_t y, little_int32_t) BOOST_NOEXCEPT {return x+y;}
|
||||
int32_t return_x_plus_y_value_big_int32(int32_t x, int32_t y, big_int32_t) BOOST_NOEXCEPT {return x+big_endian_value(y);}
|
||||
int32_t return_x_plus_y_value_little_int32(int32_t x, int32_t y, little_int32_t) BOOST_NOEXCEPT {return x+little_endian_value(y);}
|
||||
int32_t return_x_plus_y_in_place_big_int32(int32_t x, int32_t y, big_int32_t) BOOST_NOEXCEPT {big_endian(y);return x+y;}
|
||||
int32_t return_x_plus_y_in_place_little_int32(int32_t x, int32_t y, little_int32_t) BOOST_NOEXCEPT {little_endian(y);return x+y;}
|
||||
int32_t return_x_plus_z_big_int32(int32_t x, int32_t, big_int32_t z) BOOST_NOEXCEPT {return x+z;}
|
||||
int32_t return_x_plus_z_little_int32(int32_t x, int32_t, little_int32_t z) BOOST_NOEXCEPT {return x+z;}
|
||||
int32_t return_x_big_int32(int32_t x, big_int32_t) BOOST_NOEXCEPT {return x;}
|
||||
int32_t return_x_little_int32(int32_t x, little_int32_t) BOOST_NOEXCEPT {return x;}
|
||||
int32_t return_x_value_big_int32(int32_t x, big_int32_t) BOOST_NOEXCEPT {return big_endian_value(x);}
|
||||
int32_t return_x_value_little_int32(int32_t x, little_int32_t) BOOST_NOEXCEPT {return little_endian_value(x);}
|
||||
int32_t return_x_in_place_big_int32(int32_t x, big_int32_t) BOOST_NOEXCEPT {big_endian(x);return x;}
|
||||
int32_t return_x_in_place_little_int32(int32_t x, little_int32_t) BOOST_NOEXCEPT {little_endian(x);return x;}
|
||||
int32_t return_y_big_int32(int32_t x, big_int32_t y) BOOST_NOEXCEPT {return y;}
|
||||
int32_t return_y_little_int32(int32_t x, little_int32_t y) BOOST_NOEXCEPT {return y;}
|
||||
|
||||
int64_t return_x_big_int64(int64_t x, int64_t, big_int64_t) BOOST_NOEXCEPT {return x;}
|
||||
int64_t return_x_little_int64(int64_t x, int64_t, little_int64_t) BOOST_NOEXCEPT {return x;}
|
||||
int64_t return_x_plus_y_big_int64(int64_t x, int64_t y, big_int64_t) BOOST_NOEXCEPT {return x+y;}
|
||||
int64_t return_x_plus_y_little_int64(int64_t x, int64_t y, little_int64_t) BOOST_NOEXCEPT {return x+y;}
|
||||
int64_t return_x_plus_y_value_big_int64(int64_t x, int64_t y, big_int64_t) BOOST_NOEXCEPT {return x+big_endian_value(y);}
|
||||
int64_t return_x_plus_y_value_little_int64(int64_t x, int64_t y, little_int64_t) BOOST_NOEXCEPT {return x+little_endian_value(y);}
|
||||
int64_t return_x_plus_y_in_place_big_int64(int64_t x, int64_t y, big_int64_t) BOOST_NOEXCEPT {big_endian(y);return x+y;}
|
||||
int64_t return_x_plus_y_in_place_little_int64(int64_t x, int64_t y, little_int64_t) BOOST_NOEXCEPT {little_endian(y);return x+y;}
|
||||
int64_t return_x_plus_z_big_int64(int64_t x, int64_t, big_int64_t z) BOOST_NOEXCEPT {return x+z;}
|
||||
int64_t return_x_plus_z_little_int64(int64_t x, int64_t, little_int64_t z) BOOST_NOEXCEPT {return x+z;}
|
||||
int64_t return_x_big_int64(int64_t x, big_int64_t) BOOST_NOEXCEPT {return x;}
|
||||
int64_t return_x_little_int64(int64_t x, little_int64_t) BOOST_NOEXCEPT {return x;}
|
||||
int64_t return_x_value_big_int64(int64_t x, big_int64_t) BOOST_NOEXCEPT {return big_endian_value(x);}
|
||||
int64_t return_x_value_little_int64(int64_t x, little_int64_t) BOOST_NOEXCEPT {return little_endian_value(x);}
|
||||
int64_t return_x_in_place_big_int64(int64_t x, big_int64_t) BOOST_NOEXCEPT {big_endian(x);return x;}
|
||||
int64_t return_x_in_place_little_int64(int64_t x, little_int64_t) BOOST_NOEXCEPT {little_endian(x);return x;}
|
||||
int64_t return_y_big_int64(int64_t x, big_int64_t y) BOOST_NOEXCEPT {return y;}
|
||||
int64_t return_y_little_int64(int64_t x, little_int64_t y) BOOST_NOEXCEPT {return y;}
|
||||
|
||||
}
|
||||
|
@@ -24,38 +24,32 @@ namespace user
|
||||
using namespace boost;
|
||||
using namespace boost::endian;
|
||||
|
||||
int16_t return_x_big_int16(int16_t x, int16_t y, big_int16_t z) BOOST_NOEXCEPT;
|
||||
int16_t return_x_little_int16(int16_t x, int16_t y, little_int16_t z) BOOST_NOEXCEPT;
|
||||
int16_t return_x_plus_y_big_int16(int16_t x, int16_t y, big_int16_t z) BOOST_NOEXCEPT;
|
||||
int16_t return_x_plus_y_little_int16(int16_t x, int16_t y, little_int16_t z) BOOST_NOEXCEPT;
|
||||
int16_t return_x_plus_y_value_big_int16(int16_t x, int16_t y, big_int16_t) BOOST_NOEXCEPT;
|
||||
int16_t return_x_plus_y_value_little_int16(int16_t x, int16_t y, little_int16_t z) BOOST_NOEXCEPT;
|
||||
int16_t return_x_plus_y_in_place_big_int16(int16_t x, int16_t y, big_int16_t z) BOOST_NOEXCEPT;
|
||||
int16_t return_x_plus_y_in_place_little_int16(int16_t x, int16_t y, little_int16_t z) BOOST_NOEXCEPT;
|
||||
int16_t return_x_plus_z_big_int16(int16_t x, int16_t y, big_int16_t z) BOOST_NOEXCEPT;
|
||||
int16_t return_x_plus_z_little_int16(int16_t x, int16_t y, little_int16_t z) BOOST_NOEXCEPT;
|
||||
int16_t return_x_big_int16(int16_t x, big_int16_t y) BOOST_NOEXCEPT;
|
||||
int16_t return_x_little_int16(int16_t x, little_int16_t y) BOOST_NOEXCEPT;
|
||||
int16_t return_x_value_big_int16(int16_t x, big_int16_t) BOOST_NOEXCEPT;
|
||||
int16_t return_x_value_little_int16(int16_t x, little_int16_t y) BOOST_NOEXCEPT;
|
||||
int16_t return_x_in_place_big_int16(int16_t x, big_int16_t y) BOOST_NOEXCEPT;
|
||||
int16_t return_x_in_place_little_int16(int16_t x, little_int16_t y) BOOST_NOEXCEPT;
|
||||
int16_t return_y_big_int16(int16_t x, big_int16_t y) BOOST_NOEXCEPT;
|
||||
int16_t return_y_little_int16(int16_t x, little_int16_t y) BOOST_NOEXCEPT;
|
||||
|
||||
int32_t return_x_big_int32(int32_t x, int32_t y, big_int32_t z) BOOST_NOEXCEPT;
|
||||
int32_t return_x_little_int32(int32_t x, int32_t y, little_int32_t z) BOOST_NOEXCEPT;
|
||||
int32_t return_x_plus_y_big_int32(int32_t x, int32_t y, big_int32_t z) BOOST_NOEXCEPT;
|
||||
int32_t return_x_plus_y_little_int32(int32_t x, int32_t y, little_int32_t z) BOOST_NOEXCEPT;
|
||||
int32_t return_x_plus_y_value_big_int32(int32_t x, int32_t y, big_int32_t) BOOST_NOEXCEPT;
|
||||
int32_t return_x_plus_y_value_little_int32(int32_t x, int32_t y, little_int32_t z) BOOST_NOEXCEPT;
|
||||
int32_t return_x_plus_y_in_place_big_int32(int32_t x, int32_t y, big_int32_t z) BOOST_NOEXCEPT;
|
||||
int32_t return_x_plus_y_in_place_little_int32(int32_t x, int32_t y, little_int32_t z) BOOST_NOEXCEPT;
|
||||
int32_t return_x_plus_z_big_int32(int32_t x, int32_t y, big_int32_t z) BOOST_NOEXCEPT;
|
||||
int32_t return_x_plus_z_little_int32(int32_t x, int32_t y, little_int32_t z) BOOST_NOEXCEPT;
|
||||
int32_t return_x_big_int32(int32_t x, big_int32_t y) BOOST_NOEXCEPT;
|
||||
int32_t return_x_little_int32(int32_t x, little_int32_t y) BOOST_NOEXCEPT;
|
||||
int32_t return_x_value_big_int32(int32_t x, big_int32_t) BOOST_NOEXCEPT;
|
||||
int32_t return_x_value_little_int32(int32_t x, little_int32_t y) BOOST_NOEXCEPT;
|
||||
int32_t return_x_in_place_big_int32(int32_t x, big_int32_t y) BOOST_NOEXCEPT;
|
||||
int32_t return_x_in_place_little_int32(int32_t x, little_int32_t y) BOOST_NOEXCEPT;
|
||||
int32_t return_y_big_int32(int32_t x, big_int32_t y) BOOST_NOEXCEPT;
|
||||
int32_t return_y_little_int32(int32_t x, little_int32_t y) BOOST_NOEXCEPT;
|
||||
|
||||
int64_t return_x_big_int64(int64_t x, int64_t y, big_int64_t z) BOOST_NOEXCEPT;
|
||||
int64_t return_x_little_int64(int64_t x, int64_t y, little_int64_t z) BOOST_NOEXCEPT;
|
||||
int64_t return_x_plus_y_big_int64(int64_t x, int64_t y, big_int64_t z) BOOST_NOEXCEPT;
|
||||
int64_t return_x_plus_y_little_int64(int64_t x, int64_t y, little_int64_t z) BOOST_NOEXCEPT;
|
||||
int64_t return_x_plus_y_value_big_int64(int64_t x, int64_t y, big_int64_t) BOOST_NOEXCEPT;
|
||||
int64_t return_x_plus_y_value_little_int64(int64_t x, int64_t y, little_int64_t z) BOOST_NOEXCEPT;
|
||||
int64_t return_x_plus_y_in_place_big_int64(int64_t x, int64_t y, big_int64_t z) BOOST_NOEXCEPT;
|
||||
int64_t return_x_plus_y_in_place_little_int64(int64_t x, int64_t y, little_int64_t z) BOOST_NOEXCEPT;
|
||||
int64_t return_x_plus_z_big_int64(int64_t x, int64_t y, big_int64_t z) BOOST_NOEXCEPT;
|
||||
int64_t return_x_plus_z_little_int64(int64_t x, int64_t y, little_int64_t z) BOOST_NOEXCEPT;
|
||||
int64_t return_x_big_int64(int64_t x, big_int64_t y) BOOST_NOEXCEPT;
|
||||
int64_t return_x_little_int64(int64_t x, little_int64_t y) BOOST_NOEXCEPT;
|
||||
int64_t return_x_value_big_int64(int64_t x, big_int64_t) BOOST_NOEXCEPT;
|
||||
int64_t return_x_value_little_int64(int64_t x, little_int64_t y) BOOST_NOEXCEPT;
|
||||
int64_t return_x_in_place_big_int64(int64_t x, big_int64_t y) BOOST_NOEXCEPT;
|
||||
int64_t return_x_in_place_little_int64(int64_t x, little_int64_t y) BOOST_NOEXCEPT;
|
||||
int64_t return_y_big_int64(int64_t x, big_int64_t y) BOOST_NOEXCEPT;
|
||||
int64_t return_y_little_int64(int64_t x, little_int64_t y) BOOST_NOEXCEPT;
|
||||
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user