Fuzz introspector: highwayhash_fuzzer
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
140 140 2 :

['highwayhash::HighwayHash<2u>::operator()(unsigned long const (&) [4], char const*, unsigned long, unsigned long*) const', 'highwayhash::HighwayHash<1u>::operator()(unsigned long const (&) [4], char const*, unsigned long, unsigned long*) const']

140 140 unsignedinthighwayhash::InstructionSets::Run (unsignedlongconst(&)[4],charconst*&&,unsignedlong&,unsignedlong*&&) call site: 00000 /src/highwayhash/highwayhash/instruction_sets.h:59
0 0 None 0 0 highwayhash::InstructionSets::Supported() call site: 00000 /src/highwayhash/highwayhash/instruction_sets.cc:114
0 0 None 0 0 highwayhash::InstructionSets::Supported() call site: 00000 /src/highwayhash/highwayhash/instruction_sets.cc:119

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 unsigned int highwayhash::InstructionSets::Run (unsigned long const (&) [4], char const*&&, unsigned long&, unsigned long*&&) [function] [call site] 00001
2 highwayhash::InstructionSets::Supported() [function] [call site] 00002
3 highwayhash::Cpuid(unsigned int, unsigned int, unsigned int*) [function] [call site] 00003
3 highwayhash::Cpuid(unsigned int, unsigned int, unsigned int*) [function] [call site] 00004
3 highwayhash::(anonymous namespace)::IsBitSet(unsigned int, int) [function] [call site] 00005
3 highwayhash::(anonymous namespace)::IsBitSet(unsigned int, int) [function] [call site] 00006
3 highwayhash::(anonymous namespace)::IsBitSet(unsigned int, int) [function] [call site] 00007
3 highwayhash::(anonymous namespace)::IsBitSet(unsigned int, int) [function] [call site] 00008
3 highwayhash::(anonymous namespace)::IsBitSet(unsigned int, int) [function] [call site] 00009
3 highwayhash::(anonymous namespace)::IsBitSet(unsigned int, int) [function] [call site] 00010
3 highwayhash::(anonymous namespace)::IsBitSet(unsigned int, int) [function] [call site] 00011
3 highwayhash::(anonymous namespace)::IsBitSet(unsigned int, int) [function] [call site] 00012
3 highwayhash::(anonymous namespace)::IsBitSet(unsigned int, int) [function] [call site] 00013
3 highwayhash::Cpuid(unsigned int, unsigned int, unsigned int*) [function] [call site] 00014
3 highwayhash::(anonymous namespace)::IsBitSet(unsigned int, int) [function] [call site] 00015
3 highwayhash::Cpuid(unsigned int, unsigned int, unsigned int*) [function] [call site] 00016
3 highwayhash::(anonymous namespace)::IsBitSet(unsigned int, int) [function] [call site] 00017
3 highwayhash::(anonymous namespace)::IsBitSet(unsigned int, int) [function] [call site] 00018
3 highwayhash::(anonymous namespace)::IsBitSet(unsigned int, int) [function] [call site] 00019
3 highwayhash::(anonymous namespace)::ReadXCR0() [function] [call site] 00020
2 highwayhash::HighwayHash<4u>::operator()(unsigned long const (&) [4], char const*, unsigned long, unsigned long*) const [function] [call site] 00021
3 highwayhash::AVX2::HHStateAVX2::HHStateAVX2(unsigned long const*) [function] [call site] 00022
4 highwayhash::AVX2::V256 ::V256() [function] [call site] 00023
4 highwayhash::AVX2::HHStateAVX2::Reset(unsigned long const*) [function] [call site] 00024
5 highwayhash::AVX2::V256 ::V256(unsigned long, unsigned long, unsigned long, unsigned long) [function] [call site] 00025
5 highwayhash::AVX2::V256 ::V256(unsigned long, unsigned long, unsigned long, unsigned long) [function] [call site] 00026
5 highwayhash::AVX2::V256 highwayhash::AVX2::LoadUnaligned >(highwayhash::AVX2::V256 ::T const*) [function] [call site] 00027
6 highwayhash::AVX2::V256 ::V256(long long __vector(4) const&) [function] [call site] 00028
5 highwayhash::AVX2::V256 highwayhash::AVX2::operator^ (highwayhash::AVX2::V256 const&, highwayhash::AVX2::V256 const&) [function] [call site] 00029
6 highwayhash::AVX2::V256 ::V256(highwayhash::AVX2::V256 const&) [function] [call site] 00030
6 highwayhash::AVX2::V256 ::operator^=(highwayhash::AVX2::V256 const&) [function] [call site] 00031
5 highwayhash::AVX2::HHStateAVX2::Rotate64By32(highwayhash::AVX2::V256 const&) [function] [call site] 00032
6 highwayhash::AVX2::V256 ::operator long long __vector(4)() const [function] [call site] 00033
5 highwayhash::AVX2::V256 highwayhash::AVX2::operator^ (highwayhash::AVX2::V256 const&, highwayhash::AVX2::V256 const&) [function] [call site] 00034
5 highwayhash::AVX2::V256 ::operator=(highwayhash::AVX2::V256 const&) [function] [call site] 00035
5 highwayhash::AVX2::V256 ::operator=(highwayhash::AVX2::V256 const&) [function] [call site] 00036
3 void highwayhash::HighwayHashT (highwayhash::AVX2::HHStateAVX2*, char const*, unsigned long, unsigned long*) [function] [call site] 00037
4 highwayhash::AVX2::HHStateAVX2::Update(char const (&) [32]) [function] [call site] 00038
5 highwayhash::AVX2::V256 highwayhash::AVX2::LoadUnaligned >(highwayhash::AVX2::V256 ::T const*) [function] [call site] 00039
5 highwayhash::AVX2::HHStateAVX2::Update(highwayhash::AVX2::V256 const&) [function] [call site] 00040
6 highwayhash::AVX2::V256 ::operator+=(highwayhash::AVX2::V256 const&) [function] [call site] 00041
6 highwayhash::AVX2::V256 ::operator+=(highwayhash::AVX2::V256 const&) [function] [call site] 00042
6 highwayhash::AVX2::V256 highwayhash::AVX2::operator>> (highwayhash::AVX2::V256 const&, int) [function] [call site] 00043
7 highwayhash::AVX2::V256 ::V256(highwayhash::AVX2::V256 const&) [function] [call site] 00044
7 highwayhash::AVX2::V256 ::operator>>=(int) [function] [call site] 00045
6 highwayhash::AVX2::HHStateAVX2::MulLow32(highwayhash::AVX2::V256 const&, highwayhash::AVX2::V256 const&) [function] [call site] 00046
7 highwayhash::AVX2::V256 ::operator long long __vector(4)() const [function] [call site] 00047
6 highwayhash::AVX2::V256 ::operator+=(highwayhash::AVX2::V256 const&) [function] [call site] 00048
6 highwayhash::AVX2::V256 highwayhash::AVX2::operator>> (highwayhash::AVX2::V256 const&, int) [function] [call site] 00049
6 highwayhash::AVX2::HHStateAVX2::MulLow32(highwayhash::AVX2::V256 const&, highwayhash::AVX2::V256 const&) [function] [call site] 00050
6 highwayhash::AVX2::HHStateAVX2::ZipperMerge(highwayhash::AVX2::V256 const&) [function] [call site] 00051
7 highwayhash::AVX2::V256 ::operator long long __vector(4)() const [function] [call site] 00052
6 highwayhash::AVX2::V256 ::operator+=(highwayhash::AVX2::V256 const&) [function] [call site] 00053
6 highwayhash::AVX2::HHStateAVX2::ZipperMerge(highwayhash::AVX2::V256 const&) [function] [call site] 00054
6 highwayhash::AVX2::V256 ::operator+=(highwayhash::AVX2::V256 const&) [function] [call site] 00055
4 highwayhash::AVX2::HHStateAVX2::UpdateRemainder(char const*, unsigned long) [function] [call site] 00056
5 highwayhash::AVX2::V256 ::V256(long long __vector(4) const&) [function] [call site] 00057
5 highwayhash::AVX2::V256 ::V256 (highwayhash::AVX2::V256 const&) [function] [call site] 00058
6 highwayhash::AVX2::V256 ::operator long long __vector(4)() const [function] [call site] 00059
5 highwayhash::AVX2::HHStateAVX2::Rotate32By(highwayhash::AVX2::V256 const&, highwayhash::AVX2::V256 const&) [function] [call site] 00060
6 highwayhash::AVX2::V256 ::operator long long __vector(4)() const [function] [call site] 00061
6 highwayhash::AVX2::V256 ::operator long long __vector(4)() const [function] [call site] 00062
6 highwayhash::AVX2::V256 ::operator long long __vector(4)() const [function] [call site] 00063
5 highwayhash::AVX2::V256 ::operator=(highwayhash::AVX2::V256 const&) [function] [call site] 00064
5 highwayhash::AVX2::V256 ::operator long long __vector(4)() const [function] [call site] 00065
5 highwayhash::AVX2::V128 ::V128(long long __vector(2) const&) [function] [call site] 00066
5 highwayhash::AVX2::V128 highwayhash::AVX2::LoadUnaligned >(highwayhash::AVX2::V128 ::T const*) [function] [call site] 00067
6 highwayhash::AVX2::V128 ::V128(long long __vector(2) const&) [function] [call site] 00068
5 highwayhash::AVX2::IntMask<16u>::operator()(highwayhash::AVX2::V128 const&) const [function] [call site] 00069
6 highwayhash::AVX2::V128 ::operator long long __vector(2)() const [function] [call site] 00070
5 highwayhash::AVX2::V128 ::operator long long __vector(2)() const [function] [call site] 00071
5 highwayhash::AVX2::HHStateAVX2::MaskedLoadInt(char const*, highwayhash::AVX2::V128 const&) [function] [call site] 00072
6 highwayhash::AVX2::V128 ::operator long long __vector(2)() const [function] [call site] 00073
5 highwayhash::AVX2::V128 ::operator long long __vector(2)() const [function] [call site] 00074
5 highwayhash::AVX2::Load3::operator()(highwayhash::AVX2::Load3::AllowReadBeforeAndReturn, char const*, unsigned long) [function] [call site] 00075
6 highwayhash::AVX2::Load3::Copy(char const*, unsigned long, char*) [function] [call site] 00076
6 highwayhash::host_from_le32(unsigned int) [function] [call site] 00077
5 highwayhash::AVX2::V128 ::operator long long __vector(2)() const [function] [call site] 00078
5 highwayhash::AVX2::HHStateAVX2::Update(highwayhash::AVX2::V128 const&, highwayhash::AVX2::V128 const&) [function] [call site] 00079
6 highwayhash::AVX2::V128 ::operator long long __vector(2)() const [function] [call site] 00080
6 highwayhash::AVX2::V128 ::operator long long __vector(2)() const [function] [call site] 00081
6 highwayhash::AVX2::V256 ::V256(long long __vector(4) const&) [function] [call site] 00082
6 highwayhash::AVX2::HHStateAVX2::Update(highwayhash::AVX2::V256 const&) [function] [call site] 00083
5 highwayhash::AVX2::IntMask<0u>::operator()(highwayhash::AVX2::V128 const&) const [function] [call site] 00084
6 highwayhash::AVX2::V128 ::operator long long __vector(2)() const [function] [call site] 00085
5 highwayhash::AVX2::V128 ::operator long long __vector(2)() const [function] [call site] 00086
5 highwayhash::AVX2::HHStateAVX2::MaskedLoadInt(char const*, highwayhash::AVX2::V128 const&) [function] [call site] 00087
5 highwayhash::AVX2::V128 ::operator long long __vector(2)() const [function] [call site] 00088
5 highwayhash::AVX2::Load3::operator()(highwayhash::AVX2::Load3::AllowUnordered, char const*, unsigned long) [function] [call site] 00089
6 highwayhash::AVX2::Load3::U64FromChar(char) [function] [call site] 00090
6 highwayhash::AVX2::Load3::U64FromChar(char) [function] [call site] 00091
6 highwayhash::AVX2::Load3::U64FromChar(char) [function] [call site] 00092
5 highwayhash::AVX2::V128 ::V128(long long __vector(2) const&) [function] [call site] 00093
5 highwayhash::AVX2::HHStateAVX2::Update(highwayhash::AVX2::V128 const&, highwayhash::AVX2::V128 const&) [function] [call site] 00094
4 highwayhash::AVX2::HHStateAVX2::Finalize(unsigned long*) [function] [call site] 00095
5 highwayhash::AVX2::HHStateAVX2::Permute(highwayhash::AVX2::V256 const&) [function] [call site] 00096
6 highwayhash::AVX2::V256 ::V256(unsigned long, unsigned long, unsigned long, unsigned long) [function] [call site] 00097
6 highwayhash::AVX2::V256 ::operator long long __vector(4)() const [function] [call site] 00098
5 highwayhash::AVX2::HHStateAVX2::Permute(highwayhash::AVX2::V256 const&) [function] [call site] 00099
5 highwayhash::AVX2::HHStateAVX2::Permute(highwayhash::AVX2::V256 const&) [function] [call site] 00100
5 highwayhash::AVX2::HHStateAVX2::Permute(highwayhash::AVX2::V256 const&) [function] [call site] 00101
5 highwayhash::AVX2::V256 highwayhash::AVX2::operator+ (highwayhash::AVX2::V256 const&, highwayhash::AVX2::V256 const&) [function] [call site] 00102
6 highwayhash::AVX2::V256 ::V256(highwayhash::AVX2::V256 const&) [function] [call site] 00103
6 highwayhash::AVX2::V256 ::operator+=(highwayhash::AVX2::V256 const&) [function] [call site] 00104
5 highwayhash::AVX2::V128 ::V128(long long __vector(2) const&) [function] [call site] 00105
5 highwayhash::AVX2::V256 highwayhash::AVX2::operator+ (highwayhash::AVX2::V256 const&, highwayhash::AVX2::V256 const&) [function] [call site] 00106
5 highwayhash::AVX2::V128 ::V128(long long __vector(2) const&) [function] [call site] 00107
5 highwayhash::AVX2::V128 highwayhash::AVX2::operator+ (highwayhash::AVX2::V128 const&, highwayhash::AVX2::V128 const&) [function] [call site] 00108
6 highwayhash::AVX2::V128 ::V128(highwayhash::AVX2::V128 const&) [function] [call site] 00109
6 highwayhash::AVX2::V128 ::operator+=(highwayhash::AVX2::V128 const&) [function] [call site] 00110
5 highwayhash::AVX2::V128 ::operator long long __vector(2)() const [function] [call site] 00111
2 highwayhash::HighwayHash<2u>::operator()(unsigned long const (&) [4], char const*, unsigned long, unsigned long*) const [function] [call site] 00112
3 highwayhash::SSE41::HHStateSSE41::HHStateSSE41(unsigned long const*) [function] [call site] 00113
4 highwayhash::SSE41::V128 ::V128() [function] [call site] 00114
4 highwayhash::SSE41::HHStateSSE41::Reset(unsigned long const*) [function] [call site] 00115
5 highwayhash::SSE41::V128 ::V128(unsigned long, unsigned long) [function] [call site] 00116
5 highwayhash::SSE41::V128 ::V128(unsigned long, unsigned long) [function] [call site] 00117
5 highwayhash::SSE41::V128 ::V128(unsigned long, unsigned long) [function] [call site] 00118
5 highwayhash::SSE41::V128 ::V128(unsigned long, unsigned long) [function] [call site] 00119
5 highwayhash::SSE41::V128 highwayhash::SSE41::LoadUnaligned >(highwayhash::SSE41::V128 ::T const*) [function] [call site] 00120
6 highwayhash::SSE41::V128 ::V128(long long __vector(2) const&) [function] [call site] 00121
5 highwayhash::SSE41::V128 highwayhash::SSE41::LoadUnaligned >(highwayhash::SSE41::V128 ::T const*) [function] [call site] 00122
5 highwayhash::SSE41::V128 highwayhash::SSE41::operator^ (highwayhash::SSE41::V128 const&, highwayhash::SSE41::V128 const&) [function] [call site] 00123
6 highwayhash::SSE41::V128 ::V128(highwayhash::SSE41::V128 const&) [function] [call site] 00124
6 highwayhash::SSE41::V128 ::operator^=(highwayhash::SSE41::V128 const&) [function] [call site] 00125
5 highwayhash::SSE41::V128 highwayhash::SSE41::operator^ (highwayhash::SSE41::V128 const&, highwayhash::SSE41::V128 const&) [function] [call site] 00126
5 highwayhash::SSE41::HHStateSSE41::Rotate64By32(highwayhash::SSE41::V128 const&) [function] [call site] 00127
6 highwayhash::SSE41::V128 ::operator long long __vector(2)() const [function] [call site] 00128
5 highwayhash::SSE41::HHStateSSE41::Rotate64By32(highwayhash::SSE41::V128 const&) [function] [call site] 00129
5 highwayhash::SSE41::V128 highwayhash::SSE41::operator^ (highwayhash::SSE41::V128 const&, highwayhash::SSE41::V128 const&) [function] [call site] 00130
5 highwayhash::SSE41::V128 ::operator=(highwayhash::SSE41::V128 const&) [function] [call site] 00131
5 highwayhash::SSE41::V128 ::operator=(highwayhash::SSE41::V128 const&) [function] [call site] 00132
5 highwayhash::SSE41::V128 ::operator=(highwayhash::SSE41::V128 const&) [function] [call site] 00133
5 highwayhash::SSE41::V128 ::operator=(highwayhash::SSE41::V128 const&) [function] [call site] 00134
2 highwayhash::HighwayHash<1u>::operator()(unsigned long const (&) [4], char const*, unsigned long, unsigned long*) const [function] [call site] 00135
3 highwayhash::Portable::HHStatePortable::HHStatePortable(unsigned long const*) [function] [call site] 00136
4 highwayhash::Portable::HHStatePortable::Reset(unsigned long const*) [function] [call site] 00137
5 void highwayhash::Portable::HHStatePortable::Rotate64By32 (unsigned long const* const&, unsigned long (*) [4]) [function] [call site] 00138
6 highwayhash::Portable::HHStatePortable::Rotate64By32(unsigned long) [function] [call site] 00139
5 highwayhash::Portable::HHStatePortable::Copy(unsigned long const (&) [4], unsigned long (*) [4]) [function] [call site] 00140
5 highwayhash::Portable::HHStatePortable::Copy(unsigned long const (&) [4], unsigned long (*) [4]) [function] [call site] 00141
5 void highwayhash::Portable::HHStatePortable::Xor (unsigned long const (&) [4], unsigned long const* const&, unsigned long (*) [4]) [function] [call site] 00142
5 void highwayhash::Portable::HHStatePortable::Xor (unsigned long const (&) [4], unsigned long const (&) [4], unsigned long (*) [4]) [function] [call site] 00143