FAILURE MAP

Understand the failure.
Verify the repair.

Small, reproducible software failures. The broken implementation, the fix that didn’t work, and the one that passed—preserved together.

Explore the cases ↓How results are verified ↗
100840Executable case variants
20168Distinct failure mechanisms
302520Executed implementations
20168Open-access cases

WHAT THE ARCHIVE CONTAINS

100840 executable cases. 20168 are open.

Every case records the implementation that fails, the fix that did not work, and the repair that passed its checks—with recorded outputs and source hashes. This release adds 100840 cases across 20168 failure mechanisms and 254 domains.

The open tier gives you the failure and the unsuccessful fix for one case in every mechanism. The remaining 80672 cases, 5 variants per mechanism, are member-only: the verified repair, its recorded checks, and the full fixture suite are held in the member archive. Read the methodology ↗

A RECORD OF WHAT WENT WRONG

Browse the archive / 100840

Python · Standard library
REFERENCEFAILURE MECHANISMDOMAINACCESS
FA-89501

Sign extension tests bit 7 for every size · case 01

Halfword and word loads sign-extend based on their low byte.

Instruction set emulation● Open access↗
FA-89502

Sign extension tests bit 7 for every size · case 02

Halfword and word loads sign-extend based on their low byte.

Instruction set emulation◈ Members↗
FA-89503

Sign extension tests bit 7 for every size · case 03

Halfword and word loads sign-extend based on their low byte.

Instruction set emulation◈ Members↗
FA-89504

Sign extension tests bit 7 for every size · case 04

Halfword and word loads sign-extend based on their low byte.

Instruction set emulation◈ Members↗
FA-89505

Sign extension tests bit 7 for every size · case 05

Halfword and word loads sign-extend based on their low byte.

Instruction set emulation◈ Members↗
FA-89506

All accesses require word alignment · case 01

Byte and halfword accesses at legal unaligned addresses trap.

Instruction set emulation● Open access↗
FA-89507

All accesses require word alignment · case 02

Byte and halfword accesses at legal unaligned addresses trap.

Instruction set emulation◈ Members↗
FA-89508

All accesses require word alignment · case 03

Byte and halfword accesses at legal unaligned addresses trap.

Instruction set emulation◈ Members↗
FA-89509

All accesses require word alignment · case 04

Byte and halfword accesses at legal unaligned addresses trap.

Instruction set emulation◈ Members↗
FA-89510

All accesses require word alignment · case 05

Byte and halfword accesses at legal unaligned addresses trap.

Instruction set emulation◈ Members↗
FA-89511

Every stored byte receives the low byte · case 01

sw and sh replicate the least significant byte across the whole access.

Instruction set emulation● Open access↗
FA-89512

Every stored byte receives the low byte · case 02

sw and sh replicate the least significant byte across the whole access.

Instruction set emulation◈ Members↗
FA-89513

Every stored byte receives the low byte · case 03

sw and sh replicate the least significant byte across the whole access.

Instruction set emulation◈ Members↗
FA-89514

Every stored byte receives the low byte · case 04

sw and sh replicate the least significant byte across the whole access.

Instruction set emulation◈ Members↗
FA-89515

Every stored byte receives the low byte · case 05

sw and sh replicate the least significant byte across the whole access.

Instruction set emulation◈ Members↗
FA-89516

Unsigned higher ignores the zero flag · case 01

hi is true after comparing equal values.

Instruction set emulation● Open access↗
FA-89517

Unsigned higher ignores the zero flag · case 02

hi is true after comparing equal values.

Instruction set emulation◈ Members↗
FA-89518

Unsigned higher ignores the zero flag · case 03

hi is true after comparing equal values.

Instruction set emulation◈ Members↗
FA-89519

Unsigned higher ignores the zero flag · case 04

hi is true after comparing equal values.

Instruction set emulation◈ Members↗
FA-89520

Unsigned higher ignores the zero flag · case 05

hi is true after comparing equal values.

Instruction set emulation◈ Members↗
FA-89521

Lower-or-same requires both borrow and equality · case 01

ls is false for strictly lower operands.

Instruction set emulation● Open access↗
FA-89522

