diff options
| author | gingerBill <bill@gingerbill.org> | 2024-03-12 12:11:48 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2024-03-12 12:11:48 +0000 |
| commit | c7c68520577133d6332bd6df98c44e751b571c03 (patch) | |
| tree | 86c148c954f63da90da166548a63abc3b91351fe /src/llvm_backend_expr.cpp | |
| parent | 9a41a450e7b234e72591ab141e05a1dd7fd0cb30 (diff) | |
Support swizzle selector syntax `.xyzw` for `#simd` vectors
Diffstat (limited to 'src/llvm_backend_expr.cpp')
| -rw-r--r-- | src/llvm_backend_expr.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/llvm_backend_expr.cpp b/src/llvm_backend_expr.cpp index 5bc961af2..98618798b 100644 --- a/src/llvm_backend_expr.cpp +++ b/src/llvm_backend_expr.cpp @@ -4655,7 +4655,7 @@ gb_internal lbAddr lb_build_addr_internal(lbProcedure *p, Ast *expr) { if (se->swizzle_count > 0) { Type *array_type = base_type(type_deref(tav.type)); - GB_ASSERT(array_type->kind == Type_Array); + GB_ASSERT(array_type->kind == Type_Array || array_type->kind == Type_SimdVector); u8 swizzle_count = se->swizzle_count; u8 swizzle_indices_raw = se->swizzle_indices; u8 swizzle_indices[4] = {}; @@ -4671,7 +4671,7 @@ gb_internal lbAddr lb_build_addr_internal(lbProcedure *p, Ast *expr) { a = lb_addr_get_ptr(p, addr); } - GB_ASSERT(is_type_array(expr->tav.type)); + GB_ASSERT(is_type_array(expr->tav.type) || is_type_simd_vector(expr->tav.type)); return lb_addr_swizzle(a, expr->tav.type, swizzle_count, swizzle_indices); } |