trunk
Branches trunk
1 Branches 0 Tags
Go to file T
Code
fixtures Fix mixed complex arithmetic
README.md Add exact file and phase repro oracles
allocate_constructor_runtime.rs Preserve driver and ABI fixes
allocate_validation.rs Preserve driver and ABI fixes
artifact_audit_29_10.rs Refresh helper symbol assertions
bounds_checks.rs Wire array bounds checks end to end
calling_convention_runtime.rs Preserve narrow VALUE call widths
capture_opt_levels.rs Refresh helper symbol assertions
claims_audit_29_11.rs Accept either NEON or kernel-call form of O3 vectorization
cli_driver.rs Test intrinsic repeat survives user-generic shadow
control_flow_runtime.rs Stabilize control-flow timeout
determinism_sweep.rs Capture compiler updates and formatting sweep
do_concurrent_exploit.rs Exploit small DO CONCURRENT loops
do_concurrent_semantics.rs Honor DO CONCURRENT masks and controls
elemental_array_map.rs Fix deferred string descriptor ABI
fortbite_backend.rs Fix mixed complex arithmetic
fortran_alias_licm.rs Fix deferred string descriptor ABI
fortsh_module_graph.rs Sandbox fortsh graph outputs
fuzz_smoke.rs Capture compiler updates and formatting sweep
gvn_dse_audit_29_11.rs Make o2_removes_dead_seed test unroll-tolerant: check store-of-const-zero pattern
i128_backend_data.rs Allow globals-only i128 backend
i128_cross_object.rs Fix fortsh link contract
i128_external_backend.rs Audit external i128 ABI
i128_formatted_read.rs Capture compiler updates and formatting sweep
i128_gates.rs Capture compiler updates and formatting sweep
i128_high_opt.rs Capture compiler updates and formatting sweep
i128_internal_io.rs Update internal_format test to match afs_fmt_begin_internal_ex symbol
i128_ir.rs Widen i128 constant storage
i128_memory_backend.rs Refresh i128 helper assertion
i128_o1.rs Capture compiler updates and formatting sweep
i128_o2.rs Capture compiler updates and formatting sweep
i128_runtime_io.rs Capture compiler updates and formatting sweep
i128_runtime_read.rs Capture compiler updates and formatting sweep
i128_stack_args.rs Coerce mixed-width select operands
incremental.rs Run module tests in temp workdirs
ipo_const_arg.rs Fix deferred string descriptor ABI
ipo_dead_arg.rs Fix deferred string descriptor ABI
ipo_return_prop.rs Fix deferred string descriptor ABI
licm_lsf_audit_29_11.rs Fix root CI regressions
loop_partial_unroll.rs Test trip-16 loop runs correctly under partial unroll at O2
loop_partial_unroll_reduction.rs Test reduction-loop partial unroll preserves sum result
loop_partial_unroll_runtime.rs Test runtime-trip partial unroll emits imod + partial_remain block and runs correctly
loop_partial_unroll_runtime_red.rs Test runtime-trip reduction partial unroll runs correctly with remainder
memory_runtime.rs Preserve driver and ABI fixes
module_host_audit.rs Fix deferred string descriptor ABI
multifile.rs Update module_private_default to assert .amod private-tag contract
multifile_gen.rs Pass -J<test-dir> when compiling .amod-emitting modules so parallel tests don't race on .amod files in the repo root
ofast_fast_math.rs Capture compiler updates and formatting sweep
opt_audit_29_11.rs Fix deferred string descriptor ABI
opt_audit_29_8.rs Add GVN audit regression
program_entry_audit.rs Capture compiler updates and formatting sweep
pure_call_reuse.rs Resolve contained calls by scope
pure_dead_call_elim.rs Fix deferred string descriptor ABI
regalloc_runtime.rs Preserve driver and ABI fixes
run_programs.rs Apply rustfmt across runtime, src, and tests
sprint29_audit_realworld.rs Prefer active realworld compiler
sroa_shape_audit_29_11.rs Fix deferred string descriptor ABI
standalone_toolchain.rs Resolve afs-ld via AFS_LD env var and forward -L/-l/-rpath flags
vectorize_array_copy.rs Test O3 picks NEON copy form and runtime preserves element values
vectorize_do_loop.rs Accept either NEON or kernel-call form of O3 in vectorize_do_loop
vectorize_dot_product.rs Test dot product emits two vloads + vmul + vadd + vreduce_sum and prints 11440
vectorize_f32.rs Test f32 NEON path produces 2.5/64.0 and avoids gp-form dup
vectorize_fma.rs Test element-wise FMA fuses fmul+fadd into vfma across three loops
vectorize_invariant_scalar.rs Test O3 hoists VBroadcast and produces 8 / 39 at runtime
vectorize_minmax_binary.rs Test element-wise max/min vectorize for three element types
vectorize_multi_statement.rs Test multi-statement body produces 8/39/6/192 with 2 VStores at O3
vectorize_reduce_fp.rs Test FP reductions emit faddp pairs and produce 528.0
vectorize_reduce_fp_minmax.rs Test FP min/max reductions emit fmaxv/fminv.4s + fmaxp/fminp.2d and produce 32.0 / 1.0
vectorize_reduce_i64.rs Test i64 sum reduction emits addp.2d + umov.d and prints 528
vectorize_reduce_minmax.rs Test int max/min reductions emit smaxv/sminv + smax/smin and produce 32 / 68
vectorize_reduce_minmax_tail.rs Test min/max reduction scalar tail across i32/f32/f64
vectorize_reduce_minmax_unary.rs Test infinity-norm vectorizes via vabs + vmax + vreduce_max
vectorize_reduce_sum.rs Test sum reduction emits vbroadcast/vadd/vreduce_sum/mov.16b/addv.4s and prints 528
vectorize_reduce_sum_diff.rs Test sum-of-differences vectorizes via vsub + vreduce_sum
vectorize_reduce_sum_tail.rs Test sum-reduction scalar tail across all four element types
vectorize_reduce_sum_unary.rs Test sum-with-unary across all four reduction shapes (incl. scalar tail)
vectorize_scalar_tail.rs Test scalar-tail peeling produces correct boundary values at c(28)/c(29)/c(31)
vectorize_sqrt.rs Test sqrt(load) vectorizes into two vsqrt and runs correctly
vectorize_unary.rs Test O3 emits vneg/vabs and runtime preserves negate/abs values
vectorize_where.rs Test WHERE-block masking produces vselect + correct lane outputs
vectorize_where_2arr.rs Test WHERE with array+array body vectorizes at O3
vectorize_where_binop.rs Test WHERE with binop body emits vadd/vmul + vbroadcast and correct output
vectorize_where_binop_on_b.rs Test WHERE then-arm binop on second array load vectorizes at O3
vectorize_where_const.rs Test WHERE with constant-scalar store value vectorizes at O3
vectorize_where_elsewhere.rs Test WHERE/ELSEWHERE two-arm vectorizes at O3
vectorize_where_elsewhere_arr.rs Test WHERE/ELSEWHERE array-load else vectorizes at O3
vectorize_where_elsewhere_arr_binop.rs Test WHERE/ELSEWHERE with unary and binop on else array load
vectorize_where_elsewhere_arr_unary.rs Test WHERE/ELSEWHERE with unary and binop on else array load
vectorize_where_elsewhere_binop.rs Test WHERE/ELSEWHERE composes with then-arm binop and elsewhere const
vectorize_where_int.rs Test integer WHERE vectorizes via vicmp + vselect
vectorize_where_invariant.rs Test WHERE broadcasts invariant threshold and masks correctly
vectorize_where_unary.rs Test WHERE with unary body emits vneg/vabs and correct masked output
vectorize_where_unary_on_b.rs Test WHERE then-arm unary on second array load vectorizes at O3

