}
-#define HASH(hash, data) _mesa_fnv32_1a_accumulate((hash), (data))
+#define HASH(hash, data) XXH32(&(data), sizeof(data), hash)
static uint32_t
hash_src(uint32_t hash, const nir_src *src)
case nir_deref_type_cast:
hash = HASH(hash, instr->cast.ptr_stride);
+ hash = HASH(hash, instr->cast.align_mul);
+ hash = HASH(hash, instr->cast.align_offset);
break;
case nir_deref_type_var:
}
} else {
unsigned size = instr->def.num_components * sizeof(*instr->value);
- hash = _mesa_fnv32_1a_accumulate_block(hash, instr->value, size);
+ hash = XXH32(instr->value, size, hash);
}
return hash;
hash = HASH(hash, instr->dest.ssa.bit_size);
}
- hash = _mesa_fnv32_1a_accumulate_block(hash, instr->const_index,
- info->num_indices
- * sizeof(instr->const_index[0]));
+ hash = XXH32(instr->const_index, info->num_indices * sizeof(instr->const_index[0]), hash);
return hash;
}
hash_instr(const void *data)
{
const nir_instr *instr = data;
- uint32_t hash = _mesa_fnv32_1a_offset_bias;
+ uint32_t hash = 0;
switch (instr->type) {
case nir_instr_type_alu:
break;
case nir_deref_type_cast:
- if (deref1->cast.ptr_stride != deref2->cast.ptr_stride)
+ if (deref1->cast.ptr_stride != deref2->cast.ptr_stride ||
+ deref1->cast.align_mul != deref2->cast.align_mul ||
+ deref1->cast.align_offset != deref2->cast.align_offset)
return false;
break;