34 for (
i = 0;
i < tail_idx;
i +=
sizeof(
Vector8))
42 for (;
i < nelem;
i++)
66 for (
i = 0;
i < tail_idx;
i +=
sizeof(
Vector8))
74 for (;
i < nelem;
i++)
101 const Vector32 keys = vector32_broadcast(
key);
102 const uint32 nelem_per_vector =
sizeof(Vector32) /
sizeof(
uint32);
103 const uint32 nelem_per_iteration = 4 * nelem_per_vector;
106 const uint32 tail_idx = nelem & ~(nelem_per_iteration - 1);
108 #if defined(USE_ASSERT_CHECKING)
109 bool assert_result =
false;
112 for (
i = 0;
i < nelem;
i++)
116 assert_result =
true;
122 for (
i = 0;
i < tail_idx;
i += nelem_per_iteration)
137 vector32_load(&vals1, &base[
i]);
138 vector32_load(&vals2, &base[
i + nelem_per_vector]);
139 vector32_load(&vals3, &base[
i + nelem_per_vector * 2]);
140 vector32_load(&vals4, &base[
i + nelem_per_vector * 3]);
143 result1 = vector32_eq(keys, vals1);
144 result2 = vector32_eq(keys, vals2);
145 result3 = vector32_eq(keys, vals3);
146 result4 = vector32_eq(keys, vals4);
149 tmp1 = vector32_or(result1, result2);
150 tmp2 = vector32_or(result3, result4);
151 result = vector32_or(tmp1, tmp2);
154 if (vector32_is_highbit_set(result))
156 Assert(assert_result ==
true);
163 for (;
i < nelem;
i++)
168 Assert(assert_result ==
true);
175 Assert(assert_result ==
false);
Assert(fmt[strlen(fmt) - 1] !='\n')
static bool pg_lfind8_le(uint8 key, uint8 *base, uint32 nelem)
static bool pg_lfind8(uint8 key, uint8 *base, uint32 nelem)
static bool pg_lfind32(uint32 key, uint32 *base, uint32 nelem)
static bool vector8_has_le(const Vector8 v, const uint8 c)
static void vector8_load(Vector8 *v, const uint8 *s)
static bool vector8_has(const Vector8 v, const uint8 c)