Skip to content

mask-risc: charge strided predicates' extra passes in op_histogram - #1286

Merged
AdaWorldAPI merged 1 commit into
mainfrom
claude/brave-mayer-65y3cy
Sep 25, 2026
Merged

AdaWorldAPI merged 1 commit into
mainfrom
claude/brave-mayer-65y3cy

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

Follow-up to #1284, fixing the Codex P2 on it.

The problem. The strided predicates have no *_under kernel. So the executor runs a gated one as the strided kernel followed by mask_and_assign. NeU32Strided is also always the eq kernel followed by mask_not_assign. Program::op_histogram sent all three through the generic predicate arm, so mask_passes() under-reported:

  • gated Eq and gated Match by one pass;
  • Ne by one pass ungated, and two when gated.

The fix. They are now charged the same way the gated Range already is: the gate's and goes to two_input, and Ne's complement goes to not.

Tests.

  • op_histogram_charges_the_strided_predicates_extra_passes pins every case, plus the silence twin: an ungated Eq or Match is one predicate and zero mask passes.
  • Disable-verified: dropping the new arm fails the test.
  • cargo test -p lance-graph-mask-risc: 122 passed. Clippy and fmt are clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_01DCEP2fZdHYdMCtcEVcTpS2


Generated by Claude Code

The strided predicates have no *_under kernel, so the executor runs a
gated one as the strided kernel plus mask_and_assign, and NeU32Strided
is always the eq kernel plus mask_not_assign. op_histogram sent all
three through the generic predicate arm, so mask_passes() under-reported
gated Eq/Match by one and Ne by one or two. They are now charged like
the gated Range: the gate's and to two_input, Ne's complement to not.

Test pins every case, with the ungated Eq/Match silence twin;
disable-verified (dropping the arm fails it). Codex P2 on #1284.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DCEP2fZdHYdMCtcEVcTpS2
@coderabbitai

coderabbitai Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Essentials

Run ID: 16ed8c9d-5d7e-4fb4-b997-1c75b81d30da

📥 Commits

Reviewing files that changed from the base of the PR and between c1ed7ff and d588ebb.

📒 Files selected for processing (1)
  • crates/lance-graph-mask-risc/src/ir.rs
 _______________________________________________________________
< Your null checks are like seatbelts: installed, but not worn. >
 ---------------------------------------------------------------
  \
   \   (\__/)
       (•ㅅ•)
       /   づ
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

@cursor

cursor Bot commented Sep 25, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_d92d05cf-4ddb-4ba7-a8a3-0ebf3f7f7e3c)

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review September 25, 2026 02:10
@AdaWorldAPI
AdaWorldAPI merged commit 2be6b0d into main Sep 25, 2026
8 of 9 checks passed
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.

2 participants