Skip to content

feat: implement 128-bit comparison logging (AVX/SIMD)#3748

Open
yoursanonymous wants to merge 1 commit intoAFLplusplus:mainfrom
yoursanonymous:new
Open

feat: implement 128-bit comparison logging (AVX/SIMD)#3748
yoursanonymous wants to merge 1 commit intoAFLplusplus:mainfrom
yoursanonymous:new

Conversation

@yoursanonymous
Copy link

@yoursanonymous yoursanonymous commented Mar 6, 2026

Description

This Pull Request introduces 128-bit comparison logging to LibAFL, enabling the fuzzer to observe and mutate vector comparisons commonly found in modern SIMD-accelerated code
describe your PR here

issue #3749

Key Changes

  • CmpValues and CmplogByte Expansion: Added CmpValues::U128 variant to represent 128-bit comparison operands and CmplogBytes internal bufferincreased from 32 to 64 bytes.

  • Serde Support: Implemented manual Serialize and Deserialize for CmplogBytes

  • 128-bit Extraction: Implemented reconstruction of u128 values from 64-bit halves in CmpLogMap

  • Added support for AflppCmpLogOperands to extract full 128-bit comparisons from the AFL++ extended maps.

  • Mutator Integration:Updated I2SRandReplace and I2SRandReplaceBinonly to support 128-bit comparison tokens.

  • Extended AflppRedQueen with a placeholder U128 arm for consistent trait coverage.

  • Robustness: Added buffer promotion logic in libafl_targets to safely handle different comparison sizes (promoting 32-bit routine operands to 64-bit CmplogBytes).

Checklist

  • I have run ./scripts/precommit.sh and addressed all comments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant