Commit db0c30446a

data-man <datamanrb@gmail.com>
2020-05-24 19:31:51
Supports vectors in mem.zeroes
1 parent b13dd3c
Changed files (1)
lib
lib/std/mem.zig
@@ -402,7 +402,9 @@ pub fn zeroes(comptime T: type) T {
             }
             return [_]info.child{zeroes(info.child)} ** info.len;
         },
-        .Vector,
+        .Vector => |info| {
+            return @splat(info.len, zeroes(info.child));
+        },
         .ErrorUnion,
         .ErrorSet,
         .Union,
@@ -458,6 +460,9 @@ test "mem.zeroes" {
         },
 
         array: [2]u32,
+        vector_u32: meta.Vector(2, u32),
+        vector_f32: meta.Vector(2, f32),
+        vector_bool: meta.Vector(2, bool),
         optional_int: ?u8,
         empty: void,
         sentinel: [3:0]u8,
@@ -484,6 +489,9 @@ test "mem.zeroes" {
     for (b.array) |e| {
         testing.expectEqual(@as(u32, 0), e);
     }
+    testing.expectEqual(@splat(2, @as(u32, 0)), b.vector_u32);
+    testing.expectEqual(@splat(2, @as(f32, 0.0)), b.vector_f32);
+    testing.expectEqual(@splat(2, @as(bool, false)), b.vector_bool);
     testing.expectEqual(@as(?u8, null), b.optional_int);
     for (b.sentinel) |e| {
         testing.expectEqual(@as(u8, 0), e);