aboutsummaryrefslogtreecommitdiff
path: root/src/check_builtin.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add `intrinsics.type_is_nearly_simple_compare`gingerBill2025-08-041-0/+2
|
* move to checker error, rather than panicColin Davidson2025-07-291-0/+8
|
* switch to read_cycle_counter_frequency from arm64_read_cycle_counter_freq, ↵Colin Davidson2025-07-291-1/+1
| | | | trap on invalid arch
* use the correct frequency for the arm tsc timerColin Davidson2025-07-281-0/+1
|
* Merge pull request #5442 from jon-lipstate/table_lookupgingerBill2025-07-221-0/+52
|\ | | | | table lookup simd intrinsic
| * cleanup langauge / errors about table vs swizzleJon Lipstate2025-07-161-16/+16
| |
| * rename table_lookup to runtime_swizzleJon Lipstate2025-07-161-2/+2
| |
| * table lookup intrinsicJon Lipstate2025-07-051-0/+52
| |
* | add did you mean for card/lenJon Lipstate2025-07-161-1/+5
| |
* | Add union kind assertion to enum_constant_entity_cmpFourteenBrush2025-07-111-3/+6
| |
* | Fix BigInt leakingFourteenBrush2025-07-111-0/+2
| |
* | Allocate temp array instead of sorting in placeFourteenBrush2025-07-111-2/+2
| |
* | Add type_enum_is_contiguous intrinsicFourteenBrush2025-07-111-0/+48
|/
* Add check_all scriptsJeroen van Rijn2025-06-161-0/+5
|
* Add `intrinsics.type_is_bit_field` prociarkn2025-06-061-0/+2
|
* Fix #5265Jeroen van Rijn2025-06-031-1/+1
|
* Show quaternion arguments in `wxyz` order, instead of `xyzw`, in mismatched ↵Feoramund2025-06-011-1/+1
| | | | | | | | type error This is in accordance with the other error and makes sense with how quaternions are printed with `real`/`w` coming first, then the imaginaries, which are the `ijk`/`xyz` parts.
* Make `quaternion` untyped values convert to first typed value foundFeoramund2025-06-011-10/+12
| | | | | This fixes an issue (#2079) where a typed argument could cause the construction to fail on the basis of failed untyped -> typed conversion.
* Fix `quaternion` construction causing compiler crashFeoramund2025-06-011-0/+1
| | | | | Previously, a construction of `quaternion(real=0, real=1, real=2, real=3)` could crash the compiler.
* add: type_integer_to_* error messages0xrsp2025-05-151-6/+3
|
* new compiler intrinsics type_integer_to_unsigned,type_integer_to_signed0xrsp2025-05-151-0/+84
|
* Handle "untyped" casegingerBill2025-05-121-1/+9
|
* Add `compress_values`gingerBill2025-05-121-0/+180
|
* Merge pull request #5064 from harold-b/hb/objc-classesgingerBill2025-05-081-3/+57
|\ | | | | Add support for Objective-C class implementation
| * Prevent multiple uses of the same Objective-C class nameHarold Brenes2025-05-031-2/+2
| |
| * Implement all checker specification for Objective-C class implementations ↵Harold Brenes2025-05-031-24/+4
| | | | | | | | and `objc_ivar_get` intrinsic
| * Name fixesHarold Brenes2025-04-301-3/+3
| |
| * Fix indentationsHarold Brenes2025-04-271-72/+72
| | | | | | | | Fix Objective-C wrapper procs not forwarding return value
| * Fix styling issuesHarold Brenes2025-04-271-5/+4
| |
| * Add initial support for Objective-C class implementationHarold Brenes2025-04-201-1/+76
| |
* | Added alternate reduce-add/reduce-mul intrinsics.Barinzaya2025-05-051-0/+4
| | | | | | | | | | | | | | | | | | | | The new reduce_add/reduce_mul procs perform the corresponding arithmetic reduction in different orders than sequential order. These alternative orders can often offer better SIMD hardware utilization. Two different orders are added: pair-wise (operating on pairs of adjacent elements) or bisection-wise (operating element-wise on the first and last N/2 elements of the vector).
* | Fix `type_union_tag_offset` when all members are zero sizedJeroen van Rijn2025-05-051-3/+4
| |
* | Add `intrinsics.simd_indices`gingerBill2025-05-051-0/+31
|/
* Allow intrinsics.type_elem_type(simd_vector) to return the element type.Jeroen van Rijn2025-04-111-0/+1
| | | | Make `type_elem_type(#simd[4]f32)` return `f32`, same as it would for `[4]f32`.
* Fix #4949gingerBill2025-03-241-0/+7
|
* Fix #4962gingerBill2025-03-241-5/+9
|
* Added simd_extract_lsbs intrinsic as well.Barinzaya2025-02-241-0/+1
| | | | | Equivalent to the simd_extract_msbs intrinsic, except it extracts the least significant bit of each element instead.
* Added simd_extract_msbs intrinsic.Barinzaya2025-02-241-0/+32
|
* Merge pull request #4797 from laytan/improve-abs-of-floatgingerBill2025-02-081-2/+5
|\ | | | | improve abs() on floats for more correct and faster results
| * apply abs fix to constant system tooLaytan Laats2025-02-061-2/+5
| |
* | Preserve `#no_nil` in `intrinsics.type_convert_variants_to_pointers`korvahkh2025-02-031-0/+3
|/ | | | | | Previously the newly returned type would not be marked as `#no_nil`. This caused `reflect.get_union_as_ptr_variants` to break on `#no_nil` unions.
* Fix #4508 for abs, min, max (#4516)Jeroen van Rijn2024-11-251-1/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix #4508 for abs, min, max and the rest of the builtins. None of these segfault now: ```odin package bug main :: proc() { p :: proc() {} // _ = len(p()) // _ = cap(p()) // _ = size_of(p()) // _ = align_of(p()) // T :: struct {} // _ = offset_of(p()) // _ = offset_of(T, p()) // _ = offset_of(p(), foo) // _ = offset_of(p(), "") // _ = type_of(p()) // _ = type_info_of(p()) // _ = typeid_of(p()) // A: [4]int // _ = swizzle(p()) // :: proc(x: [N]T, indices: ..int) -> [len(indices)]T --- // _ = swizzle(A, p()) // :: proc(x: [N]T, indices: ..int) -> [len(indices)]T --- // _ = complex(p(), p()) // _ = quaternion(p(), p(), p(), p()) // _ = quaternion(w=p(), x=p(), y=p(), z=p()) // _ = real(p()) // _ = imag(p()) // _ = jmag(p()) // _ = kmag(p()) // _ = conj(p()) // _ = expand_values(p()) // _ = min(p()) // _ = max(p()) // _ = abs(p()) // _ = clamp(p(), p(), p()) // _ = soa_zip(p()) // _ = soa_unzip(p()) } ```
* report error when builtin min/max has 1 (non-type) paramjakubtomsu2024-11-171-0/+9
|
* Merge pull request #4427 from laytan/posix-additionsgingerBill2024-10-301-0/+4
|\ | | | | Finish sys/posix with Linux and partial Windows support & clean up other packages as a result
| * fix `#load_directory` including nested directoriesLaytan2024-10-281-0/+4
| |
* | Fixes #4395 by not assuming simd returns valMisomosi2024-10-201-1/+1
|/
* `a ordered` to `an ordered`gingerBill2024-10-021-7/+7
|
* Specify integer-like only for some `atomic_*` intrinsicsFeoramund2024-09-181-13/+8
| | | | Fixes #4256
* add '#caller_expression'Laytan Laats2024-09-141-0/+16
|
* add fixed point sign extend to 128 int depsLaytan Laats2024-09-051-0/+10
|