| ... | @@ -18,16 +18,18 @@ comptime { | ... | @@ -18,16 +18,18 @@ comptime { |
| 18 | } | 18 | } |
| 19 | } | 19 | } |
| 20 | | 20 | |
| 21 | const Element = if (std.simd.suggestVectorLength(u8)) |vec_size| | 21 | const Element = Element: { |
| 22 | @Type(.{ .vector = .{ | 22 | if (std.simd.suggestVectorLength(u8)) |vec_size| { |
| 23 | .child = u8, | 23 | const Vec = @Vector(vec_size, u8); |
| 24 | .len = vec_size, | 24 | |
| 25 | } }) | 25 | if (@sizeOf(Vec) == vec_size and std.math.isPowerOfTwo(vec_size)) { |
| 26 | else | 26 | break :Element Vec; |
| 27 | usize; | 27 | } |
| | 28 | } |
| | 29 | break :Element usize; |
| | 30 | }; |
| 28 | | 31 | |
| 29 | comptime { | 32 | comptime { |
| 30 | assert(@sizeOf(Element) >= @alignOf(Element)); | | |
| 31 | assert(std.math.isPowerOfTwo(@sizeOf(Element))); | 33 | assert(std.math.isPowerOfTwo(@sizeOf(Element))); |
| 32 | } | 34 | } |
| 33 | | 35 | |