Lower-or-same requires both borrow and equality · case 02

ls is false for strictly lower operands.

Instruction set emulation◈ Members↗
FA-89523

Lower-or-same requires both borrow and equality · case 03

ls is false for strictly lower operands.

Instruction set emulation◈ Members↗
FA-89524

Lower-or-same requires both borrow and equality · case 04

ls is false for strictly lower operands.

Instruction set emulation◈ Members↗
FA-89525

Lower-or-same requires both borrow and equality · case 05

ls is false for strictly lower operands.

Instruction set emulation◈ Members↗
FA-89526

Signed comparison ignores overflow · case 01

ge gives the wrong answer when the subtraction overflowed.

Instruction set emulation● Open access↗
FA-89527

Signed comparison ignores overflow · case 02

ge gives the wrong answer when the subtraction overflowed.

Instruction set emulation◈ Members↗
FA-89528

Signed comparison ignores overflow · case 03

ge gives the wrong answer when the subtraction overflowed.

Instruction set emulation◈ Members↗
FA-89529

Signed comparison ignores overflow · case 04

ge gives the wrong answer when the subtraction overflowed.

Instruction set emulation◈ Members↗
FA-89530

Signed comparison ignores overflow · case 05

ge gives the wrong answer when the subtraction overflowed.

Instruction set emulation◈ Members↗
FA-89531

Signed greater-than true on equality · case 01

gt is true after comparing equal values.

Instruction set emulation● Open access↗
FA-89532

Signed greater-than true on equality · case 02

gt is true after comparing equal values.

Instruction set emulation◈ Members↗
FA-89533

Signed greater-than true on equality · case 03

gt is true after comparing equal values.

Instruction set emulation◈ Members↗
FA-89534

Signed greater-than true on equality · case 04

gt is true after comparing equal values.

Instruction set emulation◈ Members↗
FA-89535

Signed greater-than true on equality · case 05

gt is true after comparing equal values.

Instruction set emulation◈ Members↗
FA-89536

Signed less-or-equal needs both zero and sign mismatch · case 01

le is false for strictly smaller signed values.

Instruction set emulation● Open access↗
FA-89537

Signed less-or-equal needs both zero and sign mismatch · case 02

le is false for strictly smaller signed values.

Instruction set emulation◈ Members↗
FA-89538

Signed less-or-equal needs both zero and sign mismatch · case 03

le is false for strictly smaller signed values.

Instruction set emulation◈ Members↗
FA-89539

Signed less-or-equal needs both zero and sign mismatch · case 04

le is false for strictly smaller signed values.

Instruction set emulation◈ Members↗
FA-89540

Signed less-or-equal needs both zero and sign mismatch · case 05

le is false for strictly smaller signed values.

Instruction set emulation◈ Members↗
FA-89541

Writes to the zero register stick · case 01

After writing x0, later instructions reading x0 see a nonzero value.

Instruction set emulation● Open access↗
FA-89542

Writes to the zero register stick · case 02

After writing x0, later instructions reading x0 see a nonzero value.

Instruction set emulation◈ Members↗
FA-89543

Writes to the zero register stick · case 03

After writing x0, later instructions reading x0 see a nonzero value.

Instruction set emulation◈ Members↗
FA-89544

Writes to the zero register stick · case 04

After writing x0, later instructions reading x0 see a nonzero value.

Instruction set emulation◈ Members↗
FA-89545

Writes to the zero register stick · case 05

After writing x0, later instructions reading x0 see a nonzero value.

Instruction set emulation◈ Members↗
FA-89546

Register values exceed 32 bits · case 01

Additions that overflow keep a 33rd bit and negative results stay negative.

Instruction set emulation● Open access↗
FA-89547

Register values exceed 32 bits · case 02

Additions that overflow keep a 33rd bit and negative results stay negative.

Instruction set emulation◈ Members↗
FA-89548

Register values exceed 32 bits · case 03

Additions that overflow keep a 33rd bit and negative results stay negative.

Instruction set emulation◈ Members↗
FA-89549

Register values exceed 32 bits · case 04

Additions that overflow keep a 33rd bit and negative results stay negative.

