aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/int128.zig
AgeCommit message (Collapse)Author
2025-07-22aarch64: add new from scratch self-hosted backendJacob Young
2025-06-16rename spirv backend nameAli Cheraghi
`stage2_spirv64` -> `stage2_spirv`
2025-03-24stage2-wasm: enable already working testsPavel Verigo
2024-05-11riscv: add stage2_riscv to test matrix and bypass failing testsDavid Rubin
2023-12-03x86_64: implement some todosJacob Young
2023-11-19test: update behavior to silence 'var is never mutated' errorsmlugg
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-09-19x86 backend: don't read bogus safety flagAndrew Kelley
Safety is not a global flag that should be enabled or disabled for all stores - it's lowered by the frontend directly into AIR instruction semantics. The flag for this is communicated via the `store` vs `store_safe` AIR instructions, and whether to write 0xaa bytes or not should be decided in `airStore` and passed down via function parameters. This commit is a step backwards since it removes functionality but it aims our feet towards a better mountain to climb.
2023-06-24all: migrate code to new cast builtin syntaxmlugg
Most of this migration was performed automatically with `zig fmt`. There were a few exceptions which I had to manually fix: * `@alignCast` and `@addrSpaceCast` cannot be automatically rewritten * `@truncate`'s fixup is incorrect for vectors * Test cases are not formatted, and their error locations change
2023-06-13all: replace `comptime try` with `try comptime`Eric Joldasov
Signed-off-by: Eric Joldasov <bratishkaerik@getgoogleoff.me>
2023-05-19wasm: implement `shl` for big integersLuuk de Gram
2023-05-11setup spirv backend in behavior testsAli Chraghi
2023-04-02x86_64: implement large add/sub with overflowJacob Young
2023-04-02x86_64: implement large cmpJacob Young
2023-01-23cbe: fixes for x86kcbanner
- Emit calling convention - Fix .Naked handling for msvc - Add teb helper for x86 - Fix 128-bit shl implementation when rhs is >= 64 - Add 128-bit shl tests
2023-01-02skip "truncate int128" on wasmkcbanner
2023-01-02tests: add more coverage for 128 bit operationskcbanner
- fixup 128-bit atomics test to only run on x86_64 - add truncation test for 128-bit types, including non power of two targets (there was a bug with broken non-power-of-two truncation in the cbe) - add 128-bit binary not test (covers another bug fixed in the cbe)
2022-12-10Merge pull request #13872 from koachan/sparc64-codegenAndrew Kelley
stage2: sparc64: Some Air lowerings + skip unbuildable tests
2022-12-10stage2: sparc64: Skip unimplemented testsKoakuma
2022-12-10behavior: add test coverage for previous i128 regression on aarch64r00ster91
Closes #8429
2022-12-06remove references to stage1 in behavior testsAndrew Kelley
Good riddance.
2022-10-25cbe: implement 128-bit and fix smaller integer builtinsJacob Young
2022-05-18wasm: enable 128bit integer behavior testsLuuk de Gram
2022-04-22CBE: disable int128 test since airWrapOp is needed for runtime safetyWilliam Sengir
2022-03-29CBE: fix C output after PR #11302, reenable testsDaniele Cocca
Commit 052079c99455d01312d377d72fa1b8b5c0b22aad surfaced two issues with the generated C code: - renderInt128() contained a seemingly unnecessary assertion to verify that the high 64 bits of the number were nonzero, dating back to 9bf1681990fe87a6b2e5fc644a89f1aece304579. I removed it. - renderValue() didn't have any special handling for undefined structs, falling back to printing "{}" which generated invalid expressions such as "return {}" for functions returning structs, whereas "return (S){}" is the correct form. I changed it accordingly. At the same time I'm reenabling the relevant tests.
2022-03-27stage2: runtime safety check integer cast truncating bitsMitchell Hashimoto
2022-03-18organize behavior testsAndrew Kelley
* Identify the ones that are passing and stop skipping them. * Flatten out the main behavior.zig file and have each individual test disable itself if it is not passing.
2022-01-17remove `zig_is_stage2` from `@import("builtin")`Andrew Kelley
Instead use the standarized option for communicating the zig compiler backend at comptime, which is `zig_backend`. This was introduced in commit 1c24ef0d0b09a12a1fe98056f2fc04de78a82df3.
2022-01-07lint: duplicate import (#10519)Meghan
2021-11-16stage2: LLVM backend: memset to 0xaa for undefined storesAndrew Kelley
Also support `one` and `int_big_positive` tags for const pointers.
2021-11-16typoDrew P
2021-11-16fix tests failing on stage2 release modes due to setRuntimeSafety not being ↵Drew P
recognized
2021-11-16add additional negative big int constant test casedrew
2021-11-16small changes + align tests obviously shouldn't have passeddrew
2021-11-16fmtdrew
2021-11-16C backend: basic big ints, fix airPtrToInt, array references, pointer ↵drew
arithmetic UB with NULL, implement airPtrElemPtr/Val, fix redundant indirection/references with arrays -add additional test cases that were found to be passing -add basic int128 test cases which previously did not pass but weren't covered -most test cases in cast.zig now pass -i128/u128 or smaller int constants can now be rendered -unsigned int constants are now always suffixed with 'u' to prevent random compile errors -pointers with a val tag of 'zero' now just emit a 0 constant which coerces to the pointer type and fixes some warnings with ordered comparisons -pointers with a val tag of 'one' are now casted back to the pointer type -support pointers with a u64 val -fix bug where rendering an array's type will emit more indirection than is needed -render uint128_t/int128_t manually when needed -implement ptr_add/sub AIR handlers manually so they manually cast to int types which avoids UB if the result or ptr operand is NULL -implement airPtrElemVal/Ptr -airAlloc for arrays will not allocate a ref as the local for the array is already a reference/pointer to the array itself -fix airPtrToInt by casting to the int type