Commit Graph

48 Commits

Author SHA1 Message Date
gingerBill
549a383cf0 Merge branch 'master' into new-matrix-type 2021-10-26 12:53:47 +01:00
gingerBill
72cc92dc5c Add llvm_get_inline_asm for future compatibility 2021-10-26 11:44:25 +01:00
gingerBill
a440d8d812 Improve use of vector muladd operations 2021-10-25 13:10:56 +01:00
gingerBill
d62c701a43 Improve matrix code generation for all supported platforms
Through assembly optimization
2021-10-25 01:03:16 +01:00
gingerBill
306bdf8869 Update alignment rules for matrix types as a compromise to keep zero padding 2021-10-25 00:46:50 +01:00
gingerBill
b4df51e483 Merge branch 'master' into new-matrix-type 2021-10-23 19:24:47 +01:00
gingerBill
c9effb9b9f Correct ternary if expression type determination 2021-10-22 14:37:27 +01:00
gingerBill
ef73a284e3 Fix check_remove_expr_info 2021-10-22 14:12:48 +01:00
gingerBill
48de1a01a9 Correct update propagation of type for ternary if expressions 2021-10-22 13:14:19 +01:00
gingerBill
209684d5a4 Merge branch 'master' into new-matrix-type 2021-10-21 11:48:00 +01:00
gingerBill
1405420935 Support TenraryIfAddr in lb_build_addr 2021-10-21 11:46:32 +01:00
gingerBill
48d277a3c4 Allow conversions between matrices of the same element count 2021-10-21 01:34:39 +01:00
gingerBill
e0b9475378 Allow casting between square matrices of the same element type 2021-10-21 01:14:44 +01:00
gingerBill
d67d7168e2 Allow scalars with matrices 2021-10-21 00:04:22 +01:00
gingerBill
30c141ceb9 Minor clean up for lb_matrix_trimmed_vector_mask 2021-10-20 15:36:24 +01:00
gingerBill
d3abc1a2b4 Add matrix_flatten - matrix[R, C]T -> [R*C]T 2021-10-20 15:33:23 +01:00
gingerBill
465c87bd5a Make transpose use SIMD if possible 2021-10-20 15:22:02 +01:00
gingerBill
d0d9a3a4f4 Make lb_emit_matrix_mul SIMD if possible 2021-10-20 14:49:20 +01:00
gingerBill
9e43072113 Make lb_emit_vector_mul_matrix use SIMD if possible 2021-10-20 13:11:33 +01:00
gingerBill
1bfbed0e02 Add llvm_vector_reduce_add 2021-10-20 12:48:48 +01:00
gingerBill
0fd525d778 Make lb_emit_matrix_mul_vector use SIMD if possible 2021-10-20 12:39:38 +01:00
gingerBill
cee45c1b15 Add hadamard_product 2021-10-20 02:18:30 +01:00
gingerBill
68afbb37f4 Add builtin outer_product 2021-10-20 02:06:56 +01:00
gingerBill
7faca7066c Add builtin transpose 2021-10-20 01:51:16 +01:00
gingerBill
82b6772ea4 Support matrix literals 2021-10-20 00:40:03 +01:00
gingerBill
662cbaf425 Support indexing matrices 2021-10-19 12:13:19 +01:00
gingerBill
243e2e2b8a Basic support for matrix*vector, vector*matrix operations 2021-10-19 11:24:26 +01:00
gingerBill
35111b39b8 Try to support the matrix multiplication LLVM intrinsics 2021-10-18 18:57:21 +01:00
gingerBill
ba331024af Very basic matrix support in backend 2021-10-18 18:16:52 +01:00
gingerBill
f99bea12c7 Allow uintptr <-> [^]T 2021-09-29 16:36:05 +01:00
gingerBill
6f872e04c8 Move redundant auto_cast error from -vet to -vet-extra 2021-09-28 12:24:51 +01:00
gingerBill
6fab93c4b3 Fix [^]u8 to cstring conversion 2021-09-25 21:11:54 +01:00
gingerBill
fa0d58f96e Correct f64 -> u128/i128 generation 2021-09-25 15:38:56 +01:00
gingerBill
8de728e3dc LLVM Code Generator: Add explicitly padding between fields in LLVM struct types 2021-09-13 16:40:24 +01:00
gingerBill
be68bf9f26 Only store field_index remove field_src_index (for the time being) 2021-09-13 11:29:46 +01:00
gingerBill
fb8fa5217d Begin minimize Type size by replacing Array with Slice etc 2021-09-13 00:58:39 +01:00
gingerBill
3195fac92b Fix slice indices endianness 2021-09-12 16:47:17 +01:00
gingerBill
d4f5ef046d Remove goto in favour of multiple exits 2021-09-08 11:58:01 +01:00
gingerBill
83bd7c73c4 Fix #1120 code generation 2021-09-08 11:49:07 +01:00
gingerBill
72508dbce3 Fix code gen bug for slicing multi pointers 2021-09-08 11:14:26 +01:00
gingerBill
db6fad7396 Fix indexing code gen for multi-pointers 2021-08-22 16:55:57 +01:00
gingerBill
07bfb55658 Fix code gen for compare against nil for multi pointers 2021-08-22 16:53:26 +01:00
gingerBill
932f330a51 Add comparisons to LLVM backend for multi pointers 2021-08-21 23:12:15 +01:00
gingerBill
6a77fc4cdd Add multi-pointer types [^]T 2021-08-21 23:10:21 +01:00
gingerBill
7845769d4b Remove unused code 2021-08-19 15:03:10 +01:00
gingerBill
21cbac755e Make or_else and or_return operators (binary and suffix respectively) 2021-08-15 17:14:35 +01:00
gingerBill
01f431b01f Unify semantics of the built-in swizzle procedure with the selector expression semantics e.g. .xyz 2021-08-09 19:37:58 +01:00
gingerBill
40822be595 Reorganize llvm_backend.cpp into separate files for easier maintenance 2021-08-07 12:01:48 +01:00