Jacob Young
a8f4ac2b94
CBE: implement big integer and vector comparisons
2023-03-05 02:59:01 -05:00
Jacob Young
434c6f42ca
behavior: enable passing CBE tests
2023-02-21 09:43:23 -05:00
Andrew Kelley
f0530385b5
update existing behavior tests and std lib to new for loop semantics
2023-02-18 19:17:21 -07:00
kcbanner
a9b68308b9
cbe: fixes for tls, support for not linking libc, and enabling tests
...
- 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
2023-01-29 15:04:13 -05:00
kcbanner
c2f5c3bc4e
skip "binary not 128-bit" on non-llvm
2023-01-02 13:56:32 -07:00
kcbanner
9c951cc874
fmt fixups
2023-01-02 13:56:32 -07:00
kcbanner
9c70315854
tests: add more coverage for 128 bit operations
...
- 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)
2023-01-02 13:55:45 -07:00
kcbanner
f07d33f54b
cbe: fixes for compiling zig2.c under msvc
...
- add zig_mul_i128
- render slice structs in static initializers without casts / c99 style init
- add negative numbers and u128 to 128-bit multiply test
2023-01-01 16:44:29 -05:00
Andrew Kelley
5ca1753ff1
Revert "aarch64: reenable tests that are no longer regressed"
...
This reverts commit 3370d58956 .
This commit was done with an LLVM build that did not have assertions
enabled. There are LLVM assertions being triggered due to this commit.
Reopens #10627
Reopens #12013
Reopens #12027
2022-12-27 20:54:27 -07:00
Andrew Kelley
19056cb682
Merge pull request #14024 from Vexu/overflow-arithmetic
...
Make overflow arithmetic builtins return tuples
2022-12-27 13:57:49 -05: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
Veikka Tuominen
622311fb9a
update uses of overflow arithmetic builtins
2022-12-27 15:13:14 +02:00
Jacob Young
a52dcdd3c5
CBE: fix bitwise not
...
Closes #13911
2022-12-21 03:04:59 -05:00
Meghan
3318611618
re-enable "signed zeros are represented properly" beahvior tests for f80 and c_longdouble
2022-12-13 13:33:16 +02:00
Andrew Kelley
74718a1183
disable failing CBE behavior tests failing on aarch64-windows
...
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-10 16:28:49 -07:00
Andrew Kelley
cffbb32d31
Merge pull request #13872 from koachan/sparc64-codegen
...
stage2: sparc64: Some Air lowerings + skip unbuildable tests
2022-12-10 15:10:21 -05:00
Koakuma
f9e9ba784f
stage2: sparc64: Skip unimplemented tests
2022-12-10 21:51:46 +07:00
r00ster91
3370d58956
aarch64: reenable tests that are no longer regressed
...
Closes #12013
Closes #10627
Closes #12027
2022-12-10 12:34:34 +01:00
Andrew Kelley
c8aba15c22
remove references to stage1 in behavior tests
...
Good riddance.
2022-12-06 19:06:48 -07:00
Andrew Kelley
518392d6fe
disable CBE behavior tests that are not passing in release modes
2022-12-04 15:57:40 -07:00
Jacob Young
fdedd62365
cbe: use memcpy for underaligned loads and stores
2022-12-02 22:21:24 -05:00
Veikka Tuominen
11ec7109c3
cbe: do not memcpy identical integer types when bitcasting
2022-11-30 17:11:06 +02:00
Veikka Tuominen
15cc83e27a
cbe: reduce amount of temporary locals
2022-11-30 17:11:06 +02:00
Veikka Tuominen
63ae7899ae
cbe: ensure test and tagName function names are unique
2022-11-30 15:14:33 +02:00
Jacob Young
e20d2b3151
cbe: fix floating point builtins
2022-10-25 07:02:06 -04:00
Jacob Young
3d22327b23
cbe: enable test fixed by #13296
2022-10-25 05:43:00 -04:00
Jacob Young
94425fe46e
cbe: improve floating point type support
2022-10-25 05:22:55 -04:00
Jacob Young
6021edd7ce
cbe: add support for all float literals types
2022-10-25 05:22:55 -04:00
Jacob Young
1bab854868
cbe: implement 128-bit and fix smaller integer builtins
2022-10-25 05:11:29 -04:00
Jacob Young
6921b0a850
cbe: implement some float ops
2022-10-25 05:11:29 -04:00
Jacob Young
6a4266d62a
cbe: fix infinite recursion on recursive types
2022-10-25 05:11:28 -04:00
Jacob Young
525dcaecba
behavior: enable stage2_c tests that are currently passing
...
Also fix C warnings triggered by these tests.
2022-10-25 05:11:28 -04:00
r00ster91
51d9db8569
fix(text): hyphenate "comptime" adjectives
2022-10-05 21:19:30 +02:00
Koakuma
0910cb6fcb
stage2: sparc64: Skip compile-failing tests for now
2022-09-14 16:58:12 -07:00
Andrew Kelley
2a96209c40
Merge pull request #12574 from Vexu/remove-bit-op-type-param
...
stage2+stage1: remove type parameter from bit builtins
2022-08-24 15:57:44 -04:00
Jakub Konka
abfe21a4fe
skip failing f80 behavior tests on Windows
2022-08-23 22:43:19 +02:00
Veikka Tuominen
62ff8871ed
stage2+stage1: remove type parameter from bit builtins
...
Closes #12529
Closes #12511
Closes #6835
2022-08-22 11:19:20 +03:00
zooster
4055e6055b
AstGen: disallow leading zeroes in int literals and int types
...
This makes `0123` and `u0123` etc. illegal.
I'm now confident that this is a good change because
I actually caught two C header translation mistakes in `haiku.zig` with this.
Clearly, `0123` being octal in C (TIL) can cause confusion, and we make this easier to read by
requiring `0o` as the prefix and now also disallowing leading zeroes in integers.
For consistency and because it looks weird, we disallow it for integer types too (e.g. `u0123`).
Fixes #11963
Fixes #12417
2022-08-18 19:54:51 +03:00
Isaac Freund
bb1c3e8b7e
stage2: Handle lazy values for the % operator
2022-08-10 14:48:27 +02:00
Veikka Tuominen
55fe34100f
Sema: exact division safety
2022-07-23 15:40:11 +03:00
Andrew Kelley
35e7011124
LLVM: implement signext/zeroext attributes
...
For calling convention ABI purposes, integer attributes and return
values need to have an LLVM attribute signext or zeroext added
sometimes. This commit implements that logic.
It also implements a proof-of-concept of moving the F16T type from
being a compiler_rt hack to being how the compiler lowers f16 in
functions that need to match certain calling conventions.
Closes #12054
2022-07-13 11:14:46 -07:00
Andrew Kelley
e0d5ae75af
these riscv64 behavior tests work for stage1 but not stage2
2022-07-09 12:48:59 -07:00
Andrew Kelley
f976758855
disable failing riscv64 tests from LLVM 14 upgrade
...
See #12054
2022-07-08 23:11:03 -07:00
Andrew Kelley
d8fc8d0118
compiler_rt: work around LLVM optimizing __muloti4 to call itself
...
This is a workaround for
https://github.com/llvm/llvm-project/issues/56403
2022-07-05 21:28:39 -07:00
Andrew Kelley
558ad19095
disable regressed behavior tests from llvm 14
...
See #12012
See #12013
2022-07-05 18:50:03 -07:00
Andrew Kelley
e8ce1728e9
disable regressed wasm32 behavior tests from LLVM 14
2022-07-05 15:46:12 -07:00
joachimschmidt557
960c142060
stage2 ARM: implement basic intCast and error union wrapping
2022-06-25 21:16:51 +02:00
Jakub Konka
6d32498c55
x64: re-enable behavior tests
2022-05-19 19:39:34 +02:00
Luuk de Gram
e252f92b99
wasm: enable 128bit integer behavior tests
2022-05-18 07:43:33 +02:00
Jakub Konka
852c820841
aarch64: sub_with_overflow should always track V flag
2022-05-16 13:55:26 -07:00