| author | |
| committer | |
| log | 3535c4b3b67a3c325ff8040477e35b9b1415d7ae |
| tree | 4e48577689f3c6762fe85c6c8b0f1649112f6977 |
| parent | cf822c6ddd7e56b248ab217d38907aad38935b2f |
Closes #140712 files changed, 17 insertions(+), 1 deletions(-)
src/Sema.zig+1-1| ... | ... | @@ -33069,7 +33069,7 @@ fn elemPtrType(sema: *Sema, ptr_ty: Type, offset: ?usize) !Type { |
| 33069 | 33069 | host_size: u16 = 0, |
| 33070 | 33070 | alignment: u32 = 0, |
| 33071 | 33071 | vector_index: VI = .none, |
| 33072 | } = if (parent_ty.tag() == .vector) blk: { | |
| 33072 | } = if (parent_ty.tag() == .vector and ptr_info.size == .One) blk: { | |
| 33073 | 33073 | const elem_bits = elem_ty.bitSize(target); |
| 33074 | 33074 | if (elem_bits == 0) break :blk .{}; |
| 33075 | 33075 | const is_packed = elem_bits < 8 or !std.math.isPowerOfTwo(elem_bits); |
test/behavior/vector.zig+16| ... | ... | @@ -1261,3 +1261,19 @@ test "store packed vector element" { |
| 1261 | 1261 | v[0] = 0; |
| 1262 | 1262 | try expectEqual(@Vector(4, u1){ 0, 1, 1, 1 }, v); |
| 1263 | 1263 | } |
| 1264 | ||
| 1265 | test "store to vector in slice" { | |
| 1266 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | |
| 1267 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | |
| 1268 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO | |
| 1269 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | |
| 1270 | ||
| 1271 | 	var v = [_]@Vector(3, f32){ | |
| 1272 | 		.{ 1, 1, 1 }, | |
| 1273 | 		.{ 0, 0, 0 }, | |
| 1274 | 	}; | |
| 1275 | 	var s: []@Vector(3, f32) = &v; | |
| 1276 | 	var i: usize = 1; | |
| 1277 | 	s[i] = s[0]; | |
| 1278 | 	try expectEqual(v[1], v[0]); | |
| 1279 | } |