ai.onnx.Split / build /webgpu /test.json
Xenova's picture
Xenova HF Staff
sync 2e7068faf55e
854303d verified
Raw
History Blame
51.2 kB
{
"op": "ai.onnx.Split",
"fixtureArrays": {
"ort_axis2_equal_three_outputs_input_input": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24],
"ort_axis1_middle_dimension_unequal_input_input": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32]
},
"cases": [
{
"name": "max_arity_float16_positions",
"provenance": {
"notes": "Synthetic five-output float16 Split contract fixture; every bounded output position receives a distinct consecutive slice."
},
"attrs": { "axis": 0 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [10],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0] }
}
},
"outputs": {
"y0": { "dtype": "float16", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [1.0, 2.0] } },
"y1": { "dtype": "float16", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [3.0, 4.0] } },
"y2": { "dtype": "float16", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [5.0, 6.0] } },
"y3": { "dtype": "float16", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [7.0, 8.0] } },
"y4": { "dtype": "float16", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [9.0, 10.0] } }
}
},
{
"name": "max_arity_int32_positions",
"provenance": {
"notes": "Synthetic five-output int32 Split contract fixture; every bounded output position receives a distinct consecutive slice."
},
"attrs": { "axis": 0 },
"inputs": {
"input": {
"dtype": "int32",
"shape": [10],
"data": { "kind": "values", "values": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] }
}
},
"outputs": {
"y0": { "dtype": "int32", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [1, 2] } },
"y1": { "dtype": "int32", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [3, 4] } },
"y2": { "dtype": "int32", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [5, 6] } },
"y3": { "dtype": "int32", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [7, 8] } },
"y4": { "dtype": "int32", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [9, 10] } }
}
},
{
"name": "max_arity_int16_positions",
"provenance": {
"notes": "Synthetic five-output int16 Split contract fixture; every bounded output position receives a distinct consecutive slice."
},
"attrs": { "axis": 0 },
"inputs": {
"input": {
"dtype": "int16",
"shape": [10],
"data": { "kind": "values", "values": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] }
}
},
"outputs": {
"y0": { "dtype": "int16", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [1, 2] } },
"y1": { "dtype": "int16", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [3, 4] } },
"y2": { "dtype": "int16", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [5, 6] } },
"y3": { "dtype": "int16", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [7, 8] } },
"y4": { "dtype": "int16", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [9, 10] } }
}
},
{
"name": "max_arity_int8_positions",
"provenance": {
"notes": "Synthetic five-output int8 Split contract fixture; every bounded output position receives a distinct consecutive slice."
},
"attrs": { "axis": 0 },
"inputs": {
"input": {
"dtype": "int8",
"shape": [10],
"data": { "kind": "values", "values": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] }
}
},
"outputs": {
"y0": { "dtype": "int8", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [1, 2] } },
"y1": { "dtype": "int8", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [3, 4] } },
"y2": { "dtype": "int8", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [5, 6] } },
"y3": { "dtype": "int8", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [7, 8] } },
"y4": { "dtype": "int8", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [9, 10] } }
}
},
{
"name": "max_arity_uint32_positions",
"provenance": {
"notes": "Synthetic five-output uint32 Split contract fixture; every bounded output position receives a distinct consecutive slice."
},
"attrs": { "axis": 0 },
"inputs": {
"input": {
"dtype": "uint32",
"shape": [10],
"data": { "kind": "values", "values": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] }
}
},
"outputs": {
"y0": { "dtype": "uint32", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [1, 2] } },
"y1": { "dtype": "uint32", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [3, 4] } },
"y2": { "dtype": "uint32", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [5, 6] } },
"y3": { "dtype": "uint32", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [7, 8] } },
"y4": { "dtype": "uint32", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [9, 10] } }
}
},
{
"name": "max_arity_uint8_positions",
"provenance": {
"notes": "Synthetic five-output uint8 Split contract fixture; every bounded output position receives a distinct consecutive slice."
},
"attrs": { "axis": 0 },
"inputs": {
"input": {
"dtype": "uint8",
"shape": [10],
"data": { "kind": "values", "values": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] }
}
},
"outputs": {
"y0": { "dtype": "uint8", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [1, 2] } },
"y1": { "dtype": "uint8", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [3, 4] } },
"y2": { "dtype": "uint8", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [5, 6] } },
"y3": { "dtype": "uint8", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [7, 8] } },
"y4": { "dtype": "uint8", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [9, 10] } }
}
},
{
"name": "max_arity_bool_positions",
"provenance": {
"notes": "Synthetic five-output bool Split contract fixture; every bounded output position receives a unique non-constant consecutive slice."
},
"attrs": { "axis": 0 },
"inputs": {
"input": {
"dtype": "bool",
"shape": [15],
"data": { "kind": "values", "values": [1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1] }
}
},
"outputs": {
"y0": { "dtype": "bool", "shape": [3], "tolerance": 0, "data": { "kind": "values", "values": [1, 0, 0] } },
"y1": { "dtype": "bool", "shape": [3], "tolerance": 0, "data": { "kind": "values", "values": [0, 1, 0] } },
"y2": { "dtype": "bool", "shape": [3], "tolerance": 0, "data": { "kind": "values", "values": [0, 0, 1] } },
"y3": { "dtype": "bool", "shape": [3], "tolerance": 0, "data": { "kind": "values", "values": [1, 1, 0] } },
"y4": { "dtype": "bool", "shape": [3], "tolerance": 0, "data": { "kind": "values", "values": [1, 0, 1] } }
}
},
{
"name": "single_output_is_identity",
"provenance": {
"notes": "ONNX Split is variadic with output min_arity=1; this pins the legal single-output identity case."
},
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "int16",
"shape": [2, 3],
"data": { "kind": "values", "values": [-32768, -7, 0, 1, 1024, 32767] }
}
},
"outputs": {
"y0": {
"dtype": "int16",
"shape": [2, 3],
"tolerance": 0,
"data": { "kind": "values", "values": [-32768, -7, 0, 1, 1024, 32767] }
}
}
},
{
"name": "axis1_two_outputs",
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 5],
"data": { "kind": "values", "values": [0.0, 1.0, 2.0, 3.0, 4.0, 10.0, 11.0, 12.0, 13.0, 14.0] }
}
},
"outputs": { "y0": { "dtype": "float32", "shape": [2, 2] }, "y1": { "dtype": "float32", "shape": [2, 3] } }
},
{
"name": "ort_axis0_equal_split_float",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.Axis0EqualSplit"
},
"attrs": { "axis": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [4, 2],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 2], "tolerance": 0 },
"y1": { "dtype": "float32", "shape": [2, 2], "tolerance": 0 }
}
},
{
"name": "ort_axis0_equal_split_bool",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.Axis0EqualSplit"
},
"attrs": { "axis": 0 },
"inputs": {
"input": { "dtype": "bool", "shape": [4, 2], "data": { "kind": "values", "values": [1, 0, 1, 0, 1, 0, 1, 0] } }
},
"outputs": {
"y0": { "dtype": "bool", "shape": [2, 2], "tolerance": 0, "data": { "kind": "values", "values": [1, 0, 1, 0] } },
"y1": { "dtype": "bool", "shape": [2, 2], "tolerance": 0, "data": { "kind": "values", "values": [1, 0, 1, 0] } }
}
},
{
"name": "ort_axis0_equal_split_int16",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.Axis0EqualSplit",
"notes": "Exact ORT Axis0EqualSplit coverage for int16 payloads."
},
"attrs": { "axis": 0 },
"inputs": {
"input": { "dtype": "int16", "shape": [4, 2], "data": { "kind": "values", "values": [1, 2, 3, 4, 5, 6, 7, 8] } }
},
"outputs": {
"y0": {
"dtype": "int16",
"shape": [2, 2],
"tolerance": 0,
"data": { "kind": "values", "values": [1, 2, 3, 4] }
},
"y1": {
"dtype": "int16",
"shape": [2, 2],
"tolerance": 0,
"data": { "kind": "values", "values": [5, 6, 7, 8] }
}
}
},
{
"name": "ort_axis1_equal_split_float",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.Axis1EqualSplitFloat"
},
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 4],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 2], "tolerance": 0 },
"y1": { "dtype": "float32", "shape": [2, 2], "tolerance": 0 }
}
},
{
"name": "axis2_f16",
"attrs": { "axis": 2 },
"inputs": { "input": { "dtype": "float16", "shape": [1, 2, 6] } },
"outputs": { "y0": { "dtype": "float16", "shape": [1, 2, 4] }, "y1": { "dtype": "float16", "shape": [1, 2, 2] } },
"tolerance": 0.001
},
{
"name": "axis1_three_outputs",
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 6, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.23 }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 1, 2], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [2, 3, 2], "tolerance": 0.000001 },
"y2": { "dtype": "float32", "shape": [2, 2, 2], "tolerance": 0.000001 }
}
},
{
"name": "axis1_four_outputs_uneven",
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 8, 1],
"data": { "kind": "values", "values": [0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0] }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [1, 1, 1], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [1, 2, 1], "tolerance": 0.000001 },
"y2": { "dtype": "float32", "shape": [1, 1, 1], "tolerance": 0.000001 },
"y3": { "dtype": "float32", "shape": [1, 4, 1], "tolerance": 0.000001 }
}
},
{
"name": "rank6_axis2_two_outputs",
"attrs": { "axis": 2 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 2, 3, 1, 1, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.23 }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [1, 2, 1, 1, 1, 2], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [1, 2, 2, 1, 1, 2], "tolerance": 0.000001 }
}
},
{
"name": "ort_axis0_unequal_split_float",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.Axis0UnequalSplitFloat"
},
"attrs": { "axis": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [4, 2],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [1, 2], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [3, 2], "tolerance": 0.000001 }
}
},
{
"name": "ort_axis1_unequal_split_float",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.Axis1UnequalSplitFloat"
},
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 4],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 3], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [2, 1], "tolerance": 0.000001 }
}
},
{
"name": "ort_negative_axis_equal_split",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.NegativeAxis"
},
"attrs": { "axis": -1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 4],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 2], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [2, 2], "tolerance": 0.000001 }
}
},
{
"name": "ort_axis2_equal_three_outputs",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.Axis2EqualSplit"
},
"attrs": { "axis": 2 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2, 6],
"data": {
"kind": "values",
"values": { "$ref": "#/fixtureArrays/ort_axis2_equal_three_outputs_input_input" }
}
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 2, 2], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [2, 2, 2], "tolerance": 0.000001 },
"y2": { "dtype": "float32", "shape": [2, 2, 2], "tolerance": 0.000001 }
}
},
{
"name": "ort_axis2_unequal_three_outputs",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.Axis2UnequalSplit"
},
"attrs": { "axis": 2 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2, 6],
"data": {
"kind": "values",
"values": { "$ref": "#/fixtureArrays/ort_axis2_equal_three_outputs_input_input" }
}
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 2, 1], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [2, 2, 2], "tolerance": 0.000001 },
"y2": { "dtype": "float32", "shape": [2, 2, 3], "tolerance": 0.000001 }
}
},
{
"name": "ort_axis1_middle_dimension_unequal",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.Axis1SplitMiddleDimensionUnequally"
},
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 4, 4],
"data": {
"kind": "values",
"values": { "$ref": "#/fixtureArrays/ort_axis1_middle_dimension_unequal_input_input" }
}
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 1, 4], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001 }
}
},
{
"name": "ort_axis1_middle_dimension_equal",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.Axis1SplitMiddleDimensionEqually"
},
"attrs": { "axis": 1 },
"inputs": {
"input": { "dtype": "float32", "shape": [2, 4, 4], "data": { "kind": "linspace", "start": 1.0, "end": 32.0 } }
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 2, 4], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [2, 2, 4], "tolerance": 0.000001 }
}
},
{
"name": "ort_axis1_equal_float16",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.Axis1EqualSplitFloat16"
},
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [2, 4],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
}
},
"outputs": {
"y0": { "dtype": "float16", "shape": [2, 2], "tolerance": 0.001 },
"y1": { "dtype": "float16", "shape": [2, 2], "tolerance": 0.001 }
}
},
{
"name": "ort_split18_num_outputs_even_axis1",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.Split18_NumOutputsEvenSplitAxis1"
},
"attrs": { "axis": 1, "num_outputs": 3 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 3],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 1], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [2, 1], "tolerance": 0.000001 },
"y2": { "dtype": "float32", "shape": [2, 1], "tolerance": 0.000001 }
}
},
{
"name": "ort_split18_num_outputs_uneven_axis1",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.Split18_NumOutputsUnevenSplitAxis1"
},
"attrs": { "axis": 1, "num_outputs": 2 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 3],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 2], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [2, 1], "tolerance": 0.000001 }
}
},
{
"name": "ort_axis1_five_outputs_variadic",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.Split18_NumOutputsEvenSplitAxis1",
"notes": "Extends ORT's axis-1 num_outputs coverage to five valid outputs."
},
"attrs": { "axis": 1, "num_outputs": 5 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 5],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0] }
}
},
"outputs": {
"y0": {
"dtype": "float32",
"shape": [2, 1],
"tolerance": 0,
"data": { "kind": "values", "values": [1.0, 6.0] }
},
"y1": {
"dtype": "float32",
"shape": [2, 1],
"tolerance": 0,
"data": { "kind": "values", "values": [2.0, 7.0] }
},
"y2": {
"dtype": "float32",
"shape": [2, 1],
"tolerance": 0,
"data": { "kind": "values", "values": [3.0, 8.0] }
},
"y3": {
"dtype": "float32",
"shape": [2, 1],
"tolerance": 0,
"data": { "kind": "values", "values": [4.0, 9.0] }
},
"y4": {
"dtype": "float32",
"shape": [2, 1],
"tolerance": 0,
"data": { "kind": "values", "values": [5.0, 10.0] }
}
}
},
{
"name": "ort_axis1_five_outputs_uneven_variadic",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.Split18_NumOutputsUnevenSplitAxis1",
"notes": "Projects ORT's axis-1 uneven Split coverage to five explicit output sizes."
},
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 7],
"data": {
"kind": "values",
"values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0]
}
}
},
"outputs": {
"y0": {
"dtype": "float32",
"shape": [2, 1],
"data": { "kind": "values", "values": [1.0, 8.0] },
"tolerance": 0
},
"y1": {
"dtype": "float32",
"shape": [2, 2],
"data": { "kind": "values", "values": [2.0, 3.0, 9.0, 10.0] },
"tolerance": 0
},
"y2": {
"dtype": "float32",
"shape": [2, 1],
"data": { "kind": "values", "values": [4.0, 11.0] },
"tolerance": 0
},
"y3": {
"dtype": "float32",
"shape": [2, 1],
"data": { "kind": "values", "values": [5.0, 12.0] },
"tolerance": 0
},
"y4": {
"dtype": "float32",
"shape": [2, 2],
"data": { "kind": "values", "values": [6.0, 7.0, 13.0, 14.0] },
"tolerance": 0
}
}
},
{
"name": "ort_zero_size_input_equal_split",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.ZeroSizeInput"
},
"attrs": { "axis": -1 },
"inputs": { "input": { "dtype": "float32", "shape": [0, 2], "data": { "kind": "values", "values": [] } } },
"outputs": {
"y0": { "dtype": "float32", "shape": [0, 1], "tolerance": 0 },
"y1": { "dtype": "float32", "shape": [0, 1], "tolerance": 0 }
}
},
{
"name": "ort_zero_size_output_first_chunk",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.ZeroSizeOutput"
},
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 3],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 0], "tolerance": 0 },
"y1": { "dtype": "float32", "shape": [2, 2], "tolerance": 0.000001 },
"y2": { "dtype": "float32", "shape": [2, 1], "tolerance": 0.000001 }
}
},
{
"name": "ort_uint8_negative_axis_logical_uint32",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.Uint8NegativeAxis",
"notes": "Logical uint8 payload values are stored one per uint32 slot in this framework."
},
"attrs": { "axis": -1 },
"inputs": {
"input": {
"dtype": "uint32",
"shape": [2, 4],
"data": { "kind": "values", "values": [1, 2, 3, 4, 5, 6, 7, 8] }
}
},
"outputs": {
"y0": { "dtype": "uint32", "shape": [2, 2], "tolerance": 0 },
"y1": { "dtype": "uint32", "shape": [2, 2], "tolerance": 0 }
}
},
{
"name": "ort_uint8_axis1_middle_unequal_logical_uint32",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.Uint8Axis1SplitMiddleDimensionUnequally",
"notes": "Logical uint8 payload values are stored one per uint32 slot in this framework."
},
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "uint32",
"shape": [2, 4, 4],
"data": {
"kind": "values",
"values": { "$ref": "#/fixtureArrays/ort_axis1_middle_dimension_unequal_input_input" }
}
}
},
"outputs": {
"y0": { "dtype": "uint32", "shape": [2, 1, 4], "tolerance": 0 },
"y1": { "dtype": "uint32", "shape": [2, 3, 4], "tolerance": 0 }
}
},
{
"name": "onnx_backend_split_1d_uneven_split_opset18",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_split_1d_uneven_split_opset18" },
"attrs": { "num_outputs": 4 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [7],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2], "tolerance": 0 },
"y1": { "dtype": "float32", "shape": [2], "tolerance": 0 },
"y2": { "dtype": "float32", "shape": [2], "tolerance": 0 },
"y3": { "dtype": "float32", "shape": [1], "tolerance": 0 }
}
},
{
"name": "onnx_backend_split_2d_uneven_split_opset18",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_split_2d_uneven_split_opset18" },
"attrs": { "axis": 1, "num_outputs": 3 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 8],
"data": {
"kind": "values",
"values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0]
}
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 3], "tolerance": 0 },
"y1": { "dtype": "float32", "shape": [2, 3], "tolerance": 0 },
"y2": { "dtype": "float32", "shape": [2, 2], "tolerance": 0 }
}
},
{
"name": "onnx_backend_split_equal_parts_1d_opset13",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_split_equal_parts_1d_opset13" },
"attrs": { "axis": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [6],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2], "tolerance": 0 },
"y1": { "dtype": "float32", "shape": [2], "tolerance": 0 },
"y2": { "dtype": "float32", "shape": [2], "tolerance": 0 }
}
},
{
"name": "onnx_backend_split_equal_parts_1d_opset18",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_split_equal_parts_1d_opset18" },
"attrs": { "axis": 0, "num_outputs": 3 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [6],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2], "tolerance": 0 },
"y1": { "dtype": "float32", "shape": [2], "tolerance": 0 },
"y2": { "dtype": "float32", "shape": [2], "tolerance": 0 }
}
},
{
"name": "onnx_backend_split_equal_parts_2d",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_split_equal_parts_2d" },
"attrs": { "axis": 1, "num_outputs": 2 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 6],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0] }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 3], "tolerance": 0 },
"y1": { "dtype": "float32", "shape": [2, 3], "tolerance": 0 }
}
},
{
"name": "onnx_backend_split_equal_parts_2d_opset13",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_split_equal_parts_2d_opset13" },
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 6],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0] }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 3], "tolerance": 0 },
"y1": { "dtype": "float32", "shape": [2, 3], "tolerance": 0 }
}
},
{
"name": "onnx_backend_split_equal_parts_default_axis_opset13",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_split_equal_parts_default_axis_opset13"
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [6],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2], "tolerance": 0 },
"y1": { "dtype": "float32", "shape": [2], "tolerance": 0 },
"y2": { "dtype": "float32", "shape": [2], "tolerance": 0 }
}
},
{
"name": "onnx_backend_split_equal_parts_default_axis_opset18",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_split_equal_parts_default_axis_opset18"
},
"attrs": { "num_outputs": 3 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [6],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2], "tolerance": 0 },
"y1": { "dtype": "float32", "shape": [2], "tolerance": 0 },
"y2": { "dtype": "float32", "shape": [2], "tolerance": 0 }
}
},
{
"name": "onnx_backend_split_variable_parts_1d_opset18",
"attrs": { "axis": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [6],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] }
},
"split": { "dtype": "uint32", "shape": [2], "data": { "kind": "values", "values": [2, 4] } }
},
"outputs": { "y0": { "dtype": "float32", "shape": [2] }, "y1": { "dtype": "float32", "shape": [4] } },
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_split_variable_parts_1d_opset18",
"notes": "ONNX int64 tensors use framework storage where representable. The corresponding opset-13 backend vector is execution-identical on this package surface."
}
},
{
"name": "onnx_backend_split_variable_parts_2d_opset18",
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 6],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0] }
},
"split": { "dtype": "uint32", "shape": [2], "data": { "kind": "values", "values": [2, 4] } }
},
"outputs": { "y0": { "dtype": "float32", "shape": [2, 2] }, "y1": { "dtype": "float32", "shape": [2, 4] } },
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_split_variable_parts_2d_opset18",
"notes": "ONNX int64 tensors use framework storage where representable. The corresponding opset-13 backend vector is execution-identical on this package surface."
}
},
{
"name": "onnx_backend_split_variable_parts_default_axis_opset18",
"inputs": {
"input": {
"dtype": "float32",
"shape": [6],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] }
},
"split": { "dtype": "uint32", "shape": [2], "data": { "kind": "values", "values": [2, 4] } }
},
"outputs": { "y0": { "dtype": "float32", "shape": [2] }, "y1": { "dtype": "float32", "shape": [4] } },
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_split_variable_parts_default_axis_opset18",
"notes": "ONNX int64 tensors use framework storage where representable. The corresponding opset-13 backend vector is execution-identical on this package surface."
}
},
{
"name": "onnx_backend_split_zero_size_splits_opset18",
"inputs": {
"input": { "dtype": "float32", "shape": [0], "data": { "kind": "values", "values": [] } },
"split": { "dtype": "uint32", "shape": [3], "data": { "kind": "values", "values": [0, 0, 0] } }
},
"outputs": {
"y0": { "dtype": "float32", "shape": [0] },
"y1": { "dtype": "float32", "shape": [0] },
"y2": { "dtype": "float32", "shape": [0] }
},
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_split_zero_size_splits_opset18",
"notes": "ONNX int64 tensors use framework storage where representable. The corresponding opset-13 backend vector is execution-identical on this package surface."
}
},
{
"name": "ort_uint8_axis1_unequal_edge_values",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.Uint8Axis1SplitMiddleDimensionUnequally"
},
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "uint8",
"shape": [2, 6],
"data": { "kind": "values", "values": [0, 1, 2, 3, 4, 5, 250, 251, 252, 253, 254, 255] }
},
"split": { "dtype": "uint32", "shape": [2], "data": { "kind": "values", "values": [2, 4] } }
},
"outputs": {
"y0": { "dtype": "uint8", "shape": [2, 2], "tolerance": 0 },
"y1": { "dtype": "uint8", "shape": [2, 4], "tolerance": 0 }
}
},
{
"name": "ort_int8_negative_axis_equal_edge_values",
"provenance": {
"source": "onnxruntime/test/providers/cpu/tensor/split_op_test.cc",
"test": "SplitOperatorTest.NegativeAxis",
"notes": "Negative-axis equal split with logical int8 edge values."
},
"attrs": { "axis": -1 },
"inputs": {
"input": {
"dtype": "int8",
"shape": [2, 4],
"data": { "kind": "values", "values": [-128, -1, 0, 1, 2, 3, 4, 127] }
},
"split": { "dtype": "uint32", "shape": [2], "data": { "kind": "values", "values": [2, 2] } }
},
"outputs": {
"y0": { "dtype": "int8", "shape": [2, 2], "tolerance": 0 },
"y1": { "dtype": "int8", "shape": [2, 2], "tolerance": 0 }
}
},
{
"name": "rank7_middle_axis_two_outputs",
"provenance": {
"notes": "Compact correctness sibling for the rank7 middle-axis split benchmark; exercises high-rank address arithmetic with an equal two-way split on axis 2."
},
"attrs": { "axis": 2 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2, 6, 1, 1, 1, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.21 }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 2, 3, 1, 1, 1, 1], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [2, 2, 3, 1, 1, 1, 1], "tolerance": 0.000001 }
}
},
{
"name": "block_vec4_axis0_two_f32",
"attrs": { "axis": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [6, 4],
"data": { "kind": "fillFloat32", "sinStep": 0.21, "cosStep": 0.13 }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 4], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [4, 4], "tolerance": 0.000001 }
}
},
{
"name": "block_vec4_axis1_two_f32_rank3",
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 6, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.23 }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 2, 2], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [2, 4, 2], "tolerance": 0.000001 }
}
},
{
"name": "block_vec4_negative_axis_two_f32",
"attrs": { "axis": -1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2, 8],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.19 }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 2, 4], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [2, 2, 4], "tolerance": 0.000001 }
}
},
{
"name": "block_vec4_axis1_three_f16",
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [2, 8, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.21, "cosStep": 0.29 }
}
},
"outputs": {
"y0": { "dtype": "float16", "shape": [2, 2, 2], "tolerance": 0.001 },
"y1": { "dtype": "float16", "shape": [2, 4, 2], "tolerance": 0.001 },
"y2": { "dtype": "float16", "shape": [2, 2, 2], "tolerance": 0.001 }
}
},
{
"name": "block_vec4_axis0_four_u32",
"attrs": { "axis": 0 },
"inputs": {
"input": {
"dtype": "uint32",
"shape": [16, 4],
"data": { "kind": "cycle", "values": [3, 9, 1, 7, 5, 2, 11, 4, 8, 6, 0, 13] }
}
},
"outputs": {
"y0": { "dtype": "uint32", "shape": [4, 4], "tolerance": 0 },
"y1": { "dtype": "uint32", "shape": [4, 4], "tolerance": 0 },
"y2": { "dtype": "uint32", "shape": [4, 4], "tolerance": 0 },
"y3": { "dtype": "uint32", "shape": [4, 4], "tolerance": 0 }
}
},
{
"name": "block_vec4_empty_y0",
"attrs": { "axis": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [4, 4],
"data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.31 }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [0, 4], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [4, 4], "tolerance": 0.000001 }
}
},
{
"name": "ort_caseB_empty",
"attrs": { "axis": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [6],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] }
},
"split": { "dtype": "uint32", "shape": [0], "data": { "kind": "values", "values": [] } }
},
"outputs": {
"y0": {
"dtype": "float32",
"shape": [2],
"data": { "kind": "values", "values": [1.0, 2.0] },
"tolerance": 0.001
},
"y1": {
"dtype": "float32",
"shape": [4],
"data": { "kind": "values", "values": [3.0, 4.0, 5.0, 6.0] },
"tolerance": 0.001
}
}
},
{
"name": "rank7_axis2_two_outputs",
"attrs": { "axis": 2 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2, 3, 2, 1, 1, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.23 }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 2, 1, 2, 1, 1, 2], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [2, 2, 2, 2, 1, 1, 2], "tolerance": 0.000001 }
}
},
{
"name": "int32_block_vec4_axis0_two",
"attrs": { "axis": 0 },
"inputs": {
"input": {
"dtype": "int32",
"shape": [8, 4],
"data": { "kind": "cycle", "values": [3, -9, 1, 7, -5, 2, 11, -4, 8, -6, 0, 13] }
}
},
"outputs": {
"y0": { "dtype": "int32", "shape": [4, 4], "tolerance": 0 },
"y1": { "dtype": "int32", "shape": [4, 4], "tolerance": 0 }
}
},
{
"name": "scalar_fallback_unaligned_last_axis_f32",
"attrs": { "axis": -1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4, 6],
"data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.27 }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [1, 4, 2], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [1, 4, 4], "tolerance": 0.000001 }
}
},
{
"name": "scalar_three_outputs_empty_middle_offset",
"attrs": { "axis": -1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 5],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0] }
}
},
"outputs": {
"y0": {
"dtype": "float32",
"shape": [2, 3],
"tolerance": 0,
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 6.0, 7.0, 8.0] }
},
"y1": { "dtype": "float32", "shape": [2, 0], "tolerance": 0, "data": { "kind": "values", "values": [] } },
"y2": {
"dtype": "float32",
"shape": [2, 2],
"tolerance": 0,
"data": { "kind": "values", "values": [4.0, 5.0, 9.0, 10.0] }
}
}
},
{
"name": "scalar_rank7_middle_axis_divmod_correctness",
"attrs": { "axis": 2 },
"inputs": {
"input": {
"dtype": "int32",
"shape": [1, 1, 3, 3, 1, 1, 1],
"data": { "kind": "values", "values": [0, 1, 2, 3, 4, 5, 6, 7, 8] }
}
},
"outputs": {
"y0": {
"dtype": "int32",
"shape": [1, 1, 2, 3, 1, 1, 1],
"tolerance": 0,
"data": { "kind": "values", "values": [0, 1, 2, 3, 4, 5] }
},
"y1": {
"dtype": "int32",
"shape": [1, 1, 1, 3, 1, 1, 1],
"tolerance": 0,
"data": { "kind": "values", "values": [6, 7, 8] }
}
}
},
{
"name": "scalar_negative_axis_empty_leading_uint8",
"attrs": { "axis": -1 },
"inputs": {
"input": {
"dtype": "uint8",
"shape": [2, 3],
"data": { "kind": "values", "values": [0, 128, 255, 1, 127, 254] }
}
},
"outputs": {
"y0": { "dtype": "uint8", "shape": [2, 0], "tolerance": 0, "data": { "kind": "values", "values": [] } },
"y1": {
"dtype": "uint8",
"shape": [2, 3],
"tolerance": 0,
"data": { "kind": "values", "values": [0, 128, 255, 1, 127, 254] }
}
}
},
{
"name": "scalar_trailing_empty_y1_no_oob",
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 3],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] }
}
},
"outputs": {
"y0": {
"dtype": "float32",
"shape": [2, 3],
"tolerance": 0,
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] }
},
"y1": { "dtype": "float32", "shape": [2, 0], "tolerance": 0, "data": { "kind": "values", "values": [] } }
}
},
{
"name": "scalar_f16_unaligned_last_axis",
"attrs": { "axis": -1 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [2, 5],
"data": { "kind": "values", "values": [1.0, 2.0, 4.0, 8.0, 16.0, 0.5, 0.25, 0.125, -1.0, -2.0] }
}
},
"outputs": {
"y0": { "dtype": "float16", "shape": [2, 3], "tolerance": 0.001 },
"y1": { "dtype": "float16", "shape": [2, 2], "tolerance": 0.001 }
}
},
{
"name": "three_outputs_negative_axis_unequal_mod4_tails",
"provenance": {
"notes": "Compact scalar three-output lock with multiple outer rows and segment lengths 6/5/3 (mod-4 tails 2/1/3). Negative axis normalization and unequal source offsets expose cross-segment or row-boundary corruption in the x4-coarsened path."
},
"attrs": { "axis": -1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 3, 14],
"data": { "kind": "linspace", "start": -42.0, "end": 41.0 }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 3, 6], "tolerance": 0 },
"y1": { "dtype": "float32", "shape": [2, 3, 5], "tolerance": 0 },
"y2": { "dtype": "float32", "shape": [2, 3, 3], "tolerance": 0 }
}
},
{
"name": "rank8_middle_axis_two_outputs",
"attrs": { "axis": 2 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2, 6, 1, 1, 1, 1, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.21 }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 2, 3, 1, 1, 1, 1, 2], "tolerance": 0.000001 },
"y1": { "dtype": "float32", "shape": [2, 2, 3, 1, 1, 1, 1, 2], "tolerance": 0.000001 }
}
},
{
"name": "block_scalar_x4_three_outputs_y2_dominant_groups",
"provenance": {
"notes": "Three-output block split whose runs are 2/3/6 scalars — none a multiple of 4 — so the vec4 block variant is ineligible and the scalar-bound-x4 block variant renders. Y2 needs two four-scalar groups per outer row while Y0/Y1 need one each, so the third output's group count is the strict maximum and it, not Y0/Y1, sets the loop bound. Plain ONNX Split semantics: axis=1 with split=[2,3,6] summing to the axis dim 11."
},
"attrs": { "axis": 1 },
"inputs": {
"input": { "dtype": "float32", "shape": [3, 11], "data": { "kind": "linspace", "start": -16.0, "end": 16.0 } }
},
"outputs": {
"y0": { "dtype": "float32", "shape": [3, 2], "tolerance": 0 },
"y1": { "dtype": "float32", "shape": [3, 3], "tolerance": 0 },
"y2": { "dtype": "float32", "shape": [3, 6], "tolerance": 0 }
}
},
{
"name": "block_vec4_three_outputs_y2_dominant_count",
"provenance": {
"notes": "Three-output vec4 block split where the last chunk is the largest: runs 2/2/4 rows of inner 2 give 4/4/8 scalars, every boundary vec4-aligned, so Y2's vec4 run is twice Y0's and Y1's. That makes the third output's element count the strict maximum, the regime where the loop bound comes from Y2 rather than from the first two outputs. Plain ONNX Split semantics: axis=1 with split=[2,2,4] summing to the axis dim 8."
},
"attrs": { "axis": 1 },
"inputs": {
"input": { "dtype": "float32", "shape": [2, 8, 2], "data": { "kind": "linspace", "start": -15.5, "end": 15.5 } }
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 2, 2], "tolerance": 0 },
"y1": { "dtype": "float32", "shape": [2, 2, 2], "tolerance": 0 },
"y2": { "dtype": "float32", "shape": [2, 4, 2], "tolerance": 0 }
}
},
{
"name": "block_vec4_four_outputs_axis1_y3_dominant_count",
"provenance": {
"notes": "Four-output vec4 block split on a middle axis with strictly growing chunks 2/2/4/6 (rows of inner 2, so 4/4/8/12 scalars, all vec4-aligned). The only four-output vec4 fixture until now split axis 0 into four equal chunks, so nothing exercised a non-zero axis (outer slices > 1 with a per-output row stride) nor a last output whose element count is the strict maximum over all four. Plain ONNX Split semantics: axis=1 with split=[2,2,4,6] summing to the axis dim 14."
},
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 14, 2],
"data": { "kind": "linspace", "start": -27.5, "end": 27.5 }
}
},
"outputs": {
"y0": { "dtype": "float32", "shape": [2, 2, 2], "tolerance": 0 },
"y1": { "dtype": "float32", "shape": [2, 2, 2], "tolerance": 0 },
"y2": { "dtype": "float32", "shape": [2, 4, 2], "tolerance": 0 },
"y3": { "dtype": "float32", "shape": [2, 6, 2], "tolerance": 0 }
}
},
{
"name": "block_vec4_four_outputs_empty_y3",
"provenance": {
"notes": "Four-output vec4 block split whose last chunk is empty (split=[4,4,4,0]): ONNX allows a zero-length entry in `split` as long as the entries are non-negative and sum to the axis dim, and the matching empty output must still be produced. The existing empty-chunk vec4 fixture empties Y0 in a two-output split, so no fixture ever gave the four-output block path a zero-length final run — the case where the fourth copy must be elided entirely instead of reading past the input. Values are a 13-long cycle over 12-wide rows so no repeat aligns with a row or chunk boundary."
},
"attrs": { "axis": 1 },
"inputs": {
"input": {
"dtype": "uint32",
"shape": [2, 12],
"data": { "kind": "cycle", "values": [3, 9, 1, 7, 5, 2, 11, 4, 8, 6, 0, 13, 12] }
}
},
"outputs": {
"y0": { "dtype": "uint32", "shape": [2, 4], "tolerance": 0 },
"y1": { "dtype": "uint32", "shape": [2, 4], "tolerance": 0 },
"y2": { "dtype": "uint32", "shape": [2, 4], "tolerance": 0 },
"y3": { "dtype": "uint32", "shape": [2, 0], "tolerance": 0 }
}
}
]
}