google / google/xls

evaluation missmatch between JIT and IR interpreter

Open
#4,302 3 comments 0 reactions 0 assignees View on GitHub
fuzz jit
Dominant language
C++
Stars
1.9k
Forks
283
Avg merge
2d 10h
Merged PRs (30d)
135

Description

## Description

The XLS fuzzer found a JIT mismatch on optimized IR.
Specifically, evaluated opt IR (JIT) miscompared with evaluated opt IR (interpreter) and unoptimized IR.

**Miscompare Details:**
```
args: bits[15]:0x2aaa; bits[2]:0x2 evaluated opt IR (JIT) = (bits[15]:0x2aab, bits[2]:0x2, (bits[14]:0x1555, bits[49]:0x0, bits[39]:0x58_c1d6_b1d9), bits[1]:0x1) evaluated opt IR (interpreter), evaluated unopt IR (JIT), evaluated unopt IR (interpreter), interpreted DSLX, simulated = (bits[15]:0x2aab, bits[2]:0x2, (bits[14]:0x1555, bits[49]:0x1_ffff_ffff_ffff, bits[39]:0x1_0000_0000), bits[1]:0x1)
```

The differences are in:
- `bits[49]: 0x0` (JIT) vs `0x1_ffff_ffff_ffff` (Expected)
- `bits[39]: 0x58_c1d6_b1d9` (JIT) vs `0x1_0000_0000` (Expected)
This corresponds to `sign_ext.428` and `concat.321` in the optimized IR.
The selector `concat.77` for the priority selects in `concat.321` seems to have evaluated incorrectly in JIT (selecting case 0 instead of case 1).

### Repro steps
Run the regression test (once the CL is submitted or by using the crasher file directly):
```bash
blaze test //third_party/xls/fuzzer:crasher_2026-05-21_c47d_test
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.