aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/vector.zig
AgeCommit message (Collapse)Author
2024-07-28std.Target.Cpu.Arch: Remove the `aarch64_32` tag.Alex Rønne Petersen
This is a misfeature that we inherited from LLVM: * https://reviews.llvm.org/D61259 * https://reviews.llvm.org/D61939 (`aarch64_32` and `arm64_32` are equivalent.) I truly have no idea why this triple passed review in LLVM. It is, to date, the *only* tag in the architecture component that is not, in fact, an architecture. In reality, it is just an ILP32 ABI for AArch64 (*not* AArch32). The triples that use `aarch64_32` look like `aarch64_32-apple-watchos`. Yes, that triple is exactly what you think; it has no ABI component. They really, seriously did this. Since only Apple could come up with silliness like this, it should come as no surprise that no one else uses `aarch64_32`. Later on, a GNU ILP32 ABI for AArch64 was developed, and support was added to LLVM: * https://reviews.llvm.org/D94143 * https://reviews.llvm.org/D104931 Here, sanity seems to have prevailed, and a triple using this ABI looks like `aarch64-linux-gnu_ilp32` as you would expect. As can be seen from the diffs in this commit, there was plenty of confusion throughout the Zig codebase about what exactly `aarch64_32` was. So let's just remove it. In its place, we'll use `aarch64-watchos-ilp32`, `aarch64-linux-gnuilp32`, and so on. We'll then translate these appropriately when talking to LLVM. Hence, this commit adds the `ilp32` ABI tag (we already have `gnuilp32`).
2024-07-26riscv: fix logic bug in `ptr_elem_ptr`David Rubin
I was doing duplicate work with `elemOffset` multiplying by the abi size and then the `ptr_add` `genBinOp` also multiplying. This led to having writes happening in the wrong place.
2024-07-26riscv: remove redundant assert in `genBinOp`David Rubin
2024-07-26riscv: un-cache the `avl` and `vtype` when returning from a function callDavid Rubin
the csrs `avl` and `vtype` are considered caller-saved so it could have changed while inside of the function. the easiest way to handle this is to just set the cached `vtype` and `avl` to null, so that the next time something needs to set it, it'll emit an instruction instead of relying on a potentially invalid setting.
2024-07-25aarch64: reenable tests that are no longer regressedJulian Vesper
Closes #12012
2024-07-19behavior: disable test that triggers an llvm assertionJacob Young
Tracked by #20680
2024-07-14riscv: disable failing testsDavid Rubin
2024-07-14riscv: vectors part 3David Rubin
2024-07-14riscv: truncate `airStructFieldVal` resultDavid Rubin
2024-06-13riscv: rewrite "binOp"David Rubin
Reorganize how the binOp and genBinOp functions work. I've spent quite a while here reading exactly through the spec and so many tests are enabled because of several critical issues the old design had. There are some regressions that will take a long time to figure out individually so I will ignore them for now, and pray they get fixed by themselves. When we're closer to 100% passing is when I will start diving into them one-by-one.
2024-06-13riscv: first sign of floats!David Rubin
2024-06-10spirv: new vectorization helperRobin Voetter
The old vectorization helper (WipElementWise) was clunky and a bit annoying to use, and it wasn't really flexible enough. This introduces a new vectorization helper, which uses Temporary and Operation types to deduce a Vectorization to perform the operation in a reasonably efficient manner. It removes the outer loop required by WipElementWise so that implementations of AIR instructions are cleaner. This helps with sanity when we start to introduce support for composite integers. airShift, convertToDirect, convertToIndirect, and normalize are initially implemented using this new method.
2024-06-10spirv: disable tests that fail on poclRobin Voetter
Besides the Intel OpenCL CPU runtime, we can now run the behavior tests using the Portable Computing Language. This implementation is open-source, so it will be easier for us to patch in updated versions of spirv-llvm-translator that have bug fixes etc.
2024-05-11riscv: math progressDavid Rubin
2024-05-11riscv: add stage2_riscv to test matrix and bypass failing testsDavid Rubin
2024-04-13cbe: fix optional codegenJacob Young
Also reduce ctype pool string memory usage, remove self assignments, and enable more warnings.
2024-04-06spirv: enable passing testsRobin Voetter
2024-04-06spirv: implement `@mulWithOverflow`Ali Chraghi
2024-03-30cbe: rewrite `CType`Jacob Young
Closes #14904
2024-03-18spirv: enable passing testsRobin Voetter
2024-03-15test: reenable some behavior vector testsMeghan Denny
2024-02-25x86_64: implement `@shuffle`Jacob Young
2024-02-12x86_64: implement c abi for bool vectorsJacob Young
2024-02-09spirv: make rusticl the primary testing implementationAli Chraghi
2024-02-06x86_64+macho: pass more behavior testsJakub Konka
2024-02-04spirv: air vector_store_elementRobin Voetter
2024-02-04spirv: update testsRobin Voetter
2024-02-04spirv: air splatRobin Voetter
2024-02-04spirv: fix shuffle properlyRobin Voetter
2024-02-04spirv: vectorize add/sub overflowRobin Voetter
2024-02-04spirv: reduce, reduce_optimizedRobin Voetter
2024-02-04spirv: shlWithOverflowRobin Voetter
2024-02-04spirv: vectors for air notRobin Voetter
2024-01-29llvm: fix alignment of array ptr when bitcasting vectorVeikka Tuominen
Closes #17996
2024-01-15test/behavior: replace all 'comptime expect' with 'comptime assert'dweiller
2024-01-06categorize `behavior/bugs/<issueno>.zig` testsVeikka Tuominen
2023-12-22test: add coverage for index into comptime-known vector is comptime-knownMeghan Denny
2023-12-04x86_64: fix vector comparisionsJacob Young
2023-12-03x86_64: "implement" `aggregate_init` for vectorsJacob Young
2023-12-03x86_64: implement more compliant vectorsJacob Young
2023-11-22std: remove meta.traitAndrew Kelley
In general, I don't like the idea of std.meta.trait, and so I am providing some guidance by deleting the entire namespace from the standard library and compiler codebase. My main criticism is that it's overcomplicated machinery that bloats compile times and is ultimately unnecessary given the existence of Zig's strong type system and reference traces. Users who want this can create a third party package that provides this functionality. closes #18051
2023-11-19test: update behavior to silence 'var is never mutated' errorsmlugg
2023-11-03x86_64: fix std test failuresJacob Young
2023-10-22Revert "Revert "Merge pull request #17637 from jacobly0/x86_64-test-std""Jacob Young
This reverts commit 6f0198cadbe29294f2bf3153a27beebd64377566.
2023-10-22Revert "Merge pull request #17637 from jacobly0/x86_64-test-std"Andrew Kelley
This reverts commit 0c99ba1eab63865592bb084feb271cd4e4b0357e, reversing changes made to 5f92b070bf284f1493b1b5d433dd3adde2f46727. This caused a CI failure when it landed in master branch due to a 128-bit `@byteSwap` in std.mem.
2023-10-21x86_64: fix bugs and disable erroring testsJacob Young
2023-10-15spirv: update failing / passing testsRobin Voetter
Some tests are now failing due to debug info changes, some tests now pass due to improved compiler functionality.
2023-10-15spirv: simple binary and comparison vector operationsAli Chraghi
2023-10-15spirv: emit vectors as arraysAli Chraghi
2023-10-01x86_64: implement float round builtinsJacob Young