summaryrefslogtreecommitdiff
path: root/1/part2_fast.c
diff options
context:
space:
mode:
Diffstat (limited to '1/part2_fast.c')
-rw-r--r--1/part2_fast.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/1/part2_fast.c b/1/part2_fast.c
index 67cd6c5..f4f6f3a 100644
--- a/1/part2_fast.c
+++ b/1/part2_fast.c
@@ -16,14 +16,8 @@ int repair_avx_inner(int i, const int *arr, __m256i search)
for (int k = 0; k < INPUT_LEN; k += 8) {
__m256i new = _mm256_loadu_si256((__m256i *)(&arr[k]));
int mask = _mm256_movemask_epi8(_mm256_cmpeq_epi32(new, cmp));
- if (mask == 0) {
- continue;
- }
-
- for (int l = 0; l < 8; l++) {
- if (mask & (0xf << (l * 4))) {
- return arr[k + l];
- }
+ if (mask != 0) {
+ return _mm256_extract_epi32(cmp, 0);
}
}