diff --git a/libgcc/config/aarch64/sve_std_find.c b/libgcc/config/aarch64/sve_std_find.c index 0caf1f4f6573673e280e9820deee7c4782545032..86ff4cb5a64a6871924d16ff0a31ee16c60d59cb 100644 --- a/libgcc/config/aarch64/sve_std_find.c +++ b/libgcc/config/aarch64/sve_std_find.c @@ -6,27 +6,33 @@ uint64_t *__sve_optimized_find_u64 (uint64_t *first, uint64_t *last, uint64_t const *value, uint8_t threshold) { - if (first + threshold > last) - goto Tail; + if (first + threshold > last) + { + goto Tail; + } - uint64_t m = svcntd (); - uint64_t n = (last - first) / m; - svbool_t flag_true = svptrue_b64 (); - for (; n-- > 0;) - { - svuint64_t v3 = svld1_u64 (flag_true, (uint64_t *)first); - svbool_t v4 = svcmpeq_n_u64 (flag_true, v3, (uint64_t *)value); - if (svptest_any (flag_true, v4)) - break; - first += m; - } + uint64_t m = svcntd (); + uint64_t n = (last - first) / m; + svbool_t TRUE = svptrue_b64 (); + for (; n-- > 0;) + { + svuint64_t v3 = svld1_u64 (TRUE, (uint64_t *)first); + svbool_t v4 = svcmpeq_n_u64 (TRUE, v3, (uint64_t)*value); + if (svptest_any (TRUE, v4)) + { + break; + } + first += m; + } Tail: - while (first < last) - { - if (*first == *value) - return first; - ++first; - } - return first; + while (first < last) + { + if (*first == *value) + { + return first; + } + ++first; + } + return last; }