Regression test from seed 550

mlir-stage-15-v1 · regression test PR · draft · ← all drafts

Add a regression test for mlir-stage-15-v1

This adds one LIT test covering 0 lines and 6 branch outcomes that the existing suite does not reach, across 1 source file, at 48615bc5925ef4b9db8b4550b5d4322933cf4b7b.

Coverage this test adds

Source file Newly covered lines Newly covered branch outcomes
lib/Frontend/Raising/ExactStandardSpelling.h — 125:9–125:47 false; 131:9–131:40 false; 57:10–57:50 true; 58:10–58:49 true; 59:10–59:48 true; 60:10–60:47 true

The test

The input is 25 lines; reduction found nothing further to remove that kept the coverage above and a compiler that still accepted it. The CHECK lines are the compiler's exact output on this input at 48615bc5925ef4b9db8b4550b5d4322933cf4b7b.

// RUN: loom-raise-opt --loom-materialize-fmuladd=shape=fused %s | FileCheck %s

llvm.func @envelope_0(%x: f32, %y: f32, %z: f32) -> f32
    attributes {fp_contract = "off"} {
  %r0 = llvm.intr.fmuladd(%x, %y, %z) {fastmathFlags = #llvm.fastmath<fast>} : (f32, f32, f32) -> f32
  %r1 = llvm.intr.fmuladd(%r0, %y, %z) {fastmathFlags = #llvm.fastmath<fast>} : (f32, f32, f32) -> f32
  llvm.return %r1 : f32
}

func.func @native_1(%x: f64, %y: f64, %z: f64) -> f64 {
  %r0 = llvm.intr.fmuladd(%x, %y, %z) : (f64, f64, f64) -> f64
  return %r0 : f64
}

llvm.func @typed_2(%x: f64, %y: f64, %z: f64) -> f64 {
  %r0 = llvm.intr.fmuladd(%x, %y, %z) : (f64, f64, f64) -> f64
  %r1 = llvm.intr.fmuladd(%r0, %y, %z) : (f64, f64, f64) -> f64
  llvm.return %r1 : f64
}

llvm.func @envelope_3(%x: f32, %y: f32, %z: f32) -> f32
    attributes {denormal_fpenv = #llvm.denormal_fpenv<default_output_mode = ieee, default_input_mode = ieee, float_output_mode = ieee, float_input_mode = ieee>} {
  %r0 = llvm.intr.fmuladd(%x, %y, %z) : (f32, f32, f32) -> f32
  %r1 = llvm.intr.fmuladd(%r0, %y, %z) : (f32, f32, f32) -> f32
  llvm.return %r1 : f32
}


// CHECK: module {
// CHECK-NEXT:   llvm.func @envelope_0(%arg0: f32, %arg1: f32, %arg2: f32) -> f32 attributes {fp_contract = "off"} {
// CHECK-NEXT:     %0 = math.fma %arg0, %arg1, %arg2 fastmath<fast> : f32
// CHECK-NEXT:     %1 = math.fma %0, %arg1, %arg2 fastmath<fast> : f32
// CHECK-NEXT:     llvm.return %1 : f32
// CHECK-NEXT:   }
// CHECK-NEXT:   func.func @native_1(%arg0: f64, %arg1: f64, %arg2: f64) -> f64 {
// CHECK-NEXT:     %0 = math.fma %arg0, %arg1, %arg2 : f64
// CHECK-NEXT:     return %0 : f64
// CHECK-NEXT:   }
// CHECK-NEXT:   llvm.func @typed_2(%arg0: f64, %arg1: f64, %arg2: f64) -> f64 {
// CHECK-NEXT:     %0 = math.fma %arg0, %arg1, %arg2 : f64
// CHECK-NEXT:     %1 = math.fma %0, %arg1, %arg2 : f64
// CHECK-NEXT:     llvm.return %1 : f64
// CHECK-NEXT:   }
// CHECK-NEXT:   llvm.func @envelope_3(%arg0: f32, %arg1: f32, %arg2: f32) -> f32 attributes {denormal_fpenv = #llvm.denormal_fpenv<default_output_mode = ieee, default_input_mode = ieee, float_output_mode = ieee, float_input_mode = ieee>} {
// CHECK-NEXT:     %0 = math.fma %arg0, %arg1, %arg2 : f32
// CHECK-NEXT:     %1 = math.fma %0, %arg1, %arg2 : f32
// CHECK-NEXT:     llvm.return %1 : f32
// CHECK-NEXT:   }
// CHECK-NEXT: }
// CHECK-EMPTY:

Validation

  • Native compiler and FileCheck replay: passed at 48615bc5925ef4b9db8b4550b5d4322933cf4b7b.
  • Property checker verdict on the reduced pair: PASS (postcondition.spct, SHA-256 32c2f1137fecabff3bcd614b253f87a8b83c567b0b3388187885ee0a1c0a5e59).
  • Reduction criterion: accepted checker PASS and every original line/branch increment over the suite baseline; the original postcondition BDD decision path is unchanged; every original fast edge increment over its suite baseline.

Where this test came from

PBT mlir-stage-15-v1, run 20260911-084459, seed 550.

The property under test is anchored on documentation:

  • selected output: docs/spec-compiler-part-2-scf.md lines 185–186 (output side)
  • linked input 61: docs/spec-compiler-part-2-scf.md lines 1018–1021 (input side)
  • linked input 101: docs/spec-compiler-part-2-scf.md lines 178–181 (input side)
  • linked input 127: docs/spec-compiler-part-2-scf.md lines 1021–1022 (input side)
  • linked input 165: docs/spec-compiler-part-2-scf.md lines 1029–1034 (input side)
  • linked input 209: docs/spec-compiler-part-2-scf.md lines 181–185 (input side)

Coverage is measured against the recorded baseline suite at this revision, and counts unique mapped file locations including generated code. Reduction retains every added line or branch outcome and a passing property check; it is not a claim of global minimality, nor of a defect.

Originating PBT run · Seed 550

LIT test · PR patch · Native verification