llvm/llvm-project

[X86] computeKnownBitsForTargetNode - add X86ISD::GF2P8AFFINEQB handling

Open

#190520 opened on Apr 5, 2026

View on GitHub
 (13 comments) (0 reactions) (2 assignees)C++ (26,378 stars) (10,782 forks)batch import
backend:X86good first issue

Description

X86ISD::GF2P8AFFINEQB nodes are being used for many shift/rotate style expansions, it'd be very useful if we can access the known bits to attempt additional folding afterward (e.g #190502).

This should only be attempted by somebody with access to a CPU with GFNI support to allow them to actually test this properly (although constexpr testing can help now that GFNI intrinsics support it).

Reference: https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#ig_expand=172,3053,2650,3028,3046,849,3516,3630,3054,3053,3054,4389,2239,2239,4602,205,196,4461,3954,1601,2140,417,2873,2851,2571,5840,2571,2927,3639&text=VGF2P8AFFINEQB

(see also GFNIAffine() in llvm-project\clang\lib\AST\ExprConstant.cpp)

Contributor guide