aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/muladd.zig
AgeCommit message (Collapse)Author
2025-07-22aarch64: add new from scratch self-hosted backendJacob Young
2025-06-19x86_64: increase passing test coverage on windowsJacob Young
Now that codegen has no references to linker state this is much easier. Closes #24153
2025-06-16rename spirv backend nameAli Cheraghi
`stage2_spirv64` -> `stage2_spirv`
2025-06-05std.Target: Introduce Cpu convenience functions for feature tests.Alex Rønne Petersen
Before: * std.Target.arm.featureSetHas(target.cpu.features, .has_v7) * std.Target.x86.featureSetHasAny(target.cpu.features, .{ .sse, .avx, .cmov }) * std.Target.wasm.featureSetHasAll(target.cpu.features, .{ .atomics, .bulk_memory }) After: * target.cpu.has(.arm, .has_v7) * target.cpu.hasAny(.x86, &.{ .sse, .avx, .cmov }) * target.cpu.hasAll(.wasm, &.{ .atomics, .bulk_memory })
2025-06-01Legalize: implement scalarization of overflow intrinsicsJacob Young
2025-02-24test: skip failing tests with spirv-vulkanAli Cheraghi
2025-02-06x86_64: rewrite most of the remaining float opsJacob Young
2025-01-16x86_64: implement switch jump tablesJacob Young
2024-11-03std.Target: Replace isARM() with isArmOrThumb() and rename it to isArm().Alex Rønne Petersen
The old isARM() function was a portability trap. With the name it had, it seemed like the obviously correct function to use, but it didn't include Thumb. In the vast majority of cases where someone wants to ask "is the target Arm?", Thumb *should* be included. There are exactly 3 cases in the codebase where we do actually need to exclude Thumb, although one of those is in Aro and mirrors a check in Clang that is itself likely a bug. These rare cases can just add an extra isThumb() check.
2024-05-11riscv: add stage2_riscv to test matrix and bypass failing testsDavid Rubin
2024-02-06x86_64+macho: pass more behavior testsJakub Konka
2024-02-04spirv: air mul_addRobin Voetter
2023-11-19test: update behavior to silence 'var is never mutated' errorsmlugg
2023-10-08x86_64: implement `@mulAdd` of floats for baselineJacob Young
2023-09-10wasm: enable successful behavior testsTechatrix
2023-07-31std: finish cleanup up asmJacob Young
This also required implementing the necessary syntax in the x86_64 backend.
2023-07-31cbe: get behavior tests running on armJacob Young
Specifically without linking libc.
2023-06-13all: replace `comptime try` with `try comptime`Eric Joldasov
Signed-off-by: Eric Joldasov <bratishkaerik@getgoogleoff.me>
2023-05-11setup spirv backend in behavior testsAli Chraghi
2023-05-08x86_64: implement binary operations for `f16` and `f16` vectorsJacob Young
2023-05-08x86_64: implement some float and float vector movementJacob Young
This allows actually storing value of these supported types in registers, and not restricting them to stack slots.
2023-05-08x86_64: implement `@mulAdd`Jacob Young
2023-04-21behavior: enable a bunch of disabled testsJacob Young
2023-04-15disable more failing C backend testsAndrew Kelley
2023-04-15disable not-yet-passing C backend testsAndrew Kelley
2023-03-26wasm: implement float operations with compiler-rtTechatrix
2023-03-05behavior: fix comptime issue and disable failing testJacob Young
2023-03-05CBE: implement vector operationsJacob Young
Also, bigint add and sub which is all I was actually trying to do.
2023-01-29cbe: fixes for tls, support for not linking libc, and enabling testskcbanner
- cbe: Implement linksection support, to support TLS when not linking libc - cbe: Support under-aligned variables / struct fields - cbe: Support packed structs (in the C definition of packed) - windows: Fix regression with x86 _tls_array - compiler_rt: Add 128-bit atomics to compiler_rt - tests: Re-enable threadlocal tests on cbe+windows, and llvm+x86 - tests: Re-enable f80 tests that now pass - ci: change windows ci to run the CBE behaviour tests with -lc, to match how the compiler is bootstrapped - update zig1.wasm
2022-12-10disable failing CBE behavior tests failing on aarch64-windowsAndrew Kelley
Also start to move redundant tests next to each other to make them slightly more obvious that they need to be cleaned up. See tracking issue #13876
2022-12-10stage2: sparc64: Skip unimplemented testsKoakuma
2022-12-06remove references to stage1 in behavior testsAndrew Kelley
Good riddance.
2022-10-25cbe: improve floating point type supportJacob Young
2022-10-25cbe: add support for all float literals typesJacob Young
2022-10-25cbe: implement 128-bit and fix smaller integer builtinsJacob Young
2022-10-25cbe: fix infinite recursion on recursive typesJacob Young
2022-10-13Re-enable `mulAdd` f128 tests on i386-linuxCody Tapscott
2022-10-13Re-enable `@mulAdd` f128 tests on aarch64-darwinCody Tapscott
Closes #9900
2022-08-23skip failing f80 behavior tests on WindowsJakub Konka
2022-06-24Revert "wasm: Enable f16 behavior tests"Luuk de Gram
This reverts commit 3c34c9f13c67ff1716a9531e87d23a6dad12b45e.
2022-06-24wasm: Enable f16 behavior testsLuuk de Gram
2022-04-27enable newly passing behavior testsAndrew Kelley
closes #11030
2022-04-02wasm: Enable passing behavior testsLuuk de Gram
This shuffles some tests do ensure the new instructions are tested for the wasm backend, by moving vectors into their own tests as well as move the f16 test cases as those require special operating also.
2022-03-16remove unnecessary TODO commentAndrew Kelley
`testing.expect` is better than `testing.expectEqual` for behavior tests. Better for behavior tests to stick to only testing the limited behavior they are meant to test and avoid functions such as `expectEqual` that drag in too much of the standard library (in this case to print helpful diffs about why a value is not equal to another).
2022-03-16Implement `@mulAdd` for vectorsJohn Schmidt
2022-03-06disable failing `@mulAdd` testAndrew Kelley
2022-03-06stage2: rework `@mulAdd`Andrew Kelley
* mul_add AIR instruction: use `pl_op` instead of `ty_pl`. The type is always the same as the operand; no need to waste bytes redundantly storing the type. * AstGen: use coerced_ty for all the operands except for one which we use to communicate the type. * Sema: use the correct source location for requireRuntimeBlock in handling of `@mulAdd`. * native backends: handle liveness even for the functions that are TODO. * C backend: implement `@mulAdd`. It lowers to libc calls. * LLVM backend: make `@mulAdd` handle all float types. - improved fptrunc and fpext to handle f80 with compiler-rt calls. * Value.mulAdd: handle all float types and use the `@mulAdd` builtin. * behavior tests: revert the changes to testing `@mulAdd`. These changes broke the test coverage, making it only tested at compile-time. Improved f80 support: * std.math.fma handles f80 * move fma functions from freestanding libc to compiler-rt - add __fmax and fmal - make __fmax and fmaq only exported when they don't alias fmal. - make their linkage weak just like the rest of compiler-rt symbols. * removed `longDoubleIsF128` and replaced it with `longDoubleIs` which takes a type as a parameter. The implementation is now more accurate and handles more targets. Similarly, in stage2 the function CTypes.sizeInBits is more accurate for long double for more targets.
2022-03-06stage2: implement `@mulAdd` for scalar floatsJohn Schmidt
2022-03-01stage2: introduce anonymous struct literalsAndrew Kelley
2022-01-28add behavior tests for f80Veikka Tuominen