Improve vector to integer transmute LLVM IR

This commit is contained in:
gingerBill
2026-05-19 18:32:05 +01:00
parent f231ef0596
commit c66de5ee3c

View File

@@ -287,8 +287,12 @@ gb_internal lbValue lb_emit_transmute(lbProcedure *p, lbValue value, Type *t) {
}
bool is_simd_vector_bitcastable = false;
if (is_type_simd_vector(src) && is_type_simd_vector(dst)) {
if (!is_type_internally_pointer_like(src->SimdVector.elem) && !is_type_internally_pointer_like(dst->SimdVector.elem)) {
if (is_type_simd_vector(src)) {
if (is_type_simd_vector(dst)) {
if (!is_type_internally_pointer_like(src->SimdVector.elem) && !is_type_internally_pointer_like(dst->SimdVector.elem)) {
is_simd_vector_bitcastable = true;
}
} else if (is_type_integer(dst) && is_type_endian_platform(dst)) {
is_simd_vector_bitcastable = true;
}
}