armfortas tests

The root tests/ directory now holds armfortas-local harnesses and integration checks that belong in the compiler repo itself.

The extracted structured bench lives in the bencch/ submodule.

Current handoff point: The canonical leaf-assertion language lives in source comments inside test_programs/ and other shared fixtures:

  • ! CHECK:
  • ! STDERR_CHECK:
  • ! EXIT_CODE:
  • ! XFAIL:
  • ! ERROR_EXPECTED:
  • ! ERROR_SPAN:
  • ! ASM_CHECK: / ! ASM_NOT:
  • ! FILE_CHECK: / ! FILE_NOT:
  • ! FILE_EXISTS: / ! FILE_MISSING:
  • ! FILE_LINE_COUNT:
  • ! FILE_RERUN_MODE:
  • ! FILE_SET_EXACT:
  • ! REPRO_CHECK:
  • ! OPT_EQ:
  • ! PHASE_TRIANGULATE:
  • ! IR_CHECK:
  • ! IR_NOT:

That source comment language is meant to converge with bencch, not drift from it.

Relationship To bencch

The extracted structured bench lives in the bencch/ submodule. It remains a co-equal tool, but it now has a clearer role:

  • the root harness is the fast armfortas-first runner
  • bencch is the structured matrix/reporting/differential runner

bencch should reuse source directives from shared fixtures whenever possible. Its suite DSL is for orchestration — opts, references, module graphs, capability policy, reports, and bundles — not for inventing a separate leaf assertion language.

  • bencch was split out after the Sprint 6 audit/hardening slice.
  • The next planned bench slice is deeper Sprint 6 differential coverage and object/tool consistency work.