From a058a1f2230caa9bc4ac819fcdbe416cc867c0dc Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 24 Feb 2025 21:53:17 -0700 Subject: [PATCH] [TupleValues] Unroll a loop --- src/hb-open-type.hh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/hb-open-type.hh b/src/hb-open-type.hh index a1c5cd0d8..8b5c6d87b 100644 --- a/src/hb-open-type.hh +++ b/src/hb-open-type.hh @@ -1953,7 +1953,17 @@ struct TupleValues case 2: { const auto *pp = (const HBINT16 *) p; - for (unsigned j = 0; j < count; j++) + unsigned j = 0; +#ifndef HB_OPTIMIZE_SIZE + for (; j + 3 < count; j += 4) + { + *arrayZ++ += scaled ? *pp++ * scale : *pp++; + *arrayZ++ += scaled ? *pp++ * scale : *pp++; + *arrayZ++ += scaled ? *pp++ * scale : *pp++; + *arrayZ++ += scaled ? *pp++ * scale : *pp++; + } +#endif + for (; j < count; j++) *arrayZ++ += scaled ? *pp++ * scale : *pp++; } break;