llvm/llvm-project

[DAG] isKnownToBeAPowerOfTwo - add DemandedElts + OrZero handling to ISD::ZERO_EXTEND cases

クローズ

#181,648 opened on 2026/02/16

 (7 件のコメント) (0 件のリアクション) (1 人の担当者)C++ (10,782 件のフォーク)batch import
good first issuellvm:SelectionDAG

Repository metrics

Stars
 (26,378 個のスター)
PR merge metrics
 (平均マージ 1d 2h) (30d で 1,000 merged PRs)

説明

The zext nodes can safely filter elements using DemandedElts and can correctly identify zero cases when OrZero is true (zext(0) is still 0):

https://github.com/RKSimon/llvm-project/blob/20aff2085c358d3e112b245494161ddb9ffe0410/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp#L4755-L4757

The actual change to the inner isKnownToBeAPowerOfTwo call is trivial (add DemandedElts + OrZero passthrough args), but this will require test coverage as well - these might be possible by extending existing DAG tests, else maybe add unit tests like we did in https://github.com/llvm/llvm-project/pull/181485

コントリビューターガイド