| ... | ... | @@ -1324,6 +1324,55 @@ test "store to vector in slice" { |
| 1324 | 1324 | try expectEqual(v[1], v[0]); |
| 1325 | 1325 | } |
| 1326 | 1326 | |
| 1327 | test "store vector with memset" { |
| 1328 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1329 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1330 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 1331 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1332 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1333 | if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO |
| 1334 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1335 | |
| 1336 | if (builtin.zig_backend == .stage2_llvm) { |
| 1337 | switch (builtin.target.cpu.arch) { |
| 1338 | .wasm32, |
| 1339 | .mips, |
| 1340 | .mipsel, |
| 1341 | .mips64, |
| 1342 | .mips64el, |
| 1343 | .riscv64, |
| 1344 | .powerpc, |
| 1345 | => { |
| 1346 | // LLVM 16 ERROR: "Converting bits to bytes lost precision" |
| 1347 | // https://github.com/ziglang/zig/issues/16177 |
| 1348 | return error.SkipZigTest; |
| 1349 | }, |
| 1350 | else => {}, |
| 1351 | } |
| 1352 | } |
| 1353 | |
| 1354 | var a: [5]@Vector(2, i1) = undefined; |
| 1355 | var b: [5]@Vector(2, u2) = undefined; |
| 1356 | var c: [5]@Vector(2, i4) = undefined; |
| 1357 | var d: [5]@Vector(2, u8) = undefined; |
| 1358 | var e: [5]@Vector(2, i9) = undefined; |
| 1359 | var ka = @Vector(2, i1){ -1, 0 }; |
| 1360 | var kb = @Vector(2, u2){ 0, 1 }; |
| 1361 | var kc = @Vector(2, i4){ 2, 3 }; |
| 1362 | var kd = @Vector(2, u8){ 4, 5 }; |
| 1363 | var ke = @Vector(2, i9){ 6, 7 }; |
| 1364 | @memset(&a, ka); |
| 1365 | @memset(&b, kb); |
| 1366 | @memset(&c, kc); |
| 1367 | @memset(&d, kd); |
| 1368 | @memset(&e, ke); |
| 1369 | try std.testing.expectEqual(ka, a[0]); |
| 1370 | try std.testing.expectEqual(kb, b[1]); |
| 1371 | try std.testing.expectEqual(kc, c[2]); |
| 1372 | try std.testing.expectEqual(kd, d[3]); |
| 1373 | try std.testing.expectEqual(ke, e[4]); |
| 1374 | } |
| 1375 | |
| 1327 | 1376 | test "addition of vectors represented as strings" { |
| 1328 | 1377 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1329 | 1378 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |