Architecture
RUNLTS
Predict conditional branches with fewer mistakes.
Based on RUNLTS: Register-value-aware Predictor Utilizing Nested Large Tables (CBP 2025) · original code
Unsolved. None of the 12 agents beat the original code.
Background
A branch predictor guesses which way each conditional branch will go, before the processor knows. Each wrong guess wastes work on the wrong path. RUNLTS predicts from past branches, and also from register values once the instructions producing them have run.
What the agent has to build
The task removes the register-value part of its statistical corrector, a stage that adjusts the main guess. The agent writes it. It must track values as instructions run out of order, and never trust a value a newer instruction replaces. It turns them into a vote on each branch, within a fixed storage limit.
How it is judged
Each submission runs a cycle-level simulator over 105 program traces. To pass, on every trace it must make fewer mispredictions than the human reference and lose fewer wrong-path cycles.
How each agent did
Each agent had one try of 5 hours. Score is out of 100; a high score alone is not enough to solve the task.
| Agent | Result | Score | Cost |
|---|---|---|---|
| Original authors’ code | Reference | 31.5 | |
| Claude Opus 5.5 | Not solved | 31.3 | $19.30 |
| GPT-6 Astra | Not solved | 31.2 | $28.55 |
| Gemini 4 Argon | Not solved | 31.2 | $18.23 |
| GPT-6.1 Sol | Not solved | 31.1 | $3.11 |
| Kimi K3 | Not solved | 31.1 | $8.63 |
| DeepSeek V4.1 Flash | Not solved | 31.1 | $0.12 |
| Muse Wonder 1.0 | Not solved | 31.1 | $17.31 |
| GLM 5.3 Flash | Not solved | 31.1 | $0.89 |
| Muse Spark 1.3 | Not solved | 31.0 | $6.18 |
| GLM 5.3 | Not solved | 30.9 | $6.29 |
| Qwen 3.8 Max | Not solved | 30.9 | $2.96 |
| Step 5 Preview | Not solved | 30.9 | $8.39 |
Show the measurements behind each result
To solve the task an agent must beat the original code on every measurement below, on every hidden test case. Values are averages over those test cases. A dark bar means it beat the original on all of them; an orange bar shows the share it beat.
| Agent | Mispredictions per 1K instructionslower is better | Wrong-path cycles per 1K instructionslower is better | Predictor storage (bits)lower is better |
|---|---|---|---|
| Original code | 3.2 | 140 | 1,570,000 |
| Claude Opus 5.5 | 3.24 | 141 | 1,570,000 |
| GPT-6 Astra | 3.26 | 142 | 1,570,000 |
| Gemini 4 Argon | 3.26 | 141 | 1,570,000 |
| GPT-6.1 Sol | 3.27 | 141 | 1,570,000 |
| Kimi K3 | 3.29 | 142 | 1,570,000 |
| DeepSeek V4.1 Flash | 3.29 | 142 | 1,570,000 |
| Muse Wonder 1.0 | 3.29 | 142 | 1,570,000 |
| GLM 5.3 Flash | 3.27 | 142 | 1,570,000 |
| Muse Spark 1.3 | 3.31 | 142 | 1,560,000 |
| GLM 5.3 | 3.32 | 142 | 1,570,000 |
| Qwen 3.8 Max | 3.33 | 142 | 1,520,000 |
| Step 5 Preview | 3.31 | 142 | 1,570,000 |
How Claude Opus 5.5 approached it
- 1.
Tracking the newest producer
For each of 33 registers, the 31 general ones, the stack pointer and the flags, it records which instruction last claimed it at decode. An executed value is stored only if it comes from that newest claimant. A late, older instruction is ignored, and the register stays unusable until its newest producer runs.
- 2.
Picking recent registers
At each prediction it takes the six registers whose usable values come from the most recent producers. It hashes each of them with the branch address into one shared table of small signed counters.
- 3.
Exact and coarse lookups
Each register is looked up twice: once with its exact value, and once with a coarse class made of the value’s magnitude, its sign and its two low bits. The coarse lookup lets nearby values share what they learn.
- 4.
Joining the corrector’s vote
The counters’ sum, with saturated counters counted three times, is added to the statistical corrector’s sum. Each of the two lookup groups has a usefulness weight that doubles its vote, trained like the corrector’s other groups. The counters move toward the outcome when the branch resolves.
Task and results from frontier-cs.org, as of October 20, 2026.