Instruction set emulation◈ Members↗
FA-89550

Register values exceed 32 bits · case 05

Additions that overflow keep a 33rd bit and negative results stay negative.

Instruction set emulation◈ Members↗
FA-89551

slt compares register values as unsigned · case 01

slt reports -1 as greater than 1.

Instruction set emulation● Open access↗
FA-89552

slt compares register values as unsigned · case 02

slt reports -1 as greater than 1.

Instruction set emulation◈ Members↗
FA-89553

slt compares register values as unsigned · case 03

slt reports -1 as greater than 1.

Instruction set emulation◈ Members↗
FA-89554

slt compares register values as unsigned · case 04

slt reports -1 as greater than 1.

Instruction set emulation◈ Members↗
FA-89555

slt compares register values as unsigned · case 05

slt reports -1 as greater than 1.

Instruction set emulation◈ Members↗
FA-89556

sltiu compares against a negative immediate · case 01

sltiu rd, rs, -1 is always false instead of true for every value except all ones.

Instruction set emulation● Open access↗
FA-89557

sltiu compares against a negative immediate · case 02

sltiu rd, rs, -1 is always false instead of true for every value except all ones.

Instruction set emulation◈ Members↗
FA-89558

sltiu compares against a negative immediate · case 03

sltiu rd, rs, -1 is always false instead of true for every value except all ones.

Instruction set emulation◈ Members↗
FA-89559

sltiu compares against a negative immediate · case 04

sltiu rd, rs, -1 is always false instead of true for every value except all ones.

Instruction set emulation◈ Members↗
FA-89560

sltiu compares against a negative immediate · case 05

sltiu rd, rs, -1 is always false instead of true for every value except all ones.

Instruction set emulation◈ Members↗
FA-89561

srai shifts in zeros · case 01

Arithmetic right shift of a negative value produces a large positive value.

Instruction set emulation● Open access↗
FA-89562

srai shifts in zeros · case 02

Arithmetic right shift of a negative value produces a large positive value.

Instruction set emulation◈ Members↗
FA-89563

srai shifts in zeros · case 03

Arithmetic right shift of a negative value produces a large positive value.

Instruction set emulation◈ Members↗
FA-89564

srai shifts in zeros · case 04

Arithmetic right shift of a negative value produces a large positive value.

Instruction set emulation◈ Members↗
FA-89565

srai shifts in zeros · case 05

Arithmetic right shift of a negative value produces a large positive value.

Instruction set emulation◈ Members↗
FA-89566

slli shift amount not masked to five bits · case 01

Shifting left by 32 or more clears the register instead of using the low five bits.

Instruction set emulation● Open access↗
FA-89567

slli shift amount not masked to five bits · case 02

Shifting left by 32 or more clears the register instead of using the low five bits.

Instruction set emulation◈ Members↗
FA-89568

slli shift amount not masked to five bits · case 03

Shifting left by 32 or more clears the register instead of using the low five bits.

Instruction set emulation◈ Members↗
FA-89569

slli shift amount not masked to five bits · case 04

Shifting left by 32 or more clears the register instead of using the low five bits.

Instruction set emulation◈ Members↗
FA-89570

slli shift amount not masked to five bits · case 05

Shifting left by 32 or more clears the register instead of using the low five bits.

Instruction set emulation◈ Members↗
FA-89571

NMI treated as level triggered · case 01

Holding the NMI line high re-enters the NMI handler on every step.

Instruction set emulation● Open access↗
FA-89572

NMI treated as level triggered · case 02

Holding the NMI line high re-enters the NMI handler on every step.

Instruction set emulation◈ Members↗
FA-89573

NMI treated as level triggered · case 03

Holding the NMI line high re-enters the NMI handler on every step.

Instruction set emulation◈ Members↗
FA-89574

NMI treated as level triggered · case 04

Holding the NMI line high re-enters the NMI handler on every step.

Instruction set emulation◈ Members↗
FA-89575

NMI treated as level triggered · case 05

Holding the NMI line high re-enters the NMI handler on every step.

Instruction set emulation◈ Members↗
FA-89576

IRQ ignores the interrupt disable flag · case 01

An IRQ is taken while I is set.

