ai.onnx.Min / build /webgpu /test.json
Xenova's picture
Xenova HF Staff
sync 2e7068faf55e
292ec3c verified
Raw
History Blame
43 kB
{
"op": "ai.onnx.Min",
"cases": [
{
"name": "int16_max_arity_boundaries",
"inputs": {
"a": {
"dtype": "int16",
"shape": [5],
"data": { "kind": "values", "values": [-32768, 32767, 32767, 32767, 32767] }
},
"b": {
"dtype": "int16",
"shape": [5],
"data": { "kind": "values", "values": [32767, -32767, 32767, 32767, 32767] }
},
"c": {
"dtype": "int16",
"shape": [5],
"data": { "kind": "values", "values": [32767, 32767, -1, 32767, 32767] }
},
"d": { "dtype": "int16", "shape": [5], "data": { "kind": "values", "values": [32767, 32767, 32767, 0, 32767] } },
"e": { "dtype": "int16", "shape": [5], "data": { "kind": "values", "values": [32767, 32767, 32767, 32767, 1] } }
},
"outputs": {
"y": {
"dtype": "int16",
"shape": [5],
"tolerance": 0,
"data": { "kind": "values", "values": [-32768, -32767, -1, 0, 1] }
}
}
},
{
"name": "max_arity_float16_positions",
"provenance": {
"notes": "Synthetic five-input float16 Min contract fixture; each bounded input position uniquely wins one output lane."
},
"inputs": {
"a": { "dtype": "float16", "shape": [5], "data": { "kind": "values", "values": [1.0, 9.0, 9.0, 9.0, 9.0] } },
"b": { "dtype": "float16", "shape": [5], "data": { "kind": "values", "values": [9.0, 2.0, 9.0, 9.0, 9.0] } },
"c": { "dtype": "float16", "shape": [5], "data": { "kind": "values", "values": [9.0, 9.0, 3.0, 9.0, 9.0] } },
"d": { "dtype": "float16", "shape": [5], "data": { "kind": "values", "values": [9.0, 9.0, 9.0, 4.0, 9.0] } },
"e": { "dtype": "float16", "shape": [5], "data": { "kind": "values", "values": [9.0, 9.0, 9.0, 9.0, 5.0] } }
},
"outputs": {
"y": {
"dtype": "float16",
"shape": [5],
"tolerance": 0,
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] }
}
}
},
{
"name": "max_arity_int32_positions",
"provenance": {
"notes": "Synthetic five-input int32 Min contract fixture; each bounded input position uniquely wins one output lane."
},
"inputs": {
"a": { "dtype": "int32", "shape": [5], "data": { "kind": "values", "values": [1, 9, 9, 9, 9] } },
"b": { "dtype": "int32", "shape": [5], "data": { "kind": "values", "values": [9, 2, 9, 9, 9] } },
"c": { "dtype": "int32", "shape": [5], "data": { "kind": "values", "values": [9, 9, 3, 9, 9] } },
"d": { "dtype": "int32", "shape": [5], "data": { "kind": "values", "values": [9, 9, 9, 4, 9] } },
"e": { "dtype": "int32", "shape": [5], "data": { "kind": "values", "values": [9, 9, 9, 9, 5] } }
},
"outputs": {
"y": { "dtype": "int32", "shape": [5], "tolerance": 0, "data": { "kind": "values", "values": [1, 2, 3, 4, 5] } }
}
},
{
"name": "max_arity_int8_positions",
"provenance": {
"notes": "Synthetic five-input int8 Min contract fixture; each bounded input position uniquely wins one output lane."
},
"inputs": {
"a": { "dtype": "int8", "shape": [5], "data": { "kind": "values", "values": [1, 9, 9, 9, 9] } },
"b": { "dtype": "int8", "shape": [5], "data": { "kind": "values", "values": [9, 2, 9, 9, 9] } },
"c": { "dtype": "int8", "shape": [5], "data": { "kind": "values", "values": [9, 9, 3, 9, 9] } },
"d": { "dtype": "int8", "shape": [5], "data": { "kind": "values", "values": [9, 9, 9, 4, 9] } },
"e": { "dtype": "int8", "shape": [5], "data": { "kind": "values", "values": [9, 9, 9, 9, 5] } }
},
"outputs": {
"y": { "dtype": "int8", "shape": [5], "tolerance": 0, "data": { "kind": "values", "values": [1, 2, 3, 4, 5] } }
}
},
{
"name": "max_arity_uint32_positions",
"provenance": {
"notes": "Synthetic five-input uint32 Min contract fixture; each bounded input position uniquely wins one output lane."
},
"inputs": {
"a": { "dtype": "uint32", "shape": [5], "data": { "kind": "values", "values": [1, 9, 9, 9, 9] } },
"b": { "dtype": "uint32", "shape": [5], "data": { "kind": "values", "values": [9, 2, 9, 9, 9] } },
"c": { "dtype": "uint32", "shape": [5], "data": { "kind": "values", "values": [9, 9, 3, 9, 9] } },
"d": { "dtype": "uint32", "shape": [5], "data": { "kind": "values", "values": [9, 9, 9, 4, 9] } },
"e": { "dtype": "uint32", "shape": [5], "data": { "kind": "values", "values": [9, 9, 9, 9, 5] } }
},
"outputs": {
"y": {
"dtype": "uint32",
"shape": [5],
"tolerance": 0,
"data": { "kind": "values", "values": [1, 2, 3, 4, 5] }
}
}
},
{
"name": "max_arity_uint8_positions",
"provenance": {
"notes": "Synthetic five-input uint8 Min contract fixture; each bounded input position uniquely wins one output lane."
},
"inputs": {
"a": { "dtype": "uint8", "shape": [5], "data": { "kind": "values", "values": [1, 9, 9, 9, 9] } },
"b": { "dtype": "uint8", "shape": [5], "data": { "kind": "values", "values": [9, 2, 9, 9, 9] } },
"c": { "dtype": "uint8", "shape": [5], "data": { "kind": "values", "values": [9, 9, 3, 9, 9] } },
"d": { "dtype": "uint8", "shape": [5], "data": { "kind": "values", "values": [9, 9, 9, 4, 9] } },
"e": { "dtype": "uint8", "shape": [5], "data": { "kind": "values", "values": [9, 9, 9, 9, 5] } }
},
"outputs": {
"y": { "dtype": "uint8", "shape": [5], "tolerance": 0, "data": { "kind": "values", "values": [1, 2, 3, 4, 5] } }
}
},
{
"name": "f32_negative_subnormal_min_zero_gpu_gap",
"skipGpu": {
"category": "permanent",
"reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal flushes float32 subnormals to zero, so the negative subnormal becomes 0 and min(.,0) returns 0 instead of the subnormal."
},
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_8",
"notes": "Negative subnormal inputs are less than zero and should be selected by Min."
},
"inputs": {
"a": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [-1e-39, -1e-40, 0.0, 1e-40] } },
"b": { "dtype": "float32", "shape": [4], "data": { "kind": "constant", "value": 0.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [4], "tolerance": 0 } }
},
{
"name": "f32_negative_subnormal_min_zero_scalar_gpu_gap",
"skipGpu": {
"category": "permanent",
"reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal flushes float32 subnormals to zero, so the negative subnormal becomes 0 and min(.,0) returns 0 instead of the subnormal."
},
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_8",
"notes": "Scalar broadcast companion: negative subnormal inputs remain less than zero."
},
"inputs": {
"a": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [-1e-40, 0.0, 1e-40] } },
"b": { "dtype": "float32", "shape": [], "data": { "kind": "values", "values": [0.0] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0 } }
},
{
"name": "same_shape",
"inputs": {
"a": {
"dtype": "float32",
"shape": [2, 3],
"data": { "kind": "values", "values": [1.0, 5.0, -2.0, 4.0, 0.0, 6.0] }
},
"b": {
"dtype": "float32",
"shape": [2, 3],
"data": { "kind": "values", "values": [3.0, 2.0, -4.0, 8.0, 1.0, 1.0] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 3] } }
},
{
"name": "rank4_broadcast",
"inputs": {
"a": { "dtype": "float32", "shape": [1, 2, 3, 4] },
"b": {
"dtype": "float32",
"shape": [1, 1, 1, 4],
"data": { "kind": "values", "values": [0.2, 0.1, -0.1, -0.2] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 2, 3, 4] } }
},
{
"name": "rank0_rhs_threshold_broadcast",
"inputs": {
"a": {
"dtype": "float32",
"shape": [6],
"data": { "kind": "values", "values": [-2.0, -0.5, 0.0, 0.5, 2.0, 5.0] }
},
"b": { "dtype": "float32", "shape": [], "data": { "kind": "values", "values": [0.5] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [6], "tolerance": 0.000001 } }
},
{
"name": "nan_propagates",
"inputs": {
"a": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": ["NaN", 1.0, "NaN", 2.0] } },
"b": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [3.0, "NaN", "NaN", 1.0] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [4], "tolerance": 0.000001, "allowNaN": true } }
},
{
"name": "uint32_exact_above_float24",
"inputs": {
"a": {
"dtype": "uint32",
"shape": [4],
"data": { "kind": "values", "values": [16777217, 16777216, 4294967295, 4294967294] }
},
"b": {
"dtype": "uint32",
"shape": [4],
"data": { "kind": "values", "values": [16777216, 16777217, 4294967294, 4294967295] }
}
},
"outputs": { "y": { "dtype": "uint32", "shape": [4], "tolerance": 0 } }
},
{
"name": "same_shape_vec4_three_input",
"inputs": {
"a": {
"dtype": "float32",
"shape": [8],
"data": { "kind": "values", "values": [1.0, 5.0, -2.0, 4.0, 0.0, 6.0, 10.0, -10.0] }
},
"b": {
"dtype": "float32",
"shape": [8],
"data": { "kind": "values", "values": [3.0, 2.0, -4.0, 8.0, 1.0, 1.0, 9.0, -9.0] }
},
"c": {
"dtype": "float32",
"shape": [8],
"data": { "kind": "values", "values": [0.0, 7.0, -3.0, 2.0, -1.0, 8.0, 11.0, -11.0] }
}
},
"outputs": {
"y": {
"dtype": "float32",
"shape": [8],
"tolerance": 0.000001,
"data": { "kind": "values", "values": [0.0, 2.0, -4.0, 2.0, -1.0, 1.0, 9.0, -11.0] }
}
}
},
{
"name": "ort_float_three_input_same_shape",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_8"
},
"inputs": {
"a": {
"dtype": "float32",
"shape": [3, 3],
"data": { "kind": "values", "values": [1.0, 0.0, 1.0, -1.0, 1.1, -100.0, -5.4, 0.01, -10000.0] }
},
"b": {
"dtype": "float32",
"shape": [3, 3],
"data": { "kind": "values", "values": [1.0, 0.0, 2.0, -2.0, 2.2, 64.0, -1.0, 0.02, 0.1] }
},
"c": {
"dtype": "float32",
"shape": [3, 3],
"data": { "kind": "values", "values": [1.0, 0.0, 3.0, -3.0, 3.3, 64.0, 5.4, 0.03, 10000.0] }
}
},
"outputs": {
"y": {
"dtype": "float32",
"shape": [3, 3],
"tolerance": 0.000001,
"data": { "kind": "values", "values": [1.0, 0.0, 1.0, -3.0, 1.1, -100.0, -5.4, 0.01, -10000.0] }
}
}
},
{
"name": "ort_validated_four_inputs_same_shape_variadic",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_8",
"notes": "Extends ORT's same-shape Min coverage to a valid four-input ONNX variadic node."
},
"inputs": {
"a": { "dtype": "float32", "shape": [2, 2], "data": { "kind": "constant", "value": -1.0 } },
"b": { "dtype": "float32", "shape": [2, 2], "data": { "kind": "constant", "value": -3.0 } },
"c": { "dtype": "float32", "shape": [2, 2], "data": { "kind": "constant", "value": -5.0 } },
"d": { "dtype": "float32", "shape": [2, 2], "data": { "kind": "constant", "value": -7.0 } }
},
"outputs": {
"y": { "dtype": "float32", "shape": [2, 2], "tolerance": 0, "data": { "kind": "constant", "value": -7.0 } }
}
},
{
"name": "four_input_same_shape_vec4_reference_generated",
"provenance": {
"notes": "Reference-generated four-operand coverage; see the Max sibling. Equal-amplitude interleaved sinusoids mean D supplies the minimum on a substantial share of lanes, so a reference that stops at C is visible here."
},
"inputs": {
"a": {
"dtype": "float32",
"shape": [2, 3, 2, 8],
"data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.23, "scale": 0.25 }
},
"b": {
"dtype": "float32",
"shape": [2, 3, 2, 8],
"data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.07, "scale": 0.25 }
},
"c": {
"dtype": "float32",
"shape": [2, 3, 2, 8],
"data": { "kind": "fillFloat32", "sinStep": 0.31, "cosStep": 0.13, "scale": 0.25 }
},
"d": {
"dtype": "float32",
"shape": [2, 3, 2, 8],
"data": { "kind": "fillFloat32", "sinStep": 0.05, "cosStep": 0.37, "scale": 0.25 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 3, 2, 8], "tolerance": 0.000001, "relTolerance": 0.000001 } }
},
{
"name": "ort_four_inputs_nan_propagates_variadic",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_8",
"notes": "Extends ORT's variadic Min coverage with a fourth input that carries NaNs; any NaN input should propagate at that element."
},
"inputs": {
"a": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [1.0, "NaN", 5.0, -4.0] } },
"b": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [2.0, 3.0, "NaN", 1.0] } },
"c": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [0.0, -5.0, 2.0, -8.0] } },
"d": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [-3.0, 4.0, -6.0, "NaN"] } }
},
"outputs": {
"y": {
"dtype": "float32",
"shape": [4],
"tolerance": 0,
"allowNaN": true,
"data": { "kind": "values", "values": [-3.0, "NaN", "NaN", "NaN"] }
}
}
},
{
"name": "ort_float_three_input_broadcast",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_12_Float"
},
"inputs": {
"a": { "dtype": "float32", "shape": [1, 3], "data": { "kind": "values", "values": [1.0, 2.0, 3.0] } },
"b": {
"dtype": "float32",
"shape": [3, 3],
"data": { "kind": "values", "values": [10.0, 20.0, 30.0, 40.0, 50.0, 60.0, -70.0, -80.0, -90.0] }
},
"c": { "dtype": "float32", "shape": [3, 1], "data": { "kind": "values", "values": [-1.0, 20.0, 300.0] } }
},
"outputs": {
"y": {
"dtype": "float32",
"shape": [3, 3],
"tolerance": 0.000001,
"data": { "kind": "values", "values": [-1.0, -1.0, -1.0, 1.0, 2.0, 3.0, -70.0, -80.0, -90.0] }
}
}
},
{
"name": "ort_float_four_input_broadcast",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_12_Float",
"notes": "Extends ORT's multidirectional broadcast case to a valid four-input ONNX variadic Min node."
},
"inputs": {
"a": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [1.0, 2.0, 3.0] } },
"b": { "dtype": "float32", "shape": [3, 1], "data": { "kind": "values", "values": [10.0, 20.0, 30.0] } },
"c": { "dtype": "float32", "shape": [3, 1, 1], "data": { "kind": "values", "values": [100.0, 200.0, 300.0] } },
"d": {
"dtype": "float32",
"shape": [1, 1, 3],
"data": { "kind": "values", "values": [-1000.0, -2000.0, -3000.0] }
}
},
"outputs": {
"y": {
"dtype": "float32",
"shape": [3, 3, 3],
"tolerance": 0,
"data": {
"kind": "values",
"values": [-1000.0, -2000.0, -3000.0, -1000.0, -2000.0, -3000.0, -1000.0, -2000.0, -3000.0, -1000.0, -2000.0, -3000.0, -1000.0, -2000.0, -3000.0, -1000.0, -2000.0, -3000.0, -1000.0, -2000.0, -3000.0, -1000.0, -2000.0, -3000.0, -1000.0, -2000.0, -3000.0]
}
}
}
},
{
"name": "ort_float_nan_broadcast",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_12_Float_Nan"
},
"inputs": {
"a": {
"dtype": "float32",
"shape": [3, 3],
"data": { "kind": "values", "values": ["NaN", "NaN", "NaN", -0.5, 0.0, -2.0, 0.5, 0.0, 2.0] }
},
"b": { "dtype": "float32", "shape": [3, 1], "data": { "kind": "values", "values": [0.0, -1.0, 1.0] } }
},
"outputs": {
"y": {
"dtype": "float32",
"shape": [3, 3],
"tolerance": 0.000001,
"allowNaN": true,
"data": { "kind": "values", "values": ["NaN", "NaN", "NaN", -1.0, -1.0, -2.0, 0.5, 0.0, 1.0] }
}
}
},
{
"name": "ort_float_2input_broadcast",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_12_Float_2_Input"
},
"inputs": {
"a": {
"dtype": "float32",
"shape": [3, 3],
"data": { "kind": "values", "values": [10.0, 20.0, 30.0, 40.0, 50.0, 60.0, -70.0, -80.0, -90.0] }
},
"b": { "dtype": "float32", "shape": [3, 1], "data": { "kind": "values", "values": [-1.0, 20.0, 300.0] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [3, 3], "tolerance": 0.000001 } }
},
{
"name": "ort_float_nan_with_scalar",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_12_Float_Nan_with_scalar"
},
"inputs": {
"a": { "dtype": "float32", "shape": [3, 1], "data": { "kind": "values", "values": ["NaN", -0.5, 0.5] } },
"b": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [0.25] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [3, 1], "tolerance": 0.000001, "allowNaN": true } }
},
{
"name": "ort_float_scalar_nan_broadcast",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_12_Float_with_scalar_Nan"
},
"inputs": {
"a": { "dtype": "float32", "shape": [2, 2], "data": { "kind": "values", "values": [0.25, -0.25, -0.5, 0.5] } },
"b": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": ["NaN"] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 2], "tolerance": 0.000001, "allowNaN": true } }
},
{
"name": "ort_f16_matrix_vector",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_13_Float16_MatrixVector"
},
"inputs": {
"a": {
"dtype": "float16",
"shape": [3, 3],
"data": { "kind": "values", "values": [1.0, 1.0, 1.0, -0.5, 0.0, -2.0, 0.5, 0.0, 2.0] }
},
"b": { "dtype": "float16", "shape": [3, 1], "data": { "kind": "values", "values": [0.0, -1.0, 1.0] } }
},
"outputs": { "y": { "dtype": "float16", "shape": [3, 3], "tolerance": 0.002 } }
},
{
"name": "ort_f16_vector_matrix",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_13_Float16_VectorMatrix"
},
"inputs": {
"a": { "dtype": "float16", "shape": [3, 1], "data": { "kind": "values", "values": [0.0, -1.0, 1.0] } },
"b": {
"dtype": "float16",
"shape": [3, 4],
"data": { "kind": "values", "values": [1.0, 1.0, 1.0, -1.0, -0.5, 0.0, -2.0, -1.25, 0.5, 0.0, 2.0, 1.5] }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [3, 4], "tolerance": 0.002 } }
},
{
"name": "ort_f16_nan_pair",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_13_Float16_Nan"
},
"inputs": {
"a": { "dtype": "float16", "shape": [4, 1], "data": { "kind": "values", "values": [-1.0, "NaN", 1.0, 0.5] } },
"b": { "dtype": "float16", "shape": [4, 1], "data": { "kind": "values", "values": [0.5, 1.0, 0.25, "NaN"] } }
},
"outputs": { "y": { "dtype": "float16", "shape": [4, 1], "tolerance": 0.002, "allowNaN": true } }
},
{
"name": "ort_f16_nan_with_scalar",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_13_Float16_Nan_with_scalar"
},
"inputs": {
"a": { "dtype": "float16", "shape": [3, 1], "data": { "kind": "values", "values": [-1.0, "NaN", 1.0] } },
"b": { "dtype": "float16", "shape": [1], "data": { "kind": "values", "values": [0.25] } }
},
"outputs": { "y": { "dtype": "float16", "shape": [3, 1], "tolerance": 0.002, "allowNaN": true } }
},
{
"name": "ort_f16_scalar_nan_broadcast",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_13_Float16_with_scalar_Nan"
},
"inputs": {
"a": { "dtype": "float16", "shape": [3, 1], "data": { "kind": "values", "values": [-0.5, 1.0, 1.5] } },
"b": { "dtype": "float16", "shape": [1], "data": { "kind": "values", "values": ["NaN"] } }
},
"outputs": { "y": { "dtype": "float16", "shape": [3, 1], "tolerance": 0.002, "allowNaN": true } }
},
{
"name": "ort_f16_three_input",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_12_MLFloat16"
},
"inputs": {
"a": { "dtype": "float16", "shape": [1, 3], "data": { "kind": "values", "values": [1.0, 1.0, 1.0] } },
"b": { "dtype": "float16", "shape": [1, 3], "data": { "kind": "values", "values": [2.0, -1.0, -2.0] } },
"c": { "dtype": "float16", "shape": [1, 3], "data": { "kind": "values", "values": [3.0, 2.0, -3.0] } }
},
"outputs": {
"y": {
"dtype": "float16",
"shape": [1, 3],
"tolerance": 0.002,
"data": { "kind": "values", "values": [1.0, -1.0, -3.0] }
}
}
},
{
"name": "ort_f16_scalar0_three_input",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_12_MLFloat16_Scalar0"
},
"inputs": {
"a": { "dtype": "float16", "shape": [], "data": { "kind": "values", "values": [-10.0] } },
"b": { "dtype": "float16", "shape": [1, 3], "data": { "kind": "values", "values": [2.0, -1.0, -2.0] } },
"c": { "dtype": "float16", "shape": [1, 3], "data": { "kind": "values", "values": [3.0, 2.0, -3.0] } }
},
"outputs": {
"y": {
"dtype": "float16",
"shape": [1, 3],
"tolerance": 0.002,
"data": { "kind": "values", "values": [-10.0, -10.0, -10.0] }
}
}
},
{
"name": "ort_f16_scalar1_three_input",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_12_MLFloat16_Scalar1"
},
"inputs": {
"a": { "dtype": "float16", "shape": [1, 3], "data": { "kind": "values", "values": [2.0, 3.0, 4.0] } },
"b": { "dtype": "float16", "shape": [], "data": { "kind": "values", "values": [-10.0] } },
"c": { "dtype": "float16", "shape": [1, 3], "data": { "kind": "values", "values": [3.0, 2.0, -3.0] } }
},
"outputs": {
"y": {
"dtype": "float16",
"shape": [1, 3],
"tolerance": 0.002,
"data": { "kind": "values", "values": [-10.0, -10.0, -10.0] }
}
}
},
{
"name": "ort_int8_pair_broadcast",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_12_Int8",
"notes": "Two-input projection of ORT's broadcast case for logical int8 storage."
},
"inputs": {
"a": {
"dtype": "int8",
"shape": [3, 3],
"data": { "kind": "values", "values": [10, 20, 30, 40, 50, 60, -70, -80, -90] }
},
"b": { "dtype": "int8", "shape": [3, 1], "data": { "kind": "values", "values": [-1, 20, 127] } }
},
"outputs": { "y": { "dtype": "int8", "shape": [3, 3], "tolerance": 0 } }
},
{
"name": "ort_uint8_pair_broadcast",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_12_UInt8",
"notes": "Two-input projection of ORT's broadcast case for logical uint8 storage."
},
"inputs": {
"a": {
"dtype": "uint8",
"shape": [3, 3],
"data": { "kind": "values", "values": [10, 20, 30, 40, 50, 60, 70, 80, 90] }
},
"b": { "dtype": "uint8", "shape": [3, 1], "data": { "kind": "values", "values": [1, 20, 30] } }
},
"outputs": { "y": { "dtype": "uint8", "shape": [3, 3], "tolerance": 0 } }
},
{
"name": "ort_int8_three_input_broadcast",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_12_Int8"
},
"inputs": {
"a": { "dtype": "int8", "shape": [1, 3], "data": { "kind": "values", "values": [1, 2, 3] } },
"b": {
"dtype": "int8",
"shape": [3, 3],
"data": { "kind": "values", "values": [10, 20, 30, 40, 50, 60, -70, -80, -90] }
},
"c": { "dtype": "int8", "shape": [3, 1], "data": { "kind": "values", "values": [-1, 20, 127] } }
},
"outputs": { "y": { "dtype": "int8", "shape": [3, 3], "tolerance": 0 } }
},
{
"name": "ort_uint8_three_input_broadcast",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_12_UInt8"
},
"inputs": {
"a": { "dtype": "uint8", "shape": [1, 3], "data": { "kind": "values", "values": [1, 20, 30] } },
"b": {
"dtype": "uint8",
"shape": [3, 3],
"data": { "kind": "values", "values": [10, 20, 30, 40, 50, 60, 70, 80, 90] }
},
"c": { "dtype": "uint8", "shape": [3, 1], "data": { "kind": "values", "values": [1, 20, 30] } }
},
"outputs": { "y": { "dtype": "uint8", "shape": [3, 3], "tolerance": 0 } }
},
{
"name": "ort_int32_three_input_broadcast",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_12_Int32"
},
"inputs": {
"a": { "dtype": "int32", "shape": [1, 3], "data": { "kind": "values", "values": [1, 2, 3] } },
"b": {
"dtype": "int32",
"shape": [3, 3],
"data": { "kind": "values", "values": [10, 20, 30, 40, 50, 60, -70, -80, -90] }
},
"c": { "dtype": "int32", "shape": [3, 1], "data": { "kind": "values", "values": [-1, 20, 300] } }
},
"outputs": { "y": { "dtype": "int32", "shape": [3, 3], "tolerance": 0 } }
},
{
"name": "ort_uint32_three_input_broadcast",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.Min_12_UInt32"
},
"inputs": {
"a": { "dtype": "uint32", "shape": [1, 3], "data": { "kind": "values", "values": [1, 20, 30] } },
"b": {
"dtype": "uint32",
"shape": [3, 3],
"data": { "kind": "values", "values": [10, 20, 30, 40, 50, 60, 70, 80, 90] }
},
"c": { "dtype": "uint32", "shape": [3, 1], "data": { "kind": "values", "values": [1, 20, 30] } }
},
"outputs": { "y": { "dtype": "uint32", "shape": [3, 3], "tolerance": 0 } }
},
{
"name": "onnx_backend_min_float16",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_min_float16" },
"inputs": {
"a": { "dtype": "float16", "shape": [3], "data": { "kind": "values", "values": [3.0, 2.0, 1.0] } },
"b": { "dtype": "float16", "shape": [3], "data": { "kind": "values", "values": [1.0, 4.0, 4.0] } }
},
"outputs": { "y": { "dtype": "float16", "shape": [3], "tolerance": 0 } }
},
{
"name": "onnx_backend_min_int32",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_min_int32" },
"inputs": {
"a": { "dtype": "int32", "shape": [3], "data": { "kind": "values", "values": [3, 2, 1] } },
"b": { "dtype": "int32", "shape": [3], "data": { "kind": "values", "values": [1, 4, 4] } }
},
"outputs": { "y": { "dtype": "int32", "shape": [3], "tolerance": 0 } }
},
{
"name": "onnx_backend_min_int8",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_min_int8" },
"inputs": {
"a": { "dtype": "int8", "shape": [3], "data": { "kind": "values", "values": [3, 2, 1] } },
"b": { "dtype": "int8", "shape": [3], "data": { "kind": "values", "values": [1, 4, 4] } }
},
"outputs": { "y": { "dtype": "int8", "shape": [3], "tolerance": 0 } }
},
{
"name": "onnx_backend_min_two_inputs",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_min_two_inputs" },
"inputs": {
"a": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [3.0, 2.0, 1.0] } },
"b": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [1.0, 4.0, 4.0] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0 } }
},
{
"name": "onnx_backend_min_uint32",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_min_uint32" },
"inputs": {
"a": { "dtype": "uint32", "shape": [3], "data": { "kind": "values", "values": [3, 2, 1] } },
"b": { "dtype": "uint32", "shape": [3], "data": { "kind": "values", "values": [1, 4, 4] } }
},
"outputs": { "y": { "dtype": "uint32", "shape": [3], "tolerance": 0 } }
},
{
"name": "onnx_backend_min_uint8",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_min_uint8" },
"inputs": {
"a": { "dtype": "uint8", "shape": [3], "data": { "kind": "values", "values": [3, 2, 1] } },
"b": { "dtype": "uint8", "shape": [3], "data": { "kind": "values", "values": [1, 4, 4] } }
},
"outputs": { "y": { "dtype": "uint8", "shape": [3], "tolerance": 0 } }
},
{
"name": "onnx_backend_min_one_input_identity",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_min_one_input" },
"inputs": { "a": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [3.0, 2.0, 1.0] } } },
"outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0 } }
},
{
"name": "onnx_backend_min_example_three_inputs",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_min_example" },
"inputs": {
"a": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [3.0, 2.0, 1.0] } },
"b": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [1.0, 4.0, 4.0] } },
"c": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [2.0, 5.0, 0.0] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0 } }
},
{
"name": "ort_dim_zero_equal_rank",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.DimWithZeroHandling",
"notes": "Projected from ORT's binary elementwise zero-dimension Add coverage to generic ONNX multidirectional broadcasting."
},
"inputs": {
"a": { "dtype": "float32", "shape": [3, 1], "data": { "kind": "values", "values": [1.0, 2.0, 3.0] } },
"b": { "dtype": "float32", "shape": [3, 0], "data": { "kind": "values", "values": [] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [3, 0], "tolerance": 0 } }
},
{
"name": "ort_dim_zero_scalar_broadcast",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc",
"test": "MathOpTest.DimWithZeroHandling",
"notes": "Projected from ORT's binary elementwise zero-dimension Add coverage to generic ONNX multidirectional broadcasting."
},
"inputs": {
"a": { "dtype": "float32", "shape": [], "data": { "kind": "values", "values": [1.0] } },
"b": { "dtype": "float32", "shape": [0], "data": { "kind": "values", "values": [] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [0], "tolerance": 0 } }
},
{
"name": "single_input_identity_ignores_d",
"inputs": {
"a": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [1.0, -5.0, 3.0, 0.0] } },
"d": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [-2.0, -3.0, 10.0, -7.0] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [4], "tolerance": 0 } }
},
{
"name": "same_shape_vec4_ignores_d_when_c_absent",
"inputs": {
"a": {
"dtype": "float32",
"shape": [8],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
},
"b": {
"dtype": "float32",
"shape": [8],
"data": { "kind": "values", "values": [0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5] }
},
"d": {
"dtype": "float32",
"shape": [8],
"data": { "kind": "values", "values": [-10.0, 99.0, 99.0, 99.0, 99.0, 99.0, 99.0, -100.0] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [8], "tolerance": 0 } }
},
{
"name": "f32_infinity_pair",
"inputs": {
"a": {
"dtype": "float32",
"shape": [6],
"data": { "kind": "values", "values": ["Infinity", "-Infinity", "Infinity", "-Infinity", 1.0, 2.0] }
},
"b": {
"dtype": "float32",
"shape": [6],
"data": { "kind": "values", "values": ["-Infinity", 0.0, 1.0, "Infinity", "-Infinity", 3.0] }
}
},
"outputs": {
"y": {
"dtype": "float32",
"shape": [6],
"tolerance": 0,
"data": { "kind": "values", "values": ["-Infinity", "-Infinity", 1.0, "-Infinity", "-Infinity", 2.0] }
}
}
},
{
"name": "int8_extreme_values_broadcast",
"inputs": {
"a": { "dtype": "int8", "shape": [4], "data": { "kind": "values", "values": [-128, 127, -128, 0] } },
"b": { "dtype": "int8", "shape": [4], "data": { "kind": "values", "values": [127, -128, 0, -1] } }
},
"outputs": {
"y": {
"dtype": "int8",
"shape": [4],
"tolerance": 0,
"data": { "kind": "values", "values": [-128, -128, -128, -1] }
}
}
},
{
"name": "five_input_same_shape_variadic",
"inputs": {
"a": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [1.0, 9.0, -3.0, 4.0] } },
"b": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [2.0, 8.0, -4.0, 3.0] } },
"c": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [3.0, 7.0, -5.0, 2.0] } },
"d": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [4.0, 6.0, -6.0, 1.0] } },
"e": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [5.0, 5.0, -7.0, 0.0] } }
},
"outputs": {
"y": {
"dtype": "float32",
"shape": [4],
"tolerance": 0,
"data": { "kind": "values", "values": [1.0, 5.0, -7.0, 0.0] }
}
}
},
{
"name": "rank8_broadcast_two_input",
"inputs": {
"a": {
"dtype": "float32",
"shape": [1, 2, 1, 2, 1, 2, 2, 3],
"data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.23 }
},
"b": {
"dtype": "float32",
"shape": [2, 1, 2, 1, 2, 1, 2, 3],
"data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.19 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 2, 2, 2, 2, 2, 2, 3], "tolerance": 0.000001 } }
},
{
"name": "uint32_three_input_same_shape_vec4",
"provenance": {
"notes": "uint32 at arity 3 exercises the flat vec4 same-shape path and its extra-operand fold. Lanes 0-2 contain values above 2^31, so a signed comparison produces the wrong minimum. Valid ONNX Min-13: variadic over any numeric T with all operands the same shape."
},
"inputs": {
"a": {
"dtype": "uint32",
"shape": [8],
"data": { "kind": "values", "values": [4000000000, 10, 2147483648, 50, 30, 90, 1200, 1400] }
},
"b": {
"dtype": "uint32",
"shape": [8],
"data": { "kind": "values", "values": [100, 3500000000, 2147483649, 45, 70, 95, 1100, 1500] }
},
"c": {
"dtype": "uint32",
"shape": [8],
"data": { "kind": "values", "values": [200, 4294967295, 999, 60, 80, 85, 1300, 1350] }
}
},
"outputs": { "y": { "dtype": "uint32", "shape": [8], "tolerance": 0 } }
},
{
"name": "int32_four_input_same_shape_vec4",
"provenance": {
"notes": "int32 at arity 4 on the flat vec4 same-shape path: the i32 branch of the same integer lane of minmax-vec4, with TWO extra-operand folds so the second fold reads the value the first produced. Lane 0 pairs INT32_MIN with INT32_MAX, which no float32 path could carry exactly; lanes 1-7 spread the win evenly over a, b, c and d. Valid ONNX Min-13: variadic over numeric T with all four operands the same shape."
},
"inputs": {
"a": {
"dtype": "int32",
"shape": [8],
"data": { "kind": "values", "values": [-2147483648, -10, -20, -30, -1500, -40, -50, -60] }
},
"b": {
"dtype": "int32",
"shape": [8],
"data": { "kind": "values", "values": [2147483647, -950, -25, -35, -200, -1600, -55, -65] }
},
"c": {
"dtype": "int32",
"shape": [8],
"data": { "kind": "values", "values": [-110, -15, -990, -45, -210, -70, -1700, -75] }
},
"d": {
"dtype": "int32",
"shape": [8],
"data": { "kind": "values", "values": [-120, -20, -30, -1000, -220, -80, -85, -1800] }
}
},
"outputs": { "y": { "dtype": "int32", "shape": [8], "tolerance": 0 } }
},
{
"name": "f16_three_input_same_shape_vec4",
"provenance": {
"notes": "float16 at arity 3 exercises the flat vec4 same-shape path, including widening to f32, the extra-operand minimum fold, NaN re-injection, and narrowing. Every value is exactly representable in float16 and each operand wins at least two lanes."
},
"inputs": {
"a": {
"dtype": "float16",
"shape": [8],
"data": { "kind": "values", "values": [-3.5, 2.5, -0.25, -6.0, 3.0, -3.5, 0.75, -0.5] }
},
"b": {
"dtype": "float16",
"shape": [8],
"data": { "kind": "values", "values": [-2.5, 0.5, 0.5, -2.0, 1.0, -2.5, 8.0, -7.75] }
},
"c": {
"dtype": "float16",
"shape": [8],
"data": { "kind": "values", "values": [-0.5, 1.5, -4.5, -3.0, 2.0, -5.5, 4.0, -1.5] }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [8], "tolerance": 0.002 } }
},
{
"name": "f16_four_input_same_shape_vec4",
"provenance": {
"notes": "float16 at arity 4 on the flat vec4 same-shape path (same_shape_vec4_four_input, numel 8). Two extra-operand folds in the f16 lane of minmax-vec4, so the second fold consumes the first fold's result and the loop.first-guarded comment renders on the first pass only. Valid ONNX Min-13 for T = float16 with four same-shape operands. Every value is exactly representable in float16 and each of a, b, c, d supplies the minimum on exactly two lanes, so no operand can be dropped."
},
"inputs": {
"a": {
"dtype": "float16",
"shape": [2, 4],
"data": { "kind": "values", "values": [-3.5, 2.5, -0.25, -6.0, 1.0, -3.5, 4.0, -0.5] }
},
"b": {
"dtype": "float16",
"shape": [2, 4],
"data": { "kind": "values", "values": [-2.5, 0.5, 0.5, -2.0, 3.0, -6.5, 8.0, -5.5] }
},
"c": {
"dtype": "float16",
"shape": [2, 4],
"data": { "kind": "values", "values": [-0.5, 1.5, -4.5, -3.0, 2.0, -5.5, 0.75, -1.5] }
},
"d": {
"dtype": "float16",
"shape": [2, 4],
"data": { "kind": "values", "values": [0.5, 3.5, -1.25, -9.0, 6.0, -2.5, 1.0, -7.75] }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [2, 4], "tolerance": 0.002 } }
}
]
}