MCPcopy Create free account
hub / github.com/FastLED/FastLED / benchU16x16_4

Function benchU16x16_4

examples/AutoResearch/AutoResearchSimd.h:1209–1223  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1207// Helper: time 4-wide scalar u16x16 with a binary op
1208template <typename Op>
1209inline int64_t benchU16x16_4(int iters, Op op) {
1210 fl::u16x16 a0(1.5f), a1(2.3f), a2(0.7f), a3(3.1f);
1211 fl::u16x16 b0(0.5f), b1(1.2f), b2(2.0f), b3(0.9f);
1212 fl::u16x16 bump = fl::u16x16::from_raw(1);
1213 uint32_t t0 = micros();
1214 for (int i = 0; i < iters; i++) {
1215 a0 = op(a0, b0); a1 = op(a1, b1);
1216 a2 = op(a2, b2); a3 = op(a3, b3);
1217 b0 = a0 + bump; b1 = a1 + bump;
1218 b2 = a2 + bump; b3 = a3 + bump;
1219 }
1220 uint32_t t1 = micros();
1221 g_bench_sink = static_cast<uint32_t>(a0.raw());
1222 return static_cast<int64_t>(t1 - t0);
1223}
1224
1225struct OpDivFloat {
1226 float operator()(float a, float b) const { return a / b; }

Callers 1

runMultiplyBenchmarkFunction · 0.85

Calls 2

microsFunction · 0.50
rawMethod · 0.45

Tested by

no test coverage detected