Instruction set emulation● Open access↗
FA-89577

IRQ ignores the interrupt disable flag · case 02

An IRQ is taken while I is set.

Instruction set emulation◈ Members↗
FA-89578

IRQ ignores the interrupt disable flag · case 03

An IRQ is taken while I is set.

Instruction set emulation◈ Members↗
FA-89579

IRQ ignores the interrupt disable flag · case 04

An IRQ is taken while I is set.

Instruction set emulation◈ Members↗
FA-89580

IRQ ignores the interrupt disable flag · case 05

An IRQ is taken while I is set.

Instruction set emulation◈ Members↗
FA-89581

IRQ entry leaves interrupts enabled · case 01

A level IRQ that is still asserted re-enters its handler immediately.

Instruction set emulation● Open access↗
FA-89582

IRQ entry leaves interrupts enabled · case 02

A level IRQ that is still asserted re-enters its handler immediately.

Instruction set emulation◈ Members↗
FA-89583

IRQ entry leaves interrupts enabled · case 03

A level IRQ that is still asserted re-enters its handler immediately.

Instruction set emulation◈ Members↗
FA-89584

IRQ entry leaves interrupts enabled · case 04

A level IRQ that is still asserted re-enters its handler immediately.

Instruction set emulation◈ Members↗
FA-89585

IRQ entry leaves interrupts enabled · case 05

A level IRQ that is still asserted re-enters its handler immediately.

Instruction set emulation◈ Members↗
FA-89586

Return from interrupt pops pc before flags · case 01

rti restores the saved flag into pc and the saved pc into I.

Instruction set emulation● Open access↗
FA-89587

Return from interrupt pops pc before flags · case 02

rti restores the saved flag into pc and the saved pc into I.

Instruction set emulation◈ Members↗
FA-89588

Return from interrupt pops pc before flags · case 03

rti restores the saved flag into pc and the saved pc into I.

Instruction set emulation◈ Members↗
FA-89589

Return from interrupt pops pc before flags · case 04

rti restores the saved flag into pc and the saved pc into I.

Instruction set emulation◈ Members↗
FA-89590

Return from interrupt pops pc before flags · case 05

rti restores the saved flag into pc and the saved pc into I.

Instruction set emulation◈ Members↗
FA-89591

NMI edge detector not updated when the NMI is taken · case 01

A held NMI line is seen as a new edge on the step after entry.

Instruction set emulation● Open access↗
FA-89592

NMI edge detector not updated when the NMI is taken · case 02

A held NMI line is seen as a new edge on the step after entry.

Instruction set emulation◈ Members↗
FA-89593

NMI edge detector not updated when the NMI is taken · case 03

A held NMI line is seen as a new edge on the step after entry.

Instruction set emulation◈ Members↗
FA-89594

NMI edge detector not updated when the NMI is taken · case 04

A held NMI line is seen as a new edge on the step after entry.

Instruction set emulation◈ Members↗
FA-89595

NMI edge detector not updated when the NMI is taken · case 05

A held NMI line is seen as a new edge on the step after entry.

Instruction set emulation◈ Members↗
FA-89596

SIB base 5 displacement omitted · case 01

A SIB-addressed instruction with no base register is decoded four bytes short.

Instruction set emulation● Open access↗
FA-89597

SIB base 5 displacement omitted · case 02

A SIB-addressed instruction with no base register is decoded four bytes short.

Instruction set emulation◈ Members↗
FA-89598

SIB base 5 displacement omitted · case 03

A SIB-addressed instruction with no base register is decoded four bytes short.

Instruction set emulation◈ Members↗
FA-89599

SIB base 5 displacement omitted · case 04

A SIB-addressed instruction with no base register is decoded four bytes short.

Instruction set emulation◈ Members↗
FA-89600

SIB base 5 displacement omitted · case 05

A SIB-addressed instruction with no base register is decoded four bytes short.

Instruction set emulation◈ Members↗

INSPECTABLE BY DESIGN

Every result has a runnable source.

Runnable implementations with recorded outputs, source hashes, and explicit contracts. Related variants share a failure mechanism and belong together in evaluation splits.

Read the methodology ↗