Zig 0.17.0-dev (Split by item)
This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig library itself.
Zig › std/ › crypto/ › chacha20.zig › ChaChaImpl
ChaChaImpl
chacha20.ChaChaImpl
fn ChaChaImpl (comptime rounds_nb : usize ) type
File
Code
fn ChaChaImpl (comptime rounds_nb : usize ) type {
switch (builtin .cpu .arch ) {
.x86_64 => {
if (builtin .zig_backend != .stage2_x86_64 and builtin .cpu .has (.x86 , .avx512f )) return ChaChaVecImpl (rounds_nb , 4 );
if (builtin .cpu .has (.x86 , .avx2 )) return ChaChaVecImpl (rounds_nb , 2 );
return ChaChaVecImpl (rounds_nb , 1 );
},
.aarch64 => {
if (builtin .zig_backend != .stage2_aarch64 and builtin .cpu .has (.aarch64 , .neon )) return ChaChaVecImpl (rounds_nb , 4 );
return ChaChaNonVecImpl (rounds_nb );
},
else => return ChaChaNonVecImpl (rounds_nb ),
}
}