David Rubin
4fd8900337
riscv: rewrite "binOp"
...
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-13 02:24:39 -07:00
David Rubin
a270c6f8c8
riscv: implement optional logic
2024-06-13 02:22:33 -07:00
David Rubin
b67995689d
riscv: add airAggregateInit for arrays
2024-06-13 02:22:04 -07:00
David Rubin
031d8248e0
riscv: first sign of floats!
2024-06-13 02:21:38 -07:00
David Rubin
05de6c279b
riscv: std.fmt.format running
...
- implements `airSlice`, `airBitAnd`, `airBitOr`, `airShr`.
- got a basic design going for the `airErrorName` but for some reason it simply returns
empty bytes. will investigate further.
- only generating `.got.zig` entries when not compiling an object or shared library
- reduced the total amount of ops a mnemonic can have to 3, simplifying the logic
2024-06-13 02:20:47 -07:00
Robin Voetter
b9d738a5cf
spirv: disable tests that fail on pocl
...
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-06-10 20:32:34 +02:00
David Rubin
2fd83d8c0a
riscv: by-value structs + @min
2024-05-11 02:17:24 -07:00
David Rubin
a30af172e8
riscv: math progress
2024-05-11 02:17:24 -07:00
David Rubin
d9e0cafe64
riscv: add stage2_riscv to test matrix and bypass failing tests
2024-05-11 02:17:24 -07:00
dweiller
a219c9faaa
test/behavior: fix test type check for multi-ptr slice
...
The original test was checking the types of irrelevant slices, the test
is for slicing of multi-pointers _without_ an end value, but the types
of slices with an end value were being checked.
2024-01-15 20:55:01 +11:00
dweiller
8108c9f4d2
test/behavior: replace all 'comptime expect' with 'comptime assert'
2024-01-15 20:55:01 +11:00
dweiller
8afafa717f
sema: allow slicing *T with comptime known [0..1]
2024-01-14 17:26:45 -08:00
Veikka Tuominen
804cee3b93
categorize behavior/bugs/<issueno>.zig tests
2024-01-06 16:49:41 -08:00
Robin Voetter
28e1d82857
spirv: disable failing tests
2023-11-24 01:11:12 +01:00
mlugg
9c16b2370d
test: update behavior to silence 'var is never mutated' errors
2023-11-19 09:57:03 +00:00
dweiller
81219586bc
sema: allow slicing [*]T without end
2023-11-07 17:01:32 +02:00
Robin Voetter
faad97edff
spirv: update failing / passing tests
...
Some tests are now failing due to debug info changes, some tests
now pass due to improved compiler functionality.
2023-10-15 20:08:18 +02:00
Robin Voetter
2d52fc762d
spirv: handle zero-sized arrays
2023-10-15 14:00:05 +02:00
Robin Voetter
08ea9a9ff6
spirv: cast result of .elem pointers to right type if needed
2023-10-15 13:59:23 +02:00
Robin Voetter
a7c3d5e4ec
spirv: constant elem ptr fix
2023-10-15 13:59:22 +02:00
Robin Voetter
075584a4d7
spirv: enable passing tests
2023-09-23 12:36:56 -07:00
Robin Voetter
d9a8c779d8
spirv: constant elem ptr
2023-09-23 12:36:56 -07:00
Robin Voetter
8d49b2ef4e
spirv: air array_to_slice
2023-09-23 12:36:56 -07:00
mlugg
f26dda2117
all: migrate code to new cast builtin syntax
...
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-24 16:56:39 -07:00
Eric Joldasov
50339f595a
all: zig fmt and rename "@XToY" to "@YFromX"
...
Signed-off-by: Eric Joldasov <bratishkaerik@getgoogleoff.me>
2023-06-19 12:34:42 -07:00
mlugg
57f6e6729f
Sema: allow empty end index in zirSliceSentinel
...
This fixes a regression, and enables some related behavior tests which
were accidentally disabled.
2023-06-15 01:23:58 +01:00
mlugg
45e9617720
Sema: don't assume slice value is interned when loading from comptime pointer
...
Resolves : #16030
2023-06-15 01:23:52 +01:00
Eric Joldasov
d884d7050e
all: replace comptime try with try comptime
...
Signed-off-by: Eric Joldasov <bratishkaerik@getgoogleoff.me>
2023-06-13 23:46:58 +06:00
Andrew Kelley
7621e56938
Merge pull request #15753 from Snektron/spirv-more-tests
...
spirv: make more tests pass
2023-05-20 13:54:01 -07:00
Robin Voetter
65157d30ab
spirv: ptr_elem_val
...
Implements the ptr_elem_val air tag. Implementation is unified
with ptr_elem_ptr.
2023-05-20 17:30:23 +02:00
Robin Voetter
37aa343079
spirv: more passing tests
2023-05-20 17:30:22 +02:00
Luuk de Gram
061d99285d
wasm: correctly use elem type when lowering
...
Previously when lowering a value of `elem_ptr` we would multiply the
abisize of the parent type by the index, rather than the element type.
This would result in an invalid pointer way beyond the correct pointer.
We now also pass the current offset to each recursive call to ensure
we do not miss inner offsets.
2023-05-19 20:20:26 +02:00
Ali Chraghi
9c550721e4
spirv: lower float_to_int and int_to_float
2023-05-15 03:04:17 +03:30
Ali Chraghi
ccc490ef68
setup spirv backend in behavior tests
2023-05-11 20:31:52 +02:00
dweiller
4d296debef
test: disable by-length slice test on wasm backend
2023-05-07 15:55:21 +10:00
dweiller
e507f0c0aa
test: add behavior tests for pointer slice-by-length
2023-05-07 15:55:21 +10:00
dweiller
7c8d60e814
test: add behavior tests for slice-by-length
2023-05-07 15:55:20 +10:00
mlugg
1059b57898
Liveness: defer deaths of externally-scoped instructions in loop bodies
2023-04-07 01:29:20 +01:00
Jacob Young
dd66e0addb
Sema: fix empty slice pointer value
...
We just checked that inst_child_ty was effectively a zero-bit type, so
it is certainly not the non-zero alignment we are looking for.
Closes #15085
2023-03-28 23:12:19 +03:00
Jacob Young
1e080e5056
x86_64: implement atomic loops
2023-03-25 16:23:55 -04:00
Andrew Kelley
fbce6a749d
disable failing aarch64 backend behavior tests
2023-03-15 10:48:14 -07:00
Jacob Young
c51930b060
behavior: enable passing behavior tests on stage2_x86_64
2023-03-15 01:04:21 -04:00
Jacob Young
8ea1c1932e
behavior: disable failing tests
2023-03-05 04:25:04 -05:00
Andrew Kelley
16302578d5
add behavior test case for previous commit
2023-03-04 14:04:58 -07:00
Andrew Kelley
f0530385b5
update existing behavior tests and std lib to new for loop semantics
2023-02-18 19:17:21 -07:00
Veikka Tuominen
58c1d98c14
add tests for fixed stage1 bugs
...
Closes #4144
Closes #4255
Closes #4372
Closes #4375
Closes #4380
Closes #4417
Closes #4423
Closes #4476
Closes #4528
Closes #4562
Closes #4572
Closes #4597
Closes #4639
Closes #4672
Closes #4782
Closes #4955
Closes #4984
Closes #4997
Closes #5010
Closes #5114
Closes #5166
Closes #5173
Closes #5276
2022-12-31 20:49:02 -05:00
Veikka Tuominen
9a0c593a54
add tests for fixed stage1 bugs
...
Closes #1957
Closes #1994
Closes #2140
Closes #2746
Closes #2802
Closes #2855
Closes #2895
Closes #2981
Closes #3054
Closes #3158
Closes #3234
Closes #3259
Closes #3371
Closes #3376
Closes #3387
Closes #3529
Closes #3653
Closes #3750
Closes #3778
Closes #3882
Closes #3915
Closes #3929
Closes #3961
Closes #3988
Closes #4123
Closes #7448
2022-12-29 12:42:44 +02:00
joachimschmidt557
d6e6162081
stage2 AArch64: unify callee-preserved regs on all targets
...
also enables many passing behavior tests
2022-12-27 21:17:52 +08:00
Koakuma
f9e9ba784f
stage2: sparc64: Skip unimplemented tests
2022-12-10 21:51:46 +07:00
Andrew Kelley
c8aba15c22
remove references to stage1 in behavior tests
...
Good riddance.
2022-12-06 19:06:48 -07:00