Skip to documentation
SLOP

tiny.simd.parity

Reference tiny.simd parity

Defined in tiny.simd.

API (17)

Types and contracts

Public types and contracts.

Values and defaults

Public values and defaults.

No direct callersNo direct callstiny.simdparity
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Source: lib/simd/src/parity.zig

zig
const std = @import("std");const builtin = @import("builtin");pub const upstream_revision = "9e0fb74769a904eef000f9ded7002740a2c553a9";pub const upstream_source_manifest_sha256 = "8cd0dc8865a805fd64de4283baa092c4dfc2985d5d1e1aa2574685a36f89897e";pub const upstream_source_files: usize = 251;pub const upstream_top_level_files: usize = 58;pub const upstream_ops_files: usize = 18;pub const upstream_contrib_files: usize = 108;pub const upstream_tests_directory_files: usize = 67;pub const Callable = struct {    upstream: []const u8,    zig: []const u8,};pub const core_callables = [_]Callable{    .{ .upstream = "AESInvMixColumns", .zig = "aesInvMixColumns" },    .{ .upstream = "AESKeyGenAssist", .zig = "aesKeyGenAssist" },    .{ .upstream = "AESLastRound", .zig = "aesLastRound" },    .{ .upstream = "AESLastRoundInv", .zig = "aesLastRoundInv" },    .{ .upstream = "AESRound", .zig = "aesRound" },    .{ .upstream = "AESRoundInv", .zig = "aesRoundInv" },    .{ .upstream = "Abs", .zig = "abs" },    .{ .upstream = "AbsDiff", .zig = "absDiff" },    .{ .upstream = "AddSub", .zig = "addSub" },    .{ .upstream = "AllBits0", .zig = "allBits0" },    .{ .upstream = "AllBits1", .zig = "allBits1" },    .{ .upstream = "AllFalse", .zig = "allFalse" },    .{ .upstream = "AllTrue", .zig = "allTrue" },    .{ .upstream = "And", .zig = "and" },    .{ .upstream = "AndNot", .zig = "andNot" },    .{ .upstream = "AndXor", .zig = "andXor" },    .{ .upstream = "ApproximateReciprocal", .zig = "approximateReciprocal" },    .{ .upstream = "ApproximateReciprocalSqrt", .zig = "approximateReciprocalSqrt" },    .{ .upstream = "AverageRound", .zig = "averageRound" },    .{ .upstream = "BitCast", .zig = "bitCast" },    .{ .upstream = "BitShuffle", .zig = "bitShuffle" },    .{ .upstream = "BitsFromMask", .zig = "bitsFromMask" },    .{ .upstream = "BitwiseIfThenElse", .zig = "bitwiseIfThenElse" },    .{ .upstream = "BlendedStore", .zig = "blendedStore" },    .{ .upstream = "Blocks", .zig = "blocks" },    .{ .upstream = "Broadcast", .zig = "broadcast" },    .{ .upstream = "BroadcastBlock", .zig = "broadcastBlock" },    .{ .upstream = "BroadcastLane", .zig = "broadcastLane" },    .{ .upstream = "BroadcastSignBit", .zig = "broadcastSignBit" },    .{ .upstream = "CLMulLower", .zig = "clMulLower" },    .{ .upstream = "CLMulUpper", .zig = "clMulUpper" },    .{ .upstream = "Ceil", .zig = "ceil" },    .{ .upstream = "CeilInt", .zig = "ceilInt" },    .{ .upstream = "Clamp", .zig = "clamp" },    .{ .upstream = "Combine", .zig = "combine" },    .{ .upstream = "CombineMasks", .zig = "combineMasks" },    .{ .upstream = "CombineShiftRightBytes", .zig = "combineShiftRightBytes" },    .{ .upstream = "CombineShiftRightLanes", .zig = "combineShiftRightLanes" },    .{ .upstream = "ComplexConj", .zig = "complexConj" },    .{ .upstream = "Compress", .zig = "compress" },    .{ .upstream = "CompressBits", .zig = "compressBits" },    .{ .upstream = "CompressBitsStore", .zig = "compressBitsStore" },    .{ .upstream = "CompressBlendedStore", .zig = "compressBlendedStore" },    .{ .upstream = "CompressBlocksNot", .zig = "compressBlocksNot" },    .{ .upstream = "CompressNot", .zig = "compressNot" },    .{ .upstream = "CompressStore", .zig = "compressStore" },    .{ .upstream = "ConcatEven", .zig = "concatEven" },    .{ .upstream = "ConcatLowerLower", .zig = "concatLowerLower" },    .{ .upstream = "ConcatLowerUpper", .zig = "concatLowerUpper" },    .{ .upstream = "ConcatOdd", .zig = "concatOdd" },    .{ .upstream = "ConcatUpperLower", .zig = "concatUpperLower" },    .{ .upstream = "ConcatUpperUpper", .zig = "concatUpperUpper" },    .{ .upstream = "ConvertInRangeTo", .zig = "convertInRangeTo" },    .{ .upstream = "ConvertTo", .zig = "convertTo" },    .{ .upstream = "CopySign", .zig = "copySign" },    .{ .upstream = "CopySignToAbs", .zig = "copySignToAbs" },    .{ .upstream = "CountTrue", .zig = "countTrue" },    .{ .upstream = "Create2", .zig = "create2" },    .{ .upstream = "Create3", .zig = "create3" },    .{ .upstream = "Create4", .zig = "create4" },    .{ .upstream = "DemoteInRangeTo", .zig = "demoteInRangeTo" },    .{ .upstream = "DemoteMaskTo", .zig = "demoteMaskTo" },    .{ .upstream = "DemoteTo", .zig = "demoteTo" },    .{ .upstream = "DemoteToNearestInt", .zig = "demoteToNearestInt" },    .{ .upstream = "Dup128MaskFromMaskBits", .zig = "dup128MaskFromMaskBits" },    .{ .upstream = "Dup128VecFromValues", .zig = "dup128VecFromValues" },    .{ .upstream = "DupEven", .zig = "dupEven" },    .{ .upstream = "DupOdd", .zig = "dupOdd" },    .{ .upstream = "Eq128", .zig = "eq128" },    .{ .upstream = "Eq128Upper", .zig = "eq128Upper" },    .{ .upstream = "ExclusiveNeither", .zig = "exclusiveNeither" },    .{ .upstream = "Expand", .zig = "expand" },    .{ .upstream = "ExtractBlock", .zig = "extractBlock" },    .{ .upstream = "ExtractLane", .zig = "extractLane" },    .{ .upstream = "FindFirstTrue", .zig = "findFirstTrue" },    .{ .upstream = "FindKnownFirstTrue", .zig = "findKnownFirstTrue" },    .{ .upstream = "FindKnownLastTrue", .zig = "findKnownLastTrue" },    .{ .upstream = "FindLastTrue", .zig = "findLastTrue" },    .{ .upstream = "FirstN", .zig = "firstN" },    .{ .upstream = "Floor", .zig = "floor" },    .{ .upstream = "FloorInt", .zig = "floorInt" },    .{ .upstream = "FlushCacheline", .zig = "flushCacheline" },    .{ .upstream = "FlushStream", .zig = "flushStream" },    .{ .upstream = "GatherIndex", .zig = "gatherIndex" },    .{ .upstream = "GatherIndexN", .zig = "gatherIndexN" },    .{ .upstream = "GatherOffset", .zig = "gatherOffset" },    .{ .upstream = "Get2", .zig = "get2" },    .{ .upstream = "Get3", .zig = "get3" },    .{ .upstream = "Get4", .zig = "get4" },    .{ .upstream = "GetBiasedExponent", .zig = "getBiasedExponent" },    .{ .upstream = "GetExponent", .zig = "getExponent" },    .{ .upstream = "GetLane", .zig = "getLane" },    .{ .upstream = "HighestSetBitIndex", .zig = "highestSetBitIndex" },    .{ .upstream = "IfNegativeThenElse", .zig = "ifNegativeThenElse" },    .{ .upstream = "IfNegativeThenElseZero", .zig = "ifNegativeThenElseZero" },    .{ .upstream = "IfNegativeThenNegOrUndefIfZero", .zig = "ifNegativeThenNegOrUndefIfZero" },    .{ .upstream = "IfNegativeThenZeroElse", .zig = "ifNegativeThenZeroElse" },    .{ .upstream = "IfThenElse", .zig = "ifThenElse" },    .{ .upstream = "IfThenElseZero", .zig = "ifThenElseZero" },    .{ .upstream = "IfThenZeroElse", .zig = "ifThenZeroElse" },    .{ .upstream = "IfVecThenElse", .zig = "ifVecThenElse" },    .{ .upstream = "IndicesFromVec", .zig = "indicesFromVec" },    .{ .upstream = "InsertBlock", .zig = "insertBlock" },    .{ .upstream = "InsertIntoUpper", .zig = "insertIntoUpper" },    .{ .upstream = "InsertLane", .zig = "insertLane" },    .{ .upstream = "InterleaveEven", .zig = "interleaveEven" },    .{ .upstream = "InterleaveEvenBlocks", .zig = "interleaveEvenBlocks" },    .{ .upstream = "InterleaveLower", .zig = "interleaveLower" },    .{ .upstream = "InterleaveLowerBlocks", .zig = "interleaveLowerBlocks" },    .{ .upstream = "InterleaveOdd", .zig = "interleaveOdd" },    .{ .upstream = "InterleaveOddBlocks", .zig = "interleaveOddBlocks" },    .{ .upstream = "InterleaveUpper", .zig = "interleaveUpper" },    .{ .upstream = "InterleaveUpperBlocks", .zig = "interleaveUpperBlocks" },    .{ .upstream = "InterleaveWholeLower", .zig = "interleaveWholeLower" },    .{ .upstream = "InterleaveWholeUpper", .zig = "interleaveWholeUpper" },    .{ .upstream = "Iota", .zig = "iota" },    .{ .upstream = "IsEitherNaN", .zig = "isEitherNaN" },    .{ .upstream = "IsFinite", .zig = "isFinite" },    .{ .upstream = "IsInf", .zig = "isInf" },    .{ .upstream = "IsNaN", .zig = "isNaN" },    .{ .upstream = "IsNegative", .zig = "isNegative" },    .{ .upstream = "LeadingZeroCount", .zig = "leadingZeroCount" },    .{ .upstream = "Load", .zig = "load" },    .{ .upstream = "LoadDup128", .zig = "loadDup128" },    .{ .upstream = "LoadExpand", .zig = "loadExpand" },    .{ .upstream = "LoadInterleaved2", .zig = "loadInterleaved2" },    .{ .upstream = "LoadInterleaved3", .zig = "loadInterleaved3" },    .{ .upstream = "LoadInterleaved4", .zig = "loadInterleaved4" },    .{ .upstream = "LoadMaskBits", .zig = "loadMaskBits" },    .{ .upstream = "LoadN", .zig = "loadN" },    .{ .upstream = "LoadNOr", .zig = "loadNOr" },    .{ .upstream = "LoadU", .zig = "loadU" },    .{ .upstream = "Lookup16", .zig = "lookup16" },    .{ .upstream = "Lookup32", .zig = "lookup32" },    .{ .upstream = "Lookup8", .zig = "lookup8" },    .{ .upstream = "LowerHalf", .zig = "lowerHalf" },    .{ .upstream = "LowerHalfOfMask", .zig = "lowerHalfOfMask" },    .{ .upstream = "Lt128", .zig = "lt128" },    .{ .upstream = "Lt128Upper", .zig = "lt128Upper" },    .{ .upstream = "MaskFalse", .zig = "maskFalse" },    .{ .upstream = "MaskFromVec", .zig = "maskFromVec" },    .{ .upstream = "MaskedAbs", .zig = "maskedAbs" },    .{ .upstream = "MaskedAbsOr", .zig = "maskedAbsOr" },    .{ .upstream = "MaskedAdd", .zig = "maskedAdd" },    .{ .upstream = "MaskedAddOr", .zig = "maskedAddOr" },    .{ .upstream = "MaskedApproximateReciprocal", .zig = "maskedApproximateReciprocal" },    .{ .upstream = "MaskedApproximateReciprocalSqrt", .zig = "maskedApproximateReciprocalSqrt" },    .{ .upstream = "MaskedConvertTo", .zig = "maskedConvertTo" },    .{ .upstream = "MaskedDiv", .zig = "maskedDiv" },    .{ .upstream = "MaskedDivOr", .zig = "maskedDivOr" },    .{ .upstream = "MaskedEq", .zig = "maskedEq" },    .{ .upstream = "MaskedGatherIndex", .zig = "maskedGatherIndex" },    .{ .upstream = "MaskedGatherIndexOr", .zig = "maskedGatherIndexOr" },    .{ .upstream = "MaskedGe", .zig = "maskedGe" },    .{ .upstream = "MaskedGt", .zig = "maskedGt" },    .{ .upstream = "MaskedIsNaN", .zig = "maskedIsNaN" },    .{ .upstream = "MaskedLe", .zig = "maskedLe" },    .{ .upstream = "MaskedLeadingZeroCount", .zig = "maskedLeadingZeroCount" },    .{ .upstream = "MaskedLoad", .zig = "maskedLoad" },    .{ .upstream = "MaskedLoadOr", .zig = "maskedLoadOr" },    .{ .upstream = "MaskedLt", .zig = "maskedLt" },    .{ .upstream = "MaskedMax", .zig = "maskedMax" },    .{ .upstream = "MaskedMaxOr", .zig = "maskedMaxOr" },    .{ .upstream = "MaskedMinOr", .zig = "maskedMinOr" },    .{ .upstream = "MaskedModOr", .zig = "maskedModOr" },    .{ .upstream = "MaskedMul", .zig = "maskedMul" },    .{ .upstream = "MaskedMulAdd", .zig = "maskedMulAdd" },    .{ .upstream = "MaskedMulAddOr", .zig = "maskedMulAddOr" },    .{ .upstream = "MaskedMulComplexConj", .zig = "maskedMulComplexConj" },    .{ .upstream = "MaskedMulComplexConjAdd", .zig = "maskedMulComplexConjAdd" },    .{ .upstream = "MaskedMulComplexOr", .zig = "maskedMulComplexOr" },    .{ .upstream = "MaskedMulFixedPoint15", .zig = "maskedMulFixedPoint15" },    .{ .upstream = "MaskedMulOr", .zig = "maskedMulOr" },    .{ .upstream = "MaskedMulSub", .zig = "maskedMulSub" },    .{ .upstream = "MaskedMulSubOr", .zig = "maskedMulSubOr" },    .{ .upstream = "MaskedNe", .zig = "maskedNe" },    .{ .upstream = "MaskedNegMulAdd", .zig = "maskedNegMulAdd" },    .{ .upstream = "MaskedNegMulAddOr", .zig = "maskedNegMulAddOr" },    .{ .upstream = "MaskedNegMulSub", .zig = "maskedNegMulSub" },    .{ .upstream = "MaskedNegMulSubOr", .zig = "maskedNegMulSubOr" },    .{ .upstream = "MaskedOr", .zig = "maskedOr" },    .{ .upstream = "MaskedOrOr", .zig = "maskedOrOr" },    .{ .upstream = "MaskedReduceMax", .zig = "maskedReduceMax" },    .{ .upstream = "MaskedReduceMin", .zig = "maskedReduceMin" },    .{ .upstream = "MaskedReduceSum", .zig = "maskedReduceSum" },    .{ .upstream = "MaskedSatAddOr", .zig = "maskedSatAddOr" },    .{ .upstream = "MaskedSatSubOr", .zig = "maskedSatSubOr" },    .{ .upstream = "MaskedSaturatedAdd", .zig = "maskedSaturatedAdd" },    .{ .upstream = "MaskedSaturatedSub", .zig = "maskedSaturatedSub" },    .{ .upstream = "MaskedScatterIndex", .zig = "maskedScatterIndex" },    .{ .upstream = "MaskedSet", .zig = "maskedSet" },    .{ .upstream = "MaskedSetOr", .zig = "maskedSetOr" },    .{ .upstream = "MaskedShiftLeft", .zig = "maskedShiftLeft" },    .{ .upstream = "MaskedShiftLeftOr", .zig = "maskedShiftLeftOr" },    .{ .upstream = "MaskedShiftRight", .zig = "maskedShiftRight" },    .{ .upstream = "MaskedShiftRightOr", .zig = "maskedShiftRightOr" },    .{ .upstream = "MaskedShl", .zig = "maskedShl" },    .{ .upstream = "MaskedShlOr", .zig = "maskedShlOr" },    .{ .upstream = "MaskedShr", .zig = "maskedShr" },    .{ .upstream = "MaskedShrOr", .zig = "maskedShrOr" },    .{ .upstream = "MaskedSqrt", .zig = "maskedSqrt" },    .{ .upstream = "MaskedSqrtOr", .zig = "maskedSqrtOr" },    .{ .upstream = "MaskedSub", .zig = "maskedSub" },    .{ .upstream = "MaskedSubOr", .zig = "maskedSubOr" },    .{ .upstream = "MaskedWidenMulPairwiseAdd", .zig = "maskedWidenMulPairwiseAdd" },    .{ .upstream = "MaskedXor", .zig = "maskedXor" },    .{ .upstream = "MaskedXorOr", .zig = "maskedXorOr" },    .{ .upstream = "Max", .zig = "max" },    .{ .upstream = "Max128", .zig = "max128" },    .{ .upstream = "Max128Upper", .zig = "max128Upper" },    .{ .upstream = "MaxMagnitude", .zig = "maxMagnitude" },    .{ .upstream = "MaxNumber", .zig = "maxNumber" },    .{ .upstream = "MaxOfLanes", .zig = "maxOfLanes" },    .{ .upstream = "Min", .zig = "min" },    .{ .upstream = "Min128", .zig = "min128" },    .{ .upstream = "Min128Upper", .zig = "min128Upper" },    .{ .upstream = "MinMagnitude", .zig = "minMagnitude" },    .{ .upstream = "MinNumber", .zig = "minNumber" },    .{ .upstream = "MinOfLanes", .zig = "minOfLanes" },    .{ .upstream = "MulAdd", .zig = "mulAdd" },    .{ .upstream = "MulAddSub", .zig = "mulAddSub" },    .{ .upstream = "MulByFloorPow2", .zig = "mulByFloorPow2" },    .{ .upstream = "MulByPow2", .zig = "mulByPow2" },    .{ .upstream = "MulComplex", .zig = "mulComplex" },    .{ .upstream = "MulComplexAdd", .zig = "mulComplexAdd" },    .{ .upstream = "MulComplexConj", .zig = "mulComplexConj" },    .{ .upstream = "MulComplexConjAdd", .zig = "mulComplexConjAdd" },    .{ .upstream = "MulEven", .zig = "mulEven" },    .{ .upstream = "MulEvenAdd", .zig = "mulEvenAdd" },    .{ .upstream = "MulFixedPoint15", .zig = "mulFixedPoint15" },    .{ .upstream = "MulHigh", .zig = "mulHigh" },    .{ .upstream = "MulOdd", .zig = "mulOdd" },    .{ .upstream = "MulOddAdd", .zig = "mulOddAdd" },    .{ .upstream = "MulRound", .zig = "mulRound" },    .{ .upstream = "MulSub", .zig = "mulSub" },    .{ .upstream = "MulSubAdd", .zig = "mulSubAdd" },    .{ .upstream = "MultiRotateRight", .zig = "multiRotateRight" },    .{ .upstream = "Ne128", .zig = "ne128" },    .{ .upstream = "Ne128Upper", .zig = "ne128Upper" },    .{ .upstream = "NearestInt", .zig = "nearestInt" },    .{ .upstream = "Neg", .zig = "neg" },    .{ .upstream = "NegMulAdd", .zig = "negMulAdd" },    .{ .upstream = "NegMulSub", .zig = "negMulSub" },    .{ .upstream = "Not", .zig = "not" },    .{ .upstream = "OddEven", .zig = "oddEven" },    .{ .upstream = "OddEvenBlocks", .zig = "oddEvenBlocks" },    .{ .upstream = "Or", .zig = "or" },    .{ .upstream = "Or3", .zig = "or3" },    .{ .upstream = "OrAnd", .zig = "orAnd" },    .{ .upstream = "OrderedDemote2MasksTo", .zig = "orderedDemote2MasksTo" },    .{ .upstream = "OrderedDemote2To", .zig = "orderedDemote2To" },    .{ .upstream = "OrderedRoundingShiftRightAndDemote2To", .zig = "orderedRoundingShiftRightAndDemote2To" },    .{ .upstream = "OrderedShiftRightAndDemote2To", .zig = "orderedShiftRightAndDemote2To" },    .{ .upstream = "OrderedTruncate2To", .zig = "orderedTruncate2To" },    .{ .upstream = "PairwiseAdd", .zig = "pairwiseAdd" },    .{ .upstream = "PairwiseAdd128", .zig = "pairwiseAdd128" },    .{ .upstream = "PairwiseSub", .zig = "pairwiseSub" },    .{ .upstream = "PairwiseSub128", .zig = "pairwiseSub128" },    .{ .upstream = "Pause", .zig = "pause" },    .{ .upstream = "Per4LaneBlockShuffle", .zig = "per4LaneBlockShuffle" },    .{ .upstream = "PopulationCount", .zig = "populationCount" },    .{ .upstream = "Prefetch", .zig = "prefetch" },    .{ .upstream = "Print", .zig = "writeVector" },    .{ .upstream = "PromoteEvenTo", .zig = "promoteEvenTo" },    .{ .upstream = "PromoteInRangeEvenTo", .zig = "promoteInRangeEvenTo" },    .{ .upstream = "PromoteInRangeLowerTo", .zig = "promoteInRangeLowerTo" },    .{ .upstream = "PromoteInRangeOddTo", .zig = "promoteInRangeOddTo" },    .{ .upstream = "PromoteInRangeTo", .zig = "promoteInRangeTo" },    .{ .upstream = "PromoteInRangeUpperTo", .zig = "promoteInRangeUpperTo" },    .{ .upstream = "PromoteLowerTo", .zig = "promoteLowerTo" },    .{ .upstream = "PromoteMaskTo", .zig = "promoteMaskTo" },    .{ .upstream = "PromoteOddTo", .zig = "promoteOddTo" },    .{ .upstream = "PromoteTo", .zig = "promoteTo" },    .{ .upstream = "PromoteUpperTo", .zig = "promoteUpperTo" },    .{ .upstream = "RearrangeToOddPlusEven", .zig = "rearrangeToOddPlusEven" },    .{ .upstream = "RebindMask", .zig = "rebindMask" },    .{ .upstream = "ReduceMax", .zig = "reduceMax" },    .{ .upstream = "ReduceMin", .zig = "reduceMin" },    .{ .upstream = "ReduceSum", .zig = "reduceSum" },    .{ .upstream = "ReorderDemote2To", .zig = "reorderDemote2To" },    .{ .upstream = "ReorderRoundingShiftRightAndDemote2To", .zig = "reorderRoundingShiftRightAndDemote2To" },    .{ .upstream = "ReorderShiftRightAndDemote2To", .zig = "reorderShiftRightAndDemote2To" },    .{ .upstream = "ReorderWidenMulAccumulate", .zig = "reorderWidenMulAccumulate" },    .{ .upstream = "ResizeBitCast", .zig = "resizeBitCast" },    .{ .upstream = "Reverse", .zig = "reverse" },    .{ .upstream = "Reverse2", .zig = "reverse2" },    .{ .upstream = "Reverse4", .zig = "reverse4" },    .{ .upstream = "Reverse8", .zig = "reverse8" },    .{ .upstream = "ReverseBits", .zig = "reverseBits" },    .{ .upstream = "ReverseBlocks", .zig = "reverseBlocks" },    .{ .upstream = "ReverseLaneBytes", .zig = "reverseLaneBytes" },    .{ .upstream = "Rol", .zig = "rol" },    .{ .upstream = "Ror", .zig = "ror" },    .{ .upstream = "RotateLeft", .zig = "rotateLeft" },    .{ .upstream = "RotateLeftSame", .zig = "rotateLeftSame" },    .{ .upstream = "RotateRight", .zig = "rotateRight" },    .{ .upstream = "RotateRightSame", .zig = "rotateRightSame" },    .{ .upstream = "Round", .zig = "round" },    .{ .upstream = "RoundingShiftRight", .zig = "roundingShiftRight" },    .{ .upstream = "RoundingShiftRightAndDemoteTo", .zig = "roundingShiftRightAndDemoteTo" },    .{ .upstream = "RoundingShiftRightSame", .zig = "roundingShiftRightSame" },    .{ .upstream = "RoundingShr", .zig = "roundingShr" },    .{ .upstream = "SafeCopyN", .zig = "safeCopyN" },    .{ .upstream = "SafeFillN", .zig = "safeFillN" },    .{ .upstream = "SatWidenMulAccumFixedPoint", .zig = "satWidenMulAccumFixedPoint" },    .{ .upstream = "SatWidenMulPairwiseAccumulate", .zig = "satWidenMulPairwiseAccumulate" },    .{ .upstream = "SatWidenMulPairwiseAdd", .zig = "satWidenMulPairwiseAdd" },    .{ .upstream = "SaturatedAbs", .zig = "saturatedAbs" },    .{ .upstream = "SaturatedAdd", .zig = "saturatedAdd" },    .{ .upstream = "SaturatedNeg", .zig = "saturatedNeg" },    .{ .upstream = "SaturatedSub", .zig = "saturatedSub" },    .{ .upstream = "ScatterIndex", .zig = "scatterIndex" },    .{ .upstream = "ScatterIndexN", .zig = "scatterIndexN" },    .{ .upstream = "ScatterOffset", .zig = "scatterOffset" },    .{ .upstream = "Set", .zig = "set" },    .{ .upstream = "Set2", .zig = "set2" },    .{ .upstream = "Set3", .zig = "set3" },    .{ .upstream = "Set4", .zig = "set4" },    .{ .upstream = "SetAtOrAfterFirst", .zig = "setAtOrAfterFirst" },    .{ .upstream = "SetAtOrBeforeFirst", .zig = "setAtOrBeforeFirst" },    .{ .upstream = "SetBeforeFirst", .zig = "setBeforeFirst" },    .{ .upstream = "SetMask", .zig = "setMask" },    .{ .upstream = "SetOnlyFirst", .zig = "setOnlyFirst" },    .{ .upstream = "SetTableIndices", .zig = "setTableIndices" },    .{ .upstream = "ShiftLeft", .zig = "shiftLeft" },    .{ .upstream = "ShiftLeftBytes", .zig = "shiftLeftBytes" },    .{ .upstream = "ShiftLeftLanes", .zig = "shiftLeftLanes" },    .{ .upstream = "ShiftLeftSame", .zig = "shiftLeftSame" },    .{ .upstream = "ShiftRight", .zig = "shiftRight" },    .{ .upstream = "ShiftRightAndDemoteTo", .zig = "shiftRightAndDemoteTo" },    .{ .upstream = "ShiftRightBytes", .zig = "shiftRightBytes" },    .{ .upstream = "ShiftRightLanes", .zig = "shiftRightLanes" },    .{ .upstream = "ShiftRightSame", .zig = "shiftRightSame" },    .{ .upstream = "Shuffle01", .zig = "shuffle01" },    .{ .upstream = "Shuffle0123", .zig = "shuffle0123" },    .{ .upstream = "Shuffle0321", .zig = "shuffle0321" },    .{ .upstream = "Shuffle1032", .zig = "shuffle1032" },    .{ .upstream = "Shuffle2103", .zig = "shuffle2103" },    .{ .upstream = "Shuffle2301", .zig = "shuffle2301" },    .{ .upstream = "SignBit", .zig = "signBit" },    .{ .upstream = "Slide1Down", .zig = "slide1Down" },    .{ .upstream = "Slide1DownOr", .zig = "slide1DownOr" },    .{ .upstream = "Slide1Up", .zig = "slide1Up" },    .{ .upstream = "Slide1UpOr", .zig = "slide1UpOr" },    .{ .upstream = "SlideDownBlocks", .zig = "slideDownBlocks" },    .{ .upstream = "SlideDownLanes", .zig = "slideDownLanes" },    .{ .upstream = "SlideDownLanesOr", .zig = "slideDownLanesOr" },    .{ .upstream = "SlideMask1Down", .zig = "slideMask1Down" },    .{ .upstream = "SlideMask1Up", .zig = "slideMask1Up" },    .{ .upstream = "SlideMaskDownLanes", .zig = "slideMaskDownLanes" },    .{ .upstream = "SlideMaskUpLanes", .zig = "slideMaskUpLanes" },    .{ .upstream = "SlideUpBlocks", .zig = "slideUpBlocks" },    .{ .upstream = "SlideUpLanes", .zig = "slideUpLanes" },    .{ .upstream = "SlideUpLanesOr", .zig = "slideUpLanesOr" },    .{ .upstream = "Sqrt", .zig = "sqrt" },    .{ .upstream = "Store", .zig = "store" },    .{ .upstream = "StoreInterleaved2", .zig = "storeInterleaved2" },    .{ .upstream = "StoreInterleaved3", .zig = "storeInterleaved3" },    .{ .upstream = "StoreInterleaved4", .zig = "storeInterleaved4" },    .{ .upstream = "StoreMaskBits", .zig = "storeMaskBits" },    .{ .upstream = "StoreN", .zig = "storeN" },    .{ .upstream = "StoreU", .zig = "storeU" },    .{ .upstream = "Stream", .zig = "stream" },    .{ .upstream = "SumOfLanes", .zig = "sumOfLanes" },    .{ .upstream = "SumOfMulQuadAccumulate", .zig = "sumOfMulQuadAccumulate" },    .{ .upstream = "SumsOf2", .zig = "sumsOf2" },    .{ .upstream = "SumsOf4", .zig = "sumsOf4" },    .{ .upstream = "SumsOf8", .zig = "sumsOf8" },    .{ .upstream = "SumsOf8AbsDiff", .zig = "sumsOf8AbsDiff" },    .{ .upstream = "SumsOfAdjQuadAbsDiff", .zig = "sumsOfAdjQuadAbsDiff" },    .{ .upstream = "SumsOfShuffledQuadAbsDiff", .zig = "sumsOfShuffledQuadAbsDiff" },    .{ .upstream = "SwapAdjacentBlocks", .zig = "swapAdjacentBlocks" },    .{ .upstream = "TableLookupBytes", .zig = "tableLookupBytes" },    .{ .upstream = "TableLookupBytesOr0", .zig = "tableLookupBytesOr0" },    .{ .upstream = "TableLookupLanes", .zig = "tableLookupLanes" },    .{ .upstream = "TestBit", .zig = "testBit" },    .{ .upstream = "TrailingZeroCount", .zig = "trailingZeroCount" },    .{ .upstream = "Trunc", .zig = "trunc" },    .{ .upstream = "TruncateStore", .zig = "truncateStore" },    .{ .upstream = "TruncateTo", .zig = "truncateTo" },    .{ .upstream = "TwoTablesLookupLanes", .zig = "twoTablesLookupLanes" },    .{ .upstream = "U8FromU32", .zig = "u8FromU32" },    .{ .upstream = "Undefined", .zig = "undefined" },    .{ .upstream = "UpperHalf", .zig = "upperHalf" },    .{ .upstream = "UpperHalfOfMask", .zig = "upperHalfOfMask" },    .{ .upstream = "VecFromMask", .zig = "vecFromMask" },    .{ .upstream = "WidenMulAccumulate", .zig = "widenMulAccumulate" },    .{ .upstream = "WidenMulPairwiseAdd", .zig = "widenMulPairwiseAdd" },    .{ .upstream = "Xor", .zig = "xor" },    .{ .upstream = "Xor3", .zig = "xor3" },    .{ .upstream = "XorAndNot", .zig = "xorAndNot" },    .{ .upstream = "Zero", .zig = "zero" },    .{ .upstream = "ZeroExtendResizeBitCast", .zig = "zeroExtendResizeBitCast" },    .{ .upstream = "ZeroExtendVector", .zig = "zeroExtendVector" },    .{ .upstream = "ZeroIfNegative", .zig = "zeroIfNegative" },    .{ .upstream = "ZipLower", .zig = "zipLower" },    .{ .upstream = "ZipUpper", .zig = "zipUpper" },};pub const supplemental_callables = [_]Callable{    .{ .upstream = "Add", .zig = "add" },    .{ .upstream = "BF16FromF32", .zig = "bf16FromF32" },    .{ .upstream = "BF16FromF64", .zig = "bf16FromF64" },    .{ .upstream = "BlockDFromD", .zig = "BlockDFromD" },    .{ .upstream = "CanLookup16", .zig = "canLookup16" },    .{ .upstream = "CanLookup32", .zig = "canLookup32" },    .{ .upstream = "CanLookup8", .zig = "canLookup8" },    .{ .upstream = "CappedTag", .zig = "CappedTag" },    .{ .upstream = "CappedTag<T,kLimit,kPow2>", .zig = "CappedTagPow2" },    .{ .upstream = "CappedTagIfFixed", .zig = "CappedTagIfFixed" },    .{ .upstream = "CappedTagIfFixed<T,kLimit,kPow2>", .zig = "CappedTagIfFixedPow2" },    .{ .upstream = "CuckooBuildAlgo", .zig = "CuckooBuildAlgo" },    .{ .upstream = "DFromV", .zig = "DFromV" },    .{ .upstream = "Div", .zig = "div" },    .{ .upstream = "Divisor", .zig = "Divisor" },    .{ .upstream = "Divisor64", .zig = "Divisor64" },    .{ .upstream = "Eq", .zig = "eq" },    .{ .upstream = "F32FromBF16", .zig = "f32FromBF16" },    .{ .upstream = "FixedTag", .zig = "FixedTag" },    .{ .upstream = "FloatFromSize", .zig = "FloatFromSize" },    .{ .upstream = "Full128", .zig = "Full128" },    .{ .upstream = "Full16", .zig = "Full16" },    .{ .upstream = "Full32", .zig = "Full32" },    .{ .upstream = "Full64", .zig = "Full64" },    .{ .upstream = "GatherIndexNOr", .zig = "gatherIndexNOr" },    .{ .upstream = "Ge", .zig = "ge" },    .{ .upstream = "Gt", .zig = "gt" },    .{ .upstream = "Half", .zig = "Half" },    .{ .upstream = "Inf", .zig = "inf" },    .{ .upstream = "IsAligned", .zig = "isDescriptorAligned" },    .{ .upstream = "IsFloat", .zig = "isFloat" },    .{ .upstream = "IsFloat3264", .zig = "isFloat3264" },    .{ .upstream = "IsIntegerLaneType", .zig = "isIntegerLane" },    .{ .upstream = "IsSigned", .zig = "isSigned" },    .{ .upstream = "IsSpecialFloat", .zig = "isSpecialFloat" },    .{ .upstream = "IsUnsigned", .zig = "isUnsigned" },    .{ .upstream = "K32V32", .zig = "K32V32" },    .{ .upstream = "K64V64", .zig = "K64V64" },    .{ .upstream = "Lanes", .zig = "laneCount" },    .{ .upstream = "Le", .zig = "le" },    .{ .upstream = "LemireMod", .zig = "lemireMod" },    .{ .upstream = "Lt", .zig = "lt" },    .{ .upstream = "MFromD", .zig = "MFromD" },    .{ .upstream = "MakeFloat", .zig = "MakeFloat" },    .{ .upstream = "MakeNarrow", .zig = "MakeNarrow" },    .{ .upstream = "MakeSigned", .zig = "MakeSigned" },    .{ .upstream = "MakeUnsigned", .zig = "MakeUnsigned" },    .{ .upstream = "MakeWide", .zig = "MakeWide" },    .{ .upstream = "Mask", .zig = "Mask" },    .{ .upstream = "MaxBlocks", .zig = "maxBlocks" },    .{ .upstream = "MaxBytes", .zig = "maxBytes" },    .{ .upstream = "MaxLanes", .zig = "maxLanes" },    .{ .upstream = "Mod", .zig = "mod" },    .{ .upstream = "Mul", .zig = "mul" },    .{ .upstream = "NaN", .zig = "nan" },    .{ .upstream = "Ne", .zig = "ne" },    .{ .upstream = "PerBlock2x2MatMul", .zig = "perBlock2x2MatMul" },    .{ .upstream = "Pow2", .zig = "pow2" },    .{ .upstream = "Rebind", .zig = "Rebind" },    .{ .upstream = "RebindToFloat", .zig = "RebindToFloat" },    .{ .upstream = "RebindToSigned", .zig = "RebindToSigned" },    .{ .upstream = "RebindToUnsigned", .zig = "RebindToUnsigned" },    .{ .upstream = "Repartition", .zig = "Repartition" },    .{ .upstream = "RepartitionToNarrow", .zig = "RepartitionToNarrow" },    .{ .upstream = "RepartitionToWide", .zig = "RepartitionToWide" },    .{ .upstream = "RepartitionToWideX2", .zig = "RepartitionToWideX2" },    .{ .upstream = "RepartitionToWideX3", .zig = "RepartitionToWideX3" },    .{ .upstream = "ScalableTag", .zig = "ScalableTag" },    .{ .upstream = "ScalableTag<T,kPow2>", .zig = "ScalableTagPow2" },    .{ .upstream = "Shl", .zig = "shl" },    .{ .upstream = "Shr", .zig = "shr" },    .{ .upstream = "SignedFromSize", .zig = "SignedFromSize" },    .{ .upstream = "Sub", .zig = "sub" },    .{ .upstream = "TFromD", .zig = "TFromD" },    .{ .upstream = "TFromV", .zig = "TFromV" },    .{ .upstream = "Twice", .zig = "Twice" },    .{ .upstream = "UnsignedFromSize", .zig = "UnsignedFromSize" },    .{ .upstream = "VFromD", .zig = "VFromD" },    .{ .upstream = "Vec", .zig = "Vec" },    .{ .upstream = "bfloat16_t", .zig = "BFloat16" },};pub const Substitution = struct {    upstream: []const u8,    zig: []const u8,    disposition: Disposition,};pub const substitutions = [_]Substitution{    .{ .upstream = "AddWithWraparound", .zig = "+% for integers; + or BFloat16.add for floats", .disposition = .compiler },    .{ .upstream = "BitCastScalar", .zig = "@bitCast", .disposition = .compiler },    .{ .upstream = "CappedLanes on RVV", .zig = "@min(cap, laneCount(D)) in fixed Zig vector owners", .disposition = .compiler },    .{ .upstream = "CeilLog2", .zig = "std.math.log2_int_ceil", .disposition = .compiler },    .{ .upstream = "ConvertScalarTo", .zig = "explicit Zig scalar casts and BFloat16 conversion methods", .disposition = .compiler },    .{ .upstream = "CopyBytes", .zig = "@memcpy", .disposition = .compiler },    .{ .upstream = "CopySameSize", .zig = "@memcpy", .disposition = .compiler },    .{ .upstream = "DFromM", .zig = "caller-retained descriptor for @Vector(N, bool)", .disposition = .compiler },    .{ .upstream = "DFromV for BFloat16 storage", .zig = "caller-retained BFloat16 descriptor for @Vector(N, u16)", .disposition = .compiler },    .{ .upstream = "DeclVal", .zig = "comptime type checking", .disposition = .compiler },    .{ .upstream = "DivCeil", .zig = "std.math.divCeil", .disposition = .compiler },    .{ .upstream = "EnableIf", .zig = "comptime parameters and @compileError", .disposition = .compiler },    .{ .upstream = "Epsilon", .zig = "std.math.floatEps, integer one, or BFloat16.fromBits", .disposition = .compiler },    .{ .upstream = "ExponentBits", .zig = "@bitSizeOf minus mantissa and sign bits", .disposition = .compiler },    .{ .upstream = "ExponentMask", .zig = "comptime IEEE bit mask", .disposition = .compiler },    .{ .upstream = "F16FromF32", .zig = "@floatCast to f16", .disposition = .compiler },    .{ .upstream = "F16FromF64", .zig = "@floatCast to f16", .disposition = .compiler },    .{ .upstream = "F32FromBF16Mem", .zig = "std.mem.bytesToValue and BFloat16.toF32", .disposition = .compiler },    .{ .upstream = "F32FromF16", .zig = "@floatCast from f16", .disposition = .compiler },    .{ .upstream = "F32FromF16Mem", .zig = "std.mem.bytesToValue and @floatCast", .disposition = .compiler },    .{ .upstream = "FillBytes", .zig = "@memset", .disposition = .compiler },    .{ .upstream = "FloatTag", .zig = "@typeInfo float branch", .disposition = .compiler },    .{ .upstream = "FloorLog2", .zig = "std.math.log2_int", .disposition = .compiler },    .{ .upstream = "HighestValue", .zig = "std.math maxInt or floatMax; BFloat16.fromBits", .disposition = .compiler },    .{ .upstream = "If", .zig = "comptime if", .disposition = .compiler },    .{ .upstream = "IsArray", .zig = "@typeInfo array branch", .disposition = .compiler },    .{ .upstream = "IsAssignable", .zig = "Zig compile-time assignment checking", .disposition = .compiler },    .{ .upstream = "IsConst", .zig = "pointer child constness in @typeInfo", .disposition = .compiler },    .{ .upstream = "IsConsteval", .zig = "@inComptime", .disposition = .compiler },    .{ .upstream = "IsConvertible", .zig = "Zig compile-time coercion checking", .disposition = .compiler },    .{ .upstream = "IsFloatTag", .zig = "@typeInfo float branch", .disposition = .compiler },    .{ .upstream = "IsInteger", .zig = "@typeInfo int branch", .disposition = .compiler },    .{ .upstream = "IsSame", .zig = "type equality", .disposition = .compiler },    .{ .upstream = "IsSameEither", .zig = "type equality disjunction", .disposition = .compiler },    .{ .upstream = "IsStaticCastable", .zig = "Zig compile-time cast checking", .disposition = .compiler },    .{ .upstream = "LimitsMax", .zig = "std.math.maxInt", .disposition = .compiler },    .{ .upstream = "LimitsMin", .zig = "std.math.minInt or zero", .disposition = .compiler },    .{ .upstream = "LowestValue", .zig = "std.math minInt or negative floatMax; BFloat16.fromBits", .disposition = .compiler },    .{ .upstream = "MakeLaneTypeIfInteger", .zig = "@typeInfo and tag size relations", .disposition = .compiler },    .{ .upstream = "MantissaBits", .zig = "std.math.floatMantissaBits or BF16 bit width", .disposition = .compiler },    .{ .upstream = "MantissaEnd", .zig = "comptime IEEE exponent construction", .disposition = .compiler },    .{ .upstream = "MantissaMask", .zig = "comptime IEEE bit mask", .disposition = .compiler },    .{ .upstream = "MaxExponentField", .zig = "comptime IEEE exponent mask", .disposition = .compiler },    .{ .upstream = "MaxExponentTimes2", .zig = "comptime IEEE exponent mask", .disposition = .compiler },    .{ .upstream = "Mul128", .zig = "u128 or i128 multiply and truncation", .disposition = .compiler },    .{ .upstream = "NativeFromLittleEndian", .zig = "std.mem.littleToNative", .disposition = .compiler },    .{ .upstream = "NegativeInfOrLowestValue", .zig = "std.math.inf, finite limit, or BFloat16.fromBits", .disposition = .compiler },    .{ .upstream = "NonFloatTag", .zig = "@typeInfo non-float branch", .disposition = .compiler },    .{ .upstream = "Num0BitsAboveMS1Bit_Nonzero32", .zig = "@clz", .disposition = .compiler },    .{ .upstream = "Num0BitsAboveMS1Bit_Nonzero64", .zig = "@clz", .disposition = .compiler },    .{ .upstream = "Num0BitsBelowLS1Bit_Nonzero32", .zig = "@ctz", .disposition = .compiler },    .{ .upstream = "Num0BitsBelowLS1Bit_Nonzero64", .zig = "@ctz", .disposition = .compiler },    .{ .upstream = "PopCount", .zig = "@popCount", .disposition = .compiler },    .{ .upstream = "PositiveInfOrHighestValue", .zig = "std.math.inf, finite limit, or BFloat16.fromBits", .disposition = .compiler },    .{ .upstream = "PreventElision", .zig = "std.mem.doNotOptimizeAway", .disposition = .compiler },    .{ .upstream = "RemoveConst", .zig = "Zig values do not encode top-level const in their type", .disposition = .compiler },    .{ .upstream = "RemoveCvRef", .zig = "Zig value types and @typeInfo pointer children", .disposition = .compiler },    .{ .upstream = "RemovePtr", .zig = "@typeInfo pointer child", .disposition = .compiler },    .{ .upstream = "RemoveRef", .zig = "Zig pointer/value distinction", .disposition = .compiler },    .{ .upstream = "RemoveVolatile", .zig = "volatile pointer access rather than qualified value types", .disposition = .compiler },    .{ .upstream = "RoundDownTo", .zig = "subtraction by remainder", .disposition = .compiler },    .{ .upstream = "RoundDownToPow2", .zig = "zero-to-one branch then std.math.floorPowerOfTwo", .disposition = .compiler },    .{ .upstream = "RoundUpTo", .zig = "std.math.divCeil and multiplication", .disposition = .compiler },    .{ .upstream = "RoundUpToPow2", .zig = "zero-to-one branch then std.math.ceilPowerOfTwo", .disposition = .compiler },    .{ .upstream = "ScalarAbs", .zig = "@abs for floats; wrapping unsigned magnitude for signed integers", .disposition = .compiler },    .{ .upstream = "ScalarByteSwap", .zig = "@byteSwap", .disposition = .compiler },    .{ .upstream = "ScalarCopySign", .zig = "std.math.copysign or BFloat16 sign-bit composition", .disposition = .compiler },    .{ .upstream = "ScalarIsFinite", .zig = "std.math.isFinite or true for integers", .disposition = .compiler },    .{ .upstream = "ScalarIsInf", .zig = "std.math.isInf", .disposition = .compiler },    .{ .upstream = "ScalarIsNaN", .zig = "std.math.isNan", .disposition = .compiler },    .{ .upstream = "ScalarShr", .zig = ">>", .disposition = .compiler },    .{ .upstream = "ScalarSignBit", .zig = "std.math.signbit or top-bit test", .disposition = .compiler },    .{ .upstream = "SignMask", .zig = "comptime top-bit mask", .disposition = .compiler },    .{ .upstream = "SignedTag", .zig = "@typeInfo signed-int branch", .disposition = .compiler },    .{ .upstream = "SizeTag", .zig = "comptime integer or enum tags", .disposition = .compiler },    .{ .upstream = "SmallestNormal", .zig = "std.math.floatMin", .disposition = .compiler },    .{ .upstream = "SpecialTag", .zig = "BFloat16 structural marker", .disposition = .compiler },    .{ .upstream = "TFromV for BFloat16 storage", .zig = "BFloat16 descriptor Scalar alongside @Vector(N, u16)", .disposition = .compiler },    .{ .upstream = "TableLookupLanesOr0", .zig = "unused self-recursive wasm256 backend artifact with no caller or test", .disposition = .upstream_defect },    .{ .upstream = "TypeTag", .zig = "@typeInfo and BFloat16 structural marker", .disposition = .compiler },    .{ .upstream = "UnsignedTag", .zig = "@typeInfo unsigned-int branch", .disposition = .compiler },    .{ .upstream = "Vec2", .zig = "[2]D.Vector", .disposition = .compiler },    .{ .upstream = "Vec3", .zig = "[3]D.Vector", .disposition = .compiler },    .{ .upstream = "Vec4", .zig = "[4]D.Vector", .disposition = .compiler },    .{ .upstream = "WidenMulEven", .zig = "even-lane products composed inside widenMulPairwiseAdd", .disposition = .ported },    .{ .upstream = "ZeroBytes", .zig = "@memset", .disposition = .compiler },    .{ .upstream = "bfloat16_t arithmetic", .zig = "BFloat16 arithmetic methods", .disposition = .ported },    .{ .upstream = "float16_t", .zig = "f16", .disposition = .compiler },    .{ .upstream = "float16_t arithmetic", .zig = "Zig f16 operators", .disposition = .compiler },    .{ .upstream = "float32_t", .zig = "f32", .disposition = .compiler },    .{ .upstream = "float64_t", .zig = "f64", .disposition = .compiler },    .{ .upstream = "operator!=", .zig = "Zig vector !=", .disposition = .compiler },    .{ .upstream = "operator%", .zig = "Zig vector %", .disposition = .compiler },    .{ .upstream = "operator&", .zig = "Zig vector &", .disposition = .compiler },    .{ .upstream = "operator*", .zig = "Zig vector *", .disposition = .compiler },    .{ .upstream = "operator+", .zig = "Zig vector +", .disposition = .compiler },    .{ .upstream = "operator-", .zig = "Zig vector -", .disposition = .compiler },    .{ .upstream = "operator/", .zig = "Zig vector /", .disposition = .compiler },    .{ .upstream = "operator<", .zig = "Zig vector <", .disposition = .compiler },    .{ .upstream = "operator<<", .zig = "Zig vector <<", .disposition = .compiler },    .{ .upstream = "operator<=", .zig = "Zig vector <=", .disposition = .compiler },    .{ .upstream = "operator==", .zig = "Zig vector ==", .disposition = .compiler },    .{ .upstream = "operator>", .zig = "Zig vector >", .disposition = .compiler },    .{ .upstream = "operator>=", .zig = "Zig vector >=", .disposition = .compiler },    .{ .upstream = "operator>>", .zig = "Zig vector >>", .disposition = .compiler },    .{ .upstream = "operator^", .zig = "Zig vector ^", .disposition = .compiler },    .{ .upstream = "operator|", .zig = "Zig vector |", .disposition = .compiler },    .{ .upstream = "uint128_t", .zig = "u128", .disposition = .compiler },};pub const target_header_extras = [_][]const u8{    "CappedLanes on RVV",    "TableLookupLanesOr0",    "WidenMulEven",};pub const Disposition = enum {    ported,    repository,    compiler,    upstream_defect,};pub const Owner = struct {    upstream: []const u8,    source: []const u8,    property: []const u8,    profile: []const u8,    disposition: Disposition,    external: bool = false,};pub const owners = [_]Owner{    .{        .upstream = "hwy/abort*; hwy/base.h abort and warn",        .source = "../../pretty/core/src/diagnostic.zig",        .property = "../../pretty/core/src/test.zig",        .profile = "",        .disposition = .repository,        .external = true,    },    .{ .upstream = "hwy/aligned_allocator*", .source = "aligned.zig", .property = "properties/aligned.zig", .profile = "profiling/aligned.zig", .disposition = .ported },    .{ .upstream = "hwy/auto_tune*", .source = "autotune.zig", .property = "properties/autotune.zig", .profile = "profiling/autotune.zig", .disposition = .ported },    .{ .upstream = "hwy/base.h Divisor; Divisor64", .source = "intdiv.zig", .property = "properties/math.zig", .profile = "profiling/math.zig", .disposition = .ported },    .{ .upstream = "hwy/base.h K32V32; K64V64", .source = "sort/key.zig", .property = "properties/sort.zig", .profile = "profiling/sort.zig", .disposition = .ported },    .{ .upstream = "hwy/base.h LemireMod", .source = "hash.zig", .property = "properties/hash.zig", .profile = "profiling/hash.zig", .disposition = .ported },    .{ .upstream = "hwy/base.h bfloat16_t and conversions", .source = "bfloat.zig", .property = "properties/numeric.zig", .profile = "profiling/dot.zig", .disposition = .ported },    .{ .upstream = "hwy/base.h compiler-native scalar and type utilities", .source = "parity.zig", .property = "parity.zig", .profile = "profiling/root.zig", .disposition = .compiler },    .{ .upstream = "hwy/base.h descriptor lane type relations", .source = "tag.zig", .property = "properties/layout.zig", .profile = "profiling/layout.zig", .disposition = .ported },    .{ .upstream = "hwy/base.h float16_t", .source = "parity.zig", .property = "properties/numeric.zig", .profile = "profiling/root.zig", .disposition = .compiler },    .{ .upstream = "hwy/base.h uint128_t", .source = "parity.zig", .property = "properties/sort.zig", .profile = "profiling/sort.zig", .disposition = .compiler },    .{ .upstream = "hwy/base_test.cc", .source = "root.zig", .property = "properties/numeric.zig", .profile = "profiling/root.zig", .disposition = .repository },    .{ .upstream = "hwy/bit_set*", .source = "bitset.zig", .property = "properties/bitset.zig", .profile = "profiling/bitset.zig", .disposition = .ported },    .{ .upstream = "hwy/cache_control.h", .source = "cache.zig", .property = "properties/cache.zig", .profile = "profiling/cache.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/algo/*", .source = "algo.zig", .property = "properties/algo.zig", .profile = "profiling/algo.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/bit_pack/*", .source = "bitpack.zig", .property = "properties/bitpack.zig", .profile = "profiling/bitpack.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/dot/*", .source = "dot.zig", .property = "properties/dot.zig", .profile = "profiling/dot.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/hash/cuckoo-inl.h; hwy/contrib/hash/cuckoo_test.cc", .source = "cuckoo/root.zig", .property = "properties/cuckoo.zig", .profile = "profiling/cuckoo.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/hash/cuckoo2x2*", .source = "cuckoo2x2.zig", .property = "properties/cuckoo2x2.zig", .profile = "profiling/cuckoo2x2.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/hash/cuckoo_load_factor_sweep.cc", .source = "profiling/cuckoo.zig", .property = "properties/cuckoo.zig", .profile = "profiling/cuckoo.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/hash/hash-inl.h; hwy/contrib/hash/hash_test.cc", .source = "hash.zig", .property = "properties/hash.zig", .profile = "profiling/hash.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/hash/hash_bench.cc", .source = "profiling/hash.zig", .property = "properties/hash.zig", .profile = "profiling/hash.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/hash/hash_eval.cc", .source = "hash.zig", .property = "properties/hash.zig", .profile = "profiling/hash.zig", .disposition = .repository },    .{ .upstream = "hwy/contrib/hash/hash_prospector16.cc", .source = "hash.zig", .property = "properties/hash.zig", .profile = "profiling/hash.zig", .disposition = .repository },    .{ .upstream = "hwy/contrib/hash/phast-inl.h; hwy/contrib/hash/phast.cc; hwy/contrib/hash/phast.h; hwy/contrib/hash/phast_test.cc", .source = "phast/root.zig", .property = "properties/phast.zig", .profile = "profiling/phast.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/hash/phast_bench.cc", .source = "profiling/phast.zig", .property = "properties/phast.zig", .profile = "profiling/phast.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/hash/shardmul*", .source = "shardmul.zig", .property = "properties/shardmul.zig", .profile = "profiling/shardmul.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/image/*", .source = "image/root.zig", .property = "properties/image.zig", .profile = "profiling/image.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/intdiv/*", .source = "intdiv.zig", .property = "properties/math.zig", .profile = "profiling/math.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/math/fast_math*; hwy/contrib/math/fp_arith-inl.h; hwy/contrib/math/math-inl.h; hwy/contrib/math/math_*test*", .source = "math.zig", .property = "properties/math.zig", .profile = "profiling/math.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/math/math_benchmark.cc", .source = "profiling/math.zig", .property = "properties/math.zig", .profile = "profiling/math.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/matvec/*", .source = "matvec.zig", .property = "properties/matvec.zig", .profile = "profiling/matvec.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/random/*", .source = "random.zig", .property = "properties/random.zig", .profile = "profiling/random.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/sort/algo-inl.h; order.h; result-inl.h; shared-inl.h; sort*_test.cc; sorting_networks-inl.h; traits*; vqsort*", .source = "sort/root.zig", .property = "properties/sort.zig", .profile = "profiling/sort.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/sort/bench_parallel.cc", .source = "profiling/sort.zig", .property = "properties/sort.zig", .profile = "profiling/sort.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/sort/bench_sort.cc", .source = "profiling/sort.zig", .property = "properties/sort.zig", .profile = "profiling/sort.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/sort/print_network.cc", .source = "sort/network.zig", .property = "properties/sort.zig", .profile = "profiling/sort.zig", .disposition = .repository },    .{ .upstream = "hwy/contrib/thread_pool/thread_pool*; futex.h; index_range.h; spin.h", .source = "thread/root.zig", .property = "properties/thread.zig", .profile = "profiling/thread.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/thread_pool/topology*", .source = "topology/root.zig", .property = "properties/topology.zig", .profile = "profiling/topology.zig", .disposition = .ported },    .{ .upstream = "hwy/contrib/unroller/*", .source = "unroller.zig", .property = "properties/unroller.zig", .profile = "profiling/unroller.zig", .disposition = .ported },    .{ .upstream = "hwy/detect_compiler_arch.h; hwy/foreach_target.h; hwy/highway_export.h", .source = "target.zig", .property = "properties/target.zig", .profile = "profiling/target.zig", .disposition = .compiler },    .{ .upstream = "hwy/detect_targets.h; hwy/targets*; hwy/per_target*; hwy/x86_cpuid.h", .source = "target.zig", .property = "properties/target.zig", .profile = "profiling/target.zig", .disposition = .ported },    .{ .upstream = "hwy/examples/*", .source = "root.zig", .property = "properties/root.zig", .profile = "profiling/root.zig", .disposition = .repository },    .{ .upstream = "hwy/highway.h; hwy/highway_test.cc", .source = "root.zig", .property = "properties/laws.zig", .profile = "profiling/arithmetic.zig", .disposition = .ported },    .{ .upstream = "hwy/nanobenchmark*; hwy/timer*", .source = "../../bench/src/root.zig", .property = "../../bench/src/properties/root.zig", .profile = "../../bench/src/timing.zig", .disposition = .repository, .external = true },    .{ .upstream = "hwy/ops/* PerBlock2x2MatMul; hwy/tests/matmul_op_test.cc", .source = "matmul.zig", .property = "properties/matmul.zig", .profile = "profiling/matmul.zig", .disposition = .ported },    .{ .upstream = "hwy/ops/* descriptor and carrier substitutions", .source = "parity.zig", .property = "properties/layout.zig", .profile = "profiling/layout.zig", .disposition = .compiler },    .{ .upstream = "hwy/ops/* vector operations", .source = "root.zig", .property = "properties/laws.zig", .profile = "profiling/arithmetic.zig", .disposition = .ported },    .{ .upstream = "hwy/perf_counters*", .source = "../../sys/src/perf.zig", .property = "../../sys/src/properties/perf.zig", .profile = "../../bench/src/instrumentation.zig", .disposition = .repository, .external = true },    .{ .upstream = "hwy/print*", .source = "print.zig", .property = "properties/print.zig", .profile = "profiling/print.zig", .disposition = .ported },    .{ .upstream = "hwy/profiler*", .source = "../../bench/src/instrumentation.zig", .property = "../../coz/src/properties/root.zig", .profile = "../../coz/src/root.zig", .disposition = .repository, .external = true },    .{ .upstream = "hwy/robust_statistics.h", .source = "robust.zig", .property = "properties/robust.zig", .profile = "profiling/robust.zig", .disposition = .ported },    .{ .upstream = "hwy/stats.h; hwy/stats.cc", .source = "stats.zig", .property = "properties/stats.zig", .profile = "profiling/stats.zig", .disposition = .ported },    .{ .upstream = "hwy/tests/*; hwy/highway_test.cc", .source = "root.zig", .property = "properties/root.zig", .profile = "profiling/root.zig", .disposition = .repository },};pub const upstream_active_programs = [_][]const u8{    "hwy/contrib/hash/cuckoo_load_factor_sweep.cc",    "hwy/contrib/hash/hash_bench.cc",    "hwy/contrib/hash/hash_eval.cc",    "hwy/contrib/hash/hash_prospector16.cc",    "hwy/contrib/hash/phast_bench.cc",    "hwy/contrib/math/math_benchmark.cc",    "hwy/contrib/sort/bench_parallel.cc",    "hwy/contrib/sort/bench_sort.cc",    "hwy/contrib/sort/print_network.cc",};test "pinned Highway callable ledger is sorted and unique" {    try std.testing.expectEqual(@as(usize, 397), core_callables.len);    for (core_callables[1..], 1..) |callable, index| {        try std.testing.expect(std.mem.order(u8, core_callables[index - 1].upstream, callable.upstream) == .lt);    }}test "pinned Highway source manifest partitions the complete C++ tree" {    try std.testing.expectEqual(@as(usize, 64), upstream_source_manifest_sha256.len);    try std.testing.expectEqual(        upstream_source_files,        upstream_top_level_files + upstream_ops_files +            upstream_contrib_files + upstream_tests_directory_files,    );}test "pinned Highway supplemental declaration ledger is sorted and unique" {    try std.testing.expectEqual(@as(usize, 80), supplemental_callables.len);    for (supplemental_callables[1..], 1..) |callable, index| {        try std.testing.expect(            std.mem.order(                u8,                supplemental_callables[index - 1].upstream,                callable.upstream,            ) == .lt,        );    }}test "pinned Highway substitutions are explicit sorted and unique" {    try std.testing.expectEqual(@as(usize, 108), substitutions.len);    var operator_count: usize = 0;    var defect_count: usize = 0;    for (substitutions, 0..) |substitution, index| {        try std.testing.expect(substitution.upstream.len != 0);        try std.testing.expect(substitution.zig.len != 0);        if (std.mem.startsWith(u8, substitution.upstream, "operator")) {            operator_count += 1;        }        defect_count += @intFromBool(substitution.disposition == .upstream_defect);        if (index != 0) {            try std.testing.expect(                std.mem.order(                    u8,                    substitutions[index - 1].upstream,                    substitution.upstream,                ) == .lt,            );        }    }    try std.testing.expectEqual(@as(usize, 16), operator_count);    try std.testing.expectEqual(@as(usize, 1), defect_count);}test "pinned Highway target-header extras have explicit dispositions" {    try std.testing.expectEqual(@as(usize, 3), target_header_extras.len);    for (target_header_extras) |name| {        var found = false;        for (substitutions) |substitution| {            found = found or std.mem.eql(u8, name, substitution.upstream);        }        try std.testing.expect(found);    }}test "pinned Highway compiler substitutions preserve base scalar semantics" {    try std.testing.expectEqual(@as(u32, 4), try std.math.divCeil(u32, 10, 3));    try std.testing.expectEqual(@as(u32, 12), (try std.math.divCeil(u32, 10, 3)) * 3);    try std.testing.expectEqual(@as(u32, 9), 10 - 10 % 3);    try std.testing.expectEqual(@as(usize, 3), std.math.log2_int(usize, 9));    try std.testing.expectEqual(@as(usize, 4), std.math.log2_int_ceil(usize, 9));    try std.testing.expectEqual(@as(usize, 1), if (0 == 0) 1 else std.math.floorPowerOfTwo(usize, 0));    try std.testing.expectEqual(@as(usize, 8), std.math.floorPowerOfTwo(usize, 9));    try std.testing.expectEqual(@as(usize, 16), try std.math.ceilPowerOfTwo(usize, 9));    const unsigned_product = @as(u128, std.math.maxInt(u64)) * 2;    try std.testing.expectEqual(@as(u64, std.math.maxInt(u64) - 1), @as(u64, @truncate(unsigned_product)));    try std.testing.expectEqual(@as(u64, 1), @as(u64, @truncate(unsigned_product >> 64)));    const signed_product = @as(i128, -7) * 11;    try std.testing.expectEqual(@as(i64, -77), @as(i64, @truncate(signed_product)));    try std.testing.expectEqual(@as(i64, -1), @as(i64, @truncate(signed_product >> 64)));    try std.testing.expectEqual(@as(u16, 0x3412), @byteSwap(@as(u16, 0x1234)));    const little_value = std.mem.littleToNative(u32, 0x0102_0304);    const expected_little = if (builtin.target.cpu.arch.endian() == .little)        @as(u32, 0x0102_0304)    else        @as(u32, 0x0403_0201);    try std.testing.expectEqual(expected_little, little_value);    try std.testing.expectEqual(@as(u6, 12), @ctz(@as(u32, 0x1000)));    try std.testing.expectEqual(@as(u6, 19), @clz(@as(u32, 0x1000)));    try std.testing.expectEqual(@as(u6, 16), @popCount(@as(u32, 0xf0f0_f0f0)));    try std.testing.expectEqual(@as(u8, 0), @as(u8, 255) +% 1);    const min_i32_bits: u32 = @bitCast(@as(i32, std.math.minInt(i32)));    try std.testing.expectEqual(@as(u32, 0x8000_0000), 0 -% min_i32_bits);    var copied: [8]u8 = undefined;    const source = [_]u8{ 0, 1, 2, 3, 4, 5, 6, 7 };    @memcpy(&copied, &source);    try std.testing.expectEqual(source, copied);    @memset(&copied, 0xa5);    try std.testing.expectEqual(@as([8]u8, @splat(0xa5)), copied);    std.mem.doNotOptimizeAway(&copied);    const half: f16 = @floatCast(@as(f32, 1.5));    try std.testing.expectEqual(@as(f32, 1.5), @as(f32, @floatCast(half)));    try std.testing.expectEqual(@as(f32, -3), std.math.copysign(@as(f32, 3), @as(f32, -1)));    try std.testing.expect(std.math.signbit(@as(f32, -0.0)));    try std.testing.expect(std.math.isFinite(@as(f64, 1)));    try std.testing.expect(std.math.isInf(std.math.inf(f64)));    try std.testing.expect(std.math.isNan(std.math.nan(f64)));}test "pinned Highway owner ledger is sorted and its port paths are live" {    try std.testing.expectEqual(@as(usize, 54), owners.len);    try std.testing.expectEqual(@as(usize, 9), upstream_active_programs.len);    for (owners, 0..) |owner, index| {        try std.testing.expect(owner.upstream.len != 0);        try std.testing.expect(owner.source.len != 0);        if (index != 0) {            try std.testing.expect(std.mem.order(u8, owners[index - 1].upstream, owner.upstream) == .lt);        }        if (owner.disposition == .ported or owner.disposition == .compiler) {            try std.testing.expect(owner.property.len != 0);            try std.testing.expect(owner.profile.len != 0);        }        if (owner.external) {            try std.testing.expect(std.mem.startsWith(u8, owner.source, "../../"));            if (owner.property.len != 0) {                try std.testing.expect(std.mem.startsWith(u8, owner.property, "../../"));            }            if (owner.profile.len != 0) {                try std.testing.expect(std.mem.startsWith(u8, owner.profile, "../../"));            }        }    }    for (upstream_active_programs) |program| {        var found = false;        for (owners) |owner| {            found = found or std.mem.eql(u8, program, owner.upstream);        }        try std.testing.expect(found);    }    inline for (owners) |owner| {        if (!owner.external) {            _ = @embedFile(owner.source);            if (owner.property.len != 0) _ = @embedFile(owner.property);            if (owner.profile.len != 0) _ = @embedFile(owner.profile);        }    }}

Source: lib/simd/src/root.zig:10

zig
pub const parity = @import("parity.zig");

Audit

Definitions17
Public names17
Members15
Version26.7.0
Revisiondaab053ee433