Andrew Kelley
e9d854743a
disable more failing C backend tests
2023-04-15 10:33:08 -07:00
Andrew Kelley
a281d29881
disable not-yet-passing C backend tests
2023-04-15 10:33:08 -07:00
Andrew Kelley
a2793f8ab8
Merge pull request #14853 from schmee/vector-peer-type-resolution
...
Vector type resolution/coercion fixes
2023-04-10 12:21:55 -04:00
Auguste Rame
7225a15abe
Enable new tests
2023-04-07 20:55:04 -04:00
Jacob Young
1e080e5056
x86_64: implement atomic loops
2023-03-25 16:23:55 -04:00
Jacob Young
c51930b060
behavior: enable passing behavior tests on stage2_x86_64
2023-03-15 01:04:21 -04:00
John Schmidt
0606f0aa55
sema: fix result ptr coercion array -> vector
...
Previously this worked for array to vector where the element type
matched exactly (e.g `[4]u8` to `@Vector(4, u8)`) since that is
performed with a simple `.bitcast` operation, but now it also works for
types where the array is coercible to the vector type (e.g `[4]u8` to
`@Vector(4, u16)`).
2023-03-09 00:55:33 +01:00
John Schmidt
505e720421
sema: add peer type resolution for vectors
...
This is consistent with how coercion for vectors work. So now you can do
this:
```
var a: @Vector(2, u16) = .{1, 2};
var b: @Vector(2, u8) = .{2, 1};
const c = @min(a, b);
```
where previously you had to cast explicitly:
```
var a: @Vector(2, u16) = .{1, 2};
var b: @Vector(2, u8) = .{2, 1};
var c: @Vector(2, u16) = b;
const c = @min(a, c);
```
2023-03-09 00:55:17 +01:00
Jacob Young
7352d461cf
behavior: fix comptime issue and disable failing test
2023-03-05 03:34:57 -05:00
Jacob Young
33fa25ba44
CBE: ensure uniqueness of more internal identifiers
2023-03-05 02:59:02 -05:00
Jacob Young
0b0298aff2
CBE: implement select and shuffle
2023-03-05 02:59:02 -05:00
Jacob Young
aac4707902
CBE: implement splat
2023-03-05 02:59:02 -05:00
Jacob Young
8f6da78fb1
CBE: implement vector element pointers
2023-03-05 02:59:02 -05:00
Jacob Young
c478c7609e
CBE: implement vector operations
...
Also, bigint add and sub which is all I was actually trying to do.
2023-03-05 02:59:02 -05:00
Jacob Young
a8f4ac2b94
CBE: implement big integer and vector comparisons
2023-03-05 02:59:01 -05:00
Jacob Young
1453a595aa
CBE: reuse locals with the same CType instead of Type
...
Many `Type`s can correspond to the same `CType`, so this reduces the
number of used locals by 27760 when compiling only-c.
Also, disabled some tests that were only passing by accident and
shouldn't really be considered working.
2023-02-24 23:41:54 -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
Veikka Tuominen
5f5ab49168
Value: implement compareAllWithZero for bytes and str_lit
...
Closes #10692
2023-01-22 00:12:37 +02: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
Veikka Tuominen
a777373bb8
enable test on more targets
...
This was fixed by 8a0a6b7387 for targets
without avx512
2022-12-27 15:34:19 +02:00
Veikka Tuominen
622311fb9a
update uses of overflow arithmetic builtins
2022-12-27 15:13:14 +02:00
Veikka Tuominen
81443fcde8
Sema: add error for recursive inline call
...
Closes #12973
2022-12-26 16:36:30 +02:00
Veikka Tuominen
3535c4b3b6
Sema: fix elem ptr type of vector in slice
...
Closes #14071
2022-12-26 15:26:27 +02:00
Veikka Tuominen
8a0a6b7387
port packed vector elem ptr logic from stage1
...
Closes #12812
Closes #13925
2022-12-15 21:06:35 -05:00
Luuk de Gram
37561a920b
wasm: enable passing vector tests
2022-12-12 17:42:09 +01: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
72fa8d4880
Sema: fix overflow arithmetic with runtime vectors
...
It should return a a vector of bools for compatibility with scalar
operands and stage1 until #10248 can be implemented.
Closes #13201
2022-11-26 18:05:27 +02:00
Andrew Kelley
4ec27a4e25
C backend: implement vector reduce and overflow intrinsics
2022-11-22 23:33:58 -07:00
Veikka Tuominen
40a2dfc12a
Sema: coerce array operands to shuffle
...
Closes #13494
2022-11-11 18:00:05 +02:00
Cody Tapscott
fbda15632d
stage2 sema: Make vector constants when operating on vectors
...
Resolves https://github.com/ziglang/zig/issues/13058
2022-11-10 12:22:40 -07:00
Ali Chraghi
f5f1f8c666
all: rename i386 to x86
2022-11-04 00:09:27 +03:30
Jacob Young
48a2783969
cbe: implement optional slice representation change
2022-10-29 05:58:41 -04:00
Veikka Tuominen
d03c47bf85
Sema: use runtime_value instead of creating allocs
2022-10-27 21:08:25 -04:00
Jacob Young
6a4266d62a
cbe: fix infinite recursion on recursive types
2022-10-25 05:11:28 -04:00
Cody Tapscott
f035437b5d
Re-enable Vector f16 tests on Windows
...
Closes #4952
2022-10-13 12:53:20 -07:00
Andrew Kelley
01e89fec71
disable LLVM 15 regressed behavior test: "vector @splat"
...
See #12827
2022-09-12 16:02:31 -07:00
Andrew Kelley
9043e665a5
add behavior test for copying array of vectors
...
closes #12026
2022-08-22 18:37:42 -07:00
Andrew Kelley
4d7f5a1917
stage2: fix crash with comptime vector reduce
2022-08-10 16:45:29 -07:00
Cody Tapscott
d182e2ebda
stage1: Lower libcalls on Windows x86-64 correctly
...
This change is the Zig counterpart to https://reviews.llvm.org/D110413
Since we lower some libcalls directly (just like clang does), we need to
make sure that the ABI we call with matches the ABI of the compiler-rt
we are providing (and also the ABI expected by LLVM).
While I was at it, I noticed some flawed vector handling in the binary
soft float ops in stage 1, so I shored up the logic a bit and expanded
an existing test to cover the missing functionality.
2022-07-10 20:52:28 -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
b698168664
stage2: update vector alignment logic
...
This follows LLVM14's lead on vector alignment, which computes byte
count based on the length premultiplied by bits.
This commit also disables behavior tests regressed by LLVM 14, only for
stage1. stage2 fortunately does not trip the regression.
2022-07-03 13:33:09 -07:00
Andrew Kelley
095e24e537
stage2: implement alignment calculation of vectors
...
closes #11856
2022-06-30 19:39:41 -07:00
Xavier Bouchoux
b66247c97a
stage2: coerce tuple to vector
2022-06-17 19:06:17 +03:00
William Sengir
bb3532e775
stage2: add more vector overflow tests
2022-05-16 13:55:26 -07:00