Function shuffleVectorIndex [src]

Convert from clang __builtin_shufflevector index to Zig @shuffle index clang requires __builtin_shufflevector index arguments to be integer constants. negative values for this_index indicate "don't care". clang enforces that this_index is less than the total number of vector elements See https://ziglang.org/documentation/master/#shuffle See https://clang.llvm.org/docs/LanguageExtensions.html#langext-builtin-shufflevector

Prototype

pub fn shuffleVectorIndex(comptime this_index: c_int, comptime source_vector_len: usize) i32

Parameters

this_index: c_intsource_vector_len: usize

Source

pub fn shuffleVectorIndex(comptime this_index: c_int, comptime source_vector_len: usize) i32 { const positive_index = std.math.cast(usize, this_index) orelse return undefined; if (positive_index < source_vector_len) return @as(i32, @intCast(this_index)); const b_index = positive_index - source_vector_len; return ~@as(i32, @intCast(b_index)); }