[INFO] fetching crate tract-nnef 0.14.1... [INFO] testing tract-nnef-0.14.1 against master#99e3aef02079e9c10583638520cd0c134dc3a01d for pr-85530 [INFO] extracting crate tract-nnef 0.14.1 into /workspace/builds/worker-5/source [INFO] validating manifest of crates.io crate tract-nnef 0.14.1 on toolchain 99e3aef02079e9c10583638520cd0c134dc3a01d [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+99e3aef02079e9c10583638520cd0c134dc3a01d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate tract-nnef 0.14.1 [INFO] finished tweaking crates.io crate tract-nnef 0.14.1 [INFO] tweaked toml for crates.io crate tract-nnef 0.14.1 written to /workspace/builds/worker-5/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+99e3aef02079e9c10583638520cd0c134dc3a01d" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+99e3aef02079e9c10583638520cd0c134dc3a01d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+99e3aef02079e9c10583638520cd0c134dc3a01d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] bd73a647c01c4301ed6c3023bc81c304b67536c7379970879079a091764a964c [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "bd73a647c01c4301ed6c3023bc81c304b67536c7379970879079a091764a964c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "bd73a647c01c4301ed6c3023bc81c304b67536c7379970879079a091764a964c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bd73a647c01c4301ed6c3023bc81c304b67536c7379970879079a091764a964c", kill_on_drop: false }` [INFO] [stdout] bd73a647c01c4301ed6c3023bc81c304b67536c7379970879079a091764a964c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+99e3aef02079e9c10583638520cd0c134dc3a01d" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 68167aa901d9ea757b9e37550faa651e7f295e8f1ca2def7a08ea41b41faf5ec [INFO] running `Command { std: "docker" "start" "-a" "68167aa901d9ea757b9e37550faa651e7f295e8f1ca2def7a08ea41b41faf5ec", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling proc-macro2 v1.0.27 [INFO] [stderr] Compiling unicode-xid v0.2.2 [INFO] [stderr] Compiling syn v1.0.72 [INFO] [stderr] Compiling libc v0.2.95 [INFO] [stderr] Compiling proc-macro-hack v0.5.19 [INFO] [stderr] Compiling serde_derive v1.0.126 [INFO] [stderr] Compiling ucd-trie v0.1.3 [INFO] [stderr] Compiling memchr v2.4.0 [INFO] [stderr] Compiling maplit v1.0.2 [INFO] [stderr] Compiling serde v1.0.126 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Compiling anymap v0.12.1 [INFO] [stderr] Compiling doc-comment v0.3.3 [INFO] [stderr] Compiling regex-syntax v0.6.25 [INFO] [stderr] Compiling percent-encoding v2.1.0 [INFO] [stderr] Compiling tinyvec_macros v0.1.0 [INFO] [stderr] Compiling unicode-segmentation v1.7.1 [INFO] [stderr] Compiling once_cell v1.7.2 [INFO] [stderr] Compiling anyhow v1.0.40 [INFO] [stderr] Compiling smallvec v1.6.1 [INFO] [stderr] Compiling rawpointer v0.2.1 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling radium v0.5.3 [INFO] [stderr] Compiling cc v1.0.68 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling version_check v0.9.3 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling crc32fast v1.2.1 [INFO] [stderr] Compiling half v1.7.1 [INFO] [stderr] Compiling lexical-core v0.7.6 [INFO] [stderr] Compiling wyz v0.2.0 [INFO] [stderr] Compiling funty v1.1.0 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Compiling adler v1.0.2 [INFO] [stderr] Compiling tap v1.0.1 [INFO] [stderr] Compiling arrayvec v0.5.2 [INFO] [stderr] Compiling bit-vec v0.6.3 [INFO] [stderr] Compiling downcast-rs v1.2.0 [INFO] [stderr] Compiling paste v1.0.5 [INFO] [stderr] Compiling dyn-clone v1.0.4 [INFO] [stderr] Compiling byteorder v1.4.3 [INFO] [stderr] Compiling tinyvec v1.2.0 [INFO] [stderr] Compiling itertools v0.10.0 [INFO] [stderr] Compiling pest v2.1.3 [INFO] [stderr] Compiling matrixmultiply v0.3.1 [INFO] [stderr] Compiling walkdir v2.3.2 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling num-bigint v0.4.0 [INFO] [stderr] Compiling miniz_oxide v0.4.4 [INFO] [stderr] Compiling bit-set v0.5.2 [INFO] [stderr] Compiling nom v6.1.2 [INFO] [stderr] Compiling aho-corasick v0.7.18 [INFO] [stderr] Compiling pest_meta v2.1.3 [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Compiling unicode-normalization v0.1.19 [INFO] [stderr] Compiling time v0.1.44 [INFO] [stderr] Compiling filetime v0.2.14 [INFO] [stderr] Compiling xattr v0.2.2 [INFO] [stderr] Compiling bitvec v0.19.5 [INFO] [stderr] Compiling tar v0.4.35 [INFO] [stderr] Compiling flate2 v1.0.20 [INFO] [stderr] Compiling proc-quote-impl v0.3.2 [INFO] [stderr] Compiling regex v1.5.4 [INFO] [stderr] Compiling num-complex v0.4.0 [INFO] [stderr] Compiling chrono v0.4.19 [INFO] [stderr] Compiling ndarray v0.15.3 [INFO] [stderr] Compiling pest_generator v2.1.3 [INFO] [stderr] Compiling proc-quote v0.3.2 [INFO] [stderr] Compiling pest_derive v2.1.0 [INFO] [stderr] Compiling liquid-derive v0.22.0 [INFO] [stderr] Compiling enum-ordinalize v3.1.10 [INFO] [stderr] Compiling derive-new v0.5.9 [INFO] [stderr] Compiling educe v0.4.16 [INFO] [stderr] Compiling tract-data v0.14.1 [INFO] [stderr] Compiling kstring v1.0.1 [INFO] [stderr] Compiling liquid-core v0.22.0 [INFO] [stderr] Compiling liquid-lib v0.22.0 [INFO] [stderr] Compiling liquid v0.22.0 [INFO] [stderr] Compiling tract-linalg v0.14.1 [INFO] [stderr] Compiling tract-core v0.14.1 [INFO] [stderr] Compiling tract-nnef v0.14.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2m 12s [INFO] running `Command { std: "docker" "inspect" "68167aa901d9ea757b9e37550faa651e7f295e8f1ca2def7a08ea41b41faf5ec", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "68167aa901d9ea757b9e37550faa651e7f295e8f1ca2def7a08ea41b41faf5ec", kill_on_drop: false }` [INFO] [stdout] 68167aa901d9ea757b9e37550faa651e7f295e8f1ca2def7a08ea41b41faf5ec [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+99e3aef02079e9c10583638520cd0c134dc3a01d" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7ba0d101747328dcc6f9f44ed9652753466192672228fb357af71f5ecadb599a [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "7ba0d101747328dcc6f9f44ed9652753466192672228fb357af71f5ecadb599a", kill_on_drop: false }` [INFO] [stderr] Compiling tract-nnef v0.14.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 8.00s [INFO] running `Command { std: "docker" "inspect" "7ba0d101747328dcc6f9f44ed9652753466192672228fb357af71f5ecadb599a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7ba0d101747328dcc6f9f44ed9652753466192672228fb357af71f5ecadb599a", kill_on_drop: false }` [INFO] [stdout] 7ba0d101747328dcc6f9f44ed9652753466192672228fb357af71f5ecadb599a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+99e3aef02079e9c10583638520cd0c134dc3a01d" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 0d7dd596930849c7ceaac93cc2bcf22176a645d3bc5ab4195c771e7b0ae74aa1 [INFO] running `Command { std: "docker" "start" "-a" "0d7dd596930849c7ceaac93cc2bcf22176a645d3bc5ab4195c771e7b0ae74aa1", kill_on_drop: false }` [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.10s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/tract_nnef-b49e763ddf8365c9) [INFO] [stdout] [INFO] [stdout] running 28 tests [INFO] [stdout] test ast::parse::test::test_freeze ... ignored [INFO] [stdout] test ast::parse::test::test_body ... ok [INFO] [stdout] test ast::parse::test::test_fragment_decl_logarithmic_quantize ... ok [INFO] [stdout] test ast::parse::test::test_fragment_conv ... ok [INFO] [stdout] test ast::parse::test::test_comprehenion ... ok [INFO] [stdout] test ast::parse::test::test_document ... ok [INFO] [stdout] test ast::parse::test::test_arguments ... ok [INFO] [stdout] test ast::parse::test::test_fragment_decl_fizz ... ok [INFO] [stdout] test ast::parse::test::test_batch_normalization ... ok [INFO] [stdout] test ast::parse::test::test_lvalue ... ok [INFO] [stdout] test ast::parse::test::test_spaced ... ok [INFO] [stdout] test ast::parse::test::test_version ... ok [INFO] [stdout] test ast::parse::test::test_numeric ... ok [INFO] [stdout] test ast::parse::test::test_type_spec ... ok [INFO] [stdout] test ast::parse::test::test_fragments ... ok [INFO] [stdout] test ast::parse::test::test_graph_def ... ok [INFO] [stdout] test ast::parse::test::test_identifier ... ok [INFO] [stdout] test ast::parse::test::test_invocation ... ok [INFO] [stdout] test ast::parse::test::test_fragment_decl_external ... ok [INFO] [stdout] test ast::parse::test::test_fragment_reshape ... ok [INFO] [stdout] test tensors::test::header_is_128_bytes ... ok [INFO] [stdout] test ast::parse::test::test_fragment_local_response_normalization ... ok [INFO] [stdout] test ast::parse::test::test_spacing ... ok [INFO] [stdout] test ast::parse::test::test_string ... ok [INFO] [stdout] test ast::parse::test::test_avg_roi_align ... ok [INFO] [stdout] test ast::parse::test::test_rvalue ... ok [INFO] [stdout] test ast::parse::test::test_min_max_linear_quantize ... ok [INFO] [stdout] test ast::parse::test::test_assignment ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 27 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.12s [INFO] [stdout] [INFO] [stderr] Running tests/parse.rs (/opt/rustwide/target/debug/deps/parse-3e33f9136ac9ecf7) [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test parse_stdlib ... ok [INFO] [stdout] test parse_alexnet ... ok [INFO] [stdout] test parse_dump_parse_alexnet ... ok [INFO] [stdout] test parse_dump_parse_stdlib ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- parse_dump_parse_stdlib stdout ---- [INFO] [stdout] fragment abs( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment add( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment add_n( [INFO] [stdout] x: tensor[] [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = (x[0] + add_n(x[1:])) if (length_of(x) > 0) else constant(shape = [1], value = [0.0]); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment all_reduce( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment and( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment any_reduce( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment area_downsample( [INFO] [stdout] input: tensor, [INFO] [stdout] factor: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] dims = (2 + length_of(factor)); [INFO] [stdout] output = box(input, size = ([1, 1] + factor), stride = ([1, 1] + factor), padding = ([(0, 0)] * dims), normalize = true); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment argmax_pool( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [] [INFO] [stdout] ) -> (index: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment argmax_reduce( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment argmin_reduce( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment avg_pool( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] output = box(input, size = size, border = border, padding = padding, stride = stride, dilation = dilation, normalize = true); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment avg_roi_align( [INFO] [stdout] input: tensor, [INFO] [stdout] rois: tensor, [INFO] [stdout] batch_index: tensor, [INFO] [stdout] output_size: integer[], [INFO] [stdout] sampling_rate: integer[], [INFO] [stdout] resize_method: string = "symmetric" [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] size = [ fori in range_of(output_size) yield (output_size[i] * sampling_rate[i])]; [INFO] [stdout] resized = roi_resample(input, rois, batch_index, output_size = size, method = resize_method); [INFO] [stdout] output = avg_pool(resized, size = sampling_rate, stride = sampling_rate); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment avg_roi_pool( [INFO] [stdout] input: tensor, [INFO] [stdout] rois: tensor, [INFO] [stdout] batch_index: tensor, [INFO] [stdout] output_size: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment batch_normalization( [INFO] [stdout] input: tensor, [INFO] [stdout] mean: tensor, [INFO] [stdout] variance: tensor, [INFO] [stdout] offset: tensor, [INFO] [stdout] scale: tensor, [INFO] [stdout] epsilon: scalar [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] output = (offset + ((scale * (input - mean)) / sqrt((variance + epsilon)))); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment box( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [], [INFO] [stdout] normalize: logical = false [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment ceil( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment clamp( [INFO] [stdout] x: tensor, [INFO] [stdout] a: tensor, [INFO] [stdout] b: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = max(min(x, b), a); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment concat( [INFO] [stdout] values: tensor[], [INFO] [stdout] axis: integer [INFO] [stdout] ) -> (value: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment constant( [INFO] [stdout] shape: integer[], [INFO] [stdout] value: ?[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment conv( [INFO] [stdout] input: tensor, [INFO] [stdout] filter: tensor, [INFO] [stdout] bias: tensor = 0.0, [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [], [INFO] [stdout] groups: integer = 1 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment copy( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment copy_n( [INFO] [stdout] x: tensor, [INFO] [stdout] times: integer [INFO] [stdout] ) -> (y: tensor[]) [INFO] [stdout] { [INFO] [stdout] y = ([x] * times); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment cos( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment debox( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [], [INFO] [stdout] output_shape: integer[] = [], [INFO] [stdout] normalize: logical = false [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment deconv( [INFO] [stdout] input: tensor, [INFO] [stdout] filter: tensor, [INFO] [stdout] bias: tensor = 0.0, [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [], [INFO] [stdout] output_shape: integer[] = [], [INFO] [stdout] groups: integer = 1 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment desample( [INFO] [stdout] input: tensor, [INFO] [stdout] index: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [], [INFO] [stdout] output_shape: integer[] = [] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment div( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment elu( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = select((x < 0.0), (exp(x) - 1.0), x); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment eq( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment exp( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment external( [INFO] [stdout] shape: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment floor( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment ge( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment gt( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment l1_normalization( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[], [INFO] [stdout] bias: scalar = 0.0, [INFO] [stdout] epsilon: scalar = 0.0 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] sigma = sum_reduce(abs(input), axes = axes); [INFO] [stdout] output = (input / max((sigma + bias), epsilon)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment l2_normalization( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[], [INFO] [stdout] bias: scalar = 0.0, [INFO] [stdout] epsilon: scalar = 0.0 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] sigma = sqrt(sum_reduce(sqr(input), axes = axes)); [INFO] [stdout] output = (input / max((sigma + bias), epsilon)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment le( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment leaky_relu( [INFO] [stdout] x: tensor, [INFO] [stdout] alpha: scalar [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = prelu(x, alpha = alpha); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment linear( [INFO] [stdout] input: tensor, [INFO] [stdout] filter: tensor, [INFO] [stdout] bias: tensor = 0.0 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] output = (matmul(input, filter, transposeB = true) + bias); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment linear_quantize( [INFO] [stdout] x: tensor, [INFO] [stdout] min: tensor, [INFO] [stdout] max: tensor, [INFO] [stdout] bits: integer [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = min_max_linear_quantize(x, min = min, max = max, bits = bits, signed = false, symmetric = false); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment local_contrast_normalization( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] bias: scalar = 0.0, [INFO] [stdout] epsilon: scalar = 0.0 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] centered = local_mean_normalization(input, size = size); [INFO] [stdout] output = local_variance_normalization(centered, size = size, bias = bias, epsilon = epsilon); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment local_mean_normalization( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] mean = box(input, size = size, normalize = true); [INFO] [stdout] output = sub(input, mean); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment local_response_normalization( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] alpha: scalar = 1.0, [INFO] [stdout] beta: scalar = 0.5, [INFO] [stdout] bias: scalar = 1.0 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] sigma = (bias + (alpha * box(sqr(input), size = size, normalize = true))); [INFO] [stdout] output = (input / (sigma ^ beta)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment local_variance_normalization( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] bias: scalar = 0.0, [INFO] [stdout] epsilon: scalar = 0.0 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] sigma = sqrt(box(sqr(input), size = size, normalize = true)); [INFO] [stdout] output = (input / max((sigma + bias), epsilon)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment log( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment log2( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = (log(x) / log(2.0)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment logarithmic_quantize( [INFO] [stdout] x: tensor, [INFO] [stdout] max: tensor, [INFO] [stdout] bits: integer [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] m = ceil(log2(max)); [INFO] [stdout] r = scalar(((2 ^ bits) - 1)); [INFO] [stdout] q = round(clamp(log2(abs(x)), (m - r), m)); [INFO] [stdout] y = (sign(x) * (2.0 ^ q)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment lt( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment matmul( [INFO] [stdout] A: tensor, [INFO] [stdout] B: tensor, [INFO] [stdout] transposeA: logical = false, [INFO] [stdout] transposeB: logical = false [INFO] [stdout] ) -> (C: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment max( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] { [INFO] [stdout] z = select((x > y), x, y); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment max_pool( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] ( output, index ) = max_pool_with_index(input, size = size, border = border, padding = padding, stride = stride, dilation = dilation); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment max_pool_with_index( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [] [INFO] [stdout] ) -> (output: tensor, index: tensor) [INFO] [stdout] { [INFO] [stdout] index = argmax_pool(input, size = size, border = border, padding = padding, stride = stride, dilation = dilation); [INFO] [stdout] output = sample(input, index, size = size, border = border, padding = padding, stride = stride, dilation = dilation); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment max_reduce( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment max_roi_align( [INFO] [stdout] input: tensor, [INFO] [stdout] rois: tensor, [INFO] [stdout] batch_index: tensor, [INFO] [stdout] output_size: integer[], [INFO] [stdout] sampling_rate: integer[], [INFO] [stdout] resize_method: string = "symmetric" [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] size = [ fori in range_of(output_size) yield (output_size[i] * sampling_rate[i])]; [INFO] [stdout] resized = roi_resample(input, rois, batch_index, output_size = size, method = resize_method); [INFO] [stdout] output = max_pool(resized, size = sampling_rate, stride = sampling_rate); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment max_roi_pool( [INFO] [stdout] input: tensor, [INFO] [stdout] rois: tensor, [INFO] [stdout] batch_index: tensor, [INFO] [stdout] output_size: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment mean_reduce( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] output = sum_reduce(input, axes = axes, normalize = true); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment min( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] { [INFO] [stdout] z = select((x < y), x, y); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment min_max_linear_quantize( [INFO] [stdout] x: tensor, [INFO] [stdout] min: tensor, [INFO] [stdout] max: tensor, [INFO] [stdout] bits: integer, [INFO] [stdout] signed: logical, [INFO] [stdout] symmetric: logical [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] r = scalar((((2 ^ bits) - 1) - integer((signed && symmetric)))); [INFO] [stdout] z = clamp(x, min, max); [INFO] [stdout] p = scalar(((2 ^ (bits - 1)) - integer(symmetric)) if signed else 0); [INFO] [stdout] q = (round((((z - min) / (max - min)) * r)) - p); [INFO] [stdout] y = ((((q + p) / r) * (max - min)) + min); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment min_reduce( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment moments( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (mean: tensor, variance: tensor) [INFO] [stdout] { [INFO] [stdout] mean = mean_reduce(input, axes = axes); [INFO] [stdout] variance = mean_reduce(sqr((input - mean)), axes = axes); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment mul( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment multilinear_upsample( [INFO] [stdout] input: tensor, [INFO] [stdout] factor: integer[], [INFO] [stdout] method: string = "symmetric", [INFO] [stdout] border: string = "replicate" [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment ne( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment nearest_downsample( [INFO] [stdout] input: tensor, [INFO] [stdout] factor: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] dims = (2 + length_of(factor)); [INFO] [stdout] output = box(input, size = ([1] * dims), stride = ([1, 1] + factor), padding = ([(0, 0)] * dims)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment nearest_upsample( [INFO] [stdout] input: tensor, [INFO] [stdout] factor: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] dims = (2 + length_of(factor)); [INFO] [stdout] output = debox(input, size = ([1, 1] + factor), stride = ([1, 1] + factor), padding = ([(0, 0)] * dims)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment neg( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment not( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment or( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment pad( [INFO] [stdout] input: tensor, [INFO] [stdout] padding: (integer, integer)[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] value: scalar = 0.0 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment pow( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment prelu( [INFO] [stdout] x: tensor, [INFO] [stdout] alpha: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = select((x < 0.0), (alpha * x), x); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment rcp( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment relu( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = max(x, 0.0); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment reshape( [INFO] [stdout] input: tensor, [INFO] [stdout] shape: integer[], [INFO] [stdout] axis_start: integer = 0, [INFO] [stdout] axis_count: integer = -1 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment rms_pool( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] output = sqrt(avg_pool(sqr(input), size = size, border = border, padding = padding, stride = stride, dilation = dilation)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment roi_resample( [INFO] [stdout] input: tensor, [INFO] [stdout] rois: tensor, [INFO] [stdout] batch_index: tensor, [INFO] [stdout] output_size: integer[], [INFO] [stdout] method: string = "symmetric" [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment round( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment rsqr( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = (x ^ -2.0); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment rsqrt( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = (x ^ -0.5); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment sample( [INFO] [stdout] input: tensor, [INFO] [stdout] index: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment select( [INFO] [stdout] condition: tensor, [INFO] [stdout] true_value: tensor, [INFO] [stdout] false_value: tensor [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment separable_conv( [INFO] [stdout] input: tensor, [INFO] [stdout] plane_filter: tensor, [INFO] [stdout] point_filter: tensor, [INFO] [stdout] bias: tensor = 0.0, [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [], [INFO] [stdout] groups: integer = 1 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] filtered = conv(input, plane_filter, border = border, padding = padding, stride = stride, dilation = dilation, groups = 0); [INFO] [stdout] output = conv(filtered, point_filter, bias, groups = groups); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment separable_deconv( [INFO] [stdout] input: tensor, [INFO] [stdout] plane_filter: tensor, [INFO] [stdout] point_filter: tensor, [INFO] [stdout] bias: tensor = 0.0, [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [], [INFO] [stdout] output_shape: integer[] = [], [INFO] [stdout] groups: integer = 1 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] filtered = deconv(input, point_filter, groups = groups); [INFO] [stdout] output = deconv(filtered, plane_filter, bias, border = border, padding = padding, stride = stride, dilation = dilation, output_shape = output_shape, groups = 0); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment sigmoid( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = (1.0 / (1.0 + exp(-x))); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment sign( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment sin( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment slice( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[], [INFO] [stdout] begin: integer[], [INFO] [stdout] end: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment softabs( [INFO] [stdout] x: tensor, [INFO] [stdout] epsilon: scalar [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = sqrt((sqr(x) + epsilon)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment softmax( [INFO] [stdout] x: tensor, [INFO] [stdout] axes: integer[] = [1] [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] m = max_reduce(x, axes = axes); [INFO] [stdout] e = exp((x - m)); [INFO] [stdout] y = (e / sum_reduce(e, axes = axes)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment softplus( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = log((exp(x) + 1.0)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment split( [INFO] [stdout] value: tensor, [INFO] [stdout] axis: integer, [INFO] [stdout] ratios: integer[] [INFO] [stdout] ) -> (values: tensor[]) [INFO] [stdout] ; [INFO] [stdout] fragment sqr( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = (x ^ 2.0); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment sqrt( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = (x ^ 0.5); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment squeeze( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment stack( [INFO] [stdout] values: tensor[], [INFO] [stdout] axis: integer [INFO] [stdout] ) -> (value: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment sub( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment sum_reduce( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[], [INFO] [stdout] normalize: logical = false [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment tanh( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = ((exp(x) - exp(-x)) / (exp(x) + exp(-x))); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment tile( [INFO] [stdout] input: tensor, [INFO] [stdout] repeats: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment transpose( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment unsqueeze( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment unstack( [INFO] [stdout] value: tensor, [INFO] [stdout] axis: integer [INFO] [stdout] ) -> (values: tensor[]) [INFO] [stdout] ; [INFO] [stdout] fragment update( [INFO] [stdout] variable: tensor, [INFO] [stdout] value: tensor [INFO] [stdout] ) -> (result: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment variable( [INFO] [stdout] shape: integer[], [INFO] [stdout] label: string [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment zero_point_linear_quantize( [INFO] [stdout] x: tensor, [INFO] [stdout] zero_point: integer, [INFO] [stdout] scale: scalar, [INFO] [stdout] bits: integer, [INFO] [stdout] signed: logical, [INFO] [stdout] symmetric: logical [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] z = (round((x / scale)) + scalar(zero_point)); [INFO] [stdout] r = scalar(((2 ^ (bits - 1)) - 1) if signed else ((2 ^ bits) - 1)); [INFO] [stdout] q = clamp(z, 0.0 if !signed else -r if symmetric else -(r - 1.0), r); [INFO] [stdout] y = ((q - scalar(zero_point)) * scale); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] thread 'parse_dump_parse_stdlib' panicked at 'assertion failed: `(left == right)` [INFO] [stdout] left: `FragmentDef { decl: FragmentDecl { id: "external", generic_decl: Some(Some(Scalar)), parameters: [Parameter { id: "shape", spec: Array(Single(Integer)), lit: None }], results: [Result_ { id: "output", spec: Tensor(Any) }] }, body: None }`, [INFO] [stdout] right: `FragmentDef { decl: FragmentDecl { id: "abs", generic_decl: None, parameters: [Parameter { id: "x", spec: Tensor(Scalar), lit: None }], results: [Result_ { id: "y", spec: Tensor(Scalar) }] }, body: None }`', tests/parse.rs:42:9 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x561435ff4820 - std::backtrace_rs::backtrace::libunwind::trace::h1037ca7e6eeef65c [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5 [INFO] [stdout] 1: 0x561435ff4820 - std::backtrace_rs::backtrace::trace_unsynchronized::haaefac1bc3669450 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 [INFO] [stdout] 2: 0x561435ff4820 - std::sys_common::backtrace::_print_fmt::h863a6f5e6d995885 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/sys_common/backtrace.rs:67:5 [INFO] [stdout] 3: 0x561435ff4820 - ::fmt::h767e17e1aa7df6a8 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/sys_common/backtrace.rs:46:22 [INFO] [stdout] 4: 0x56143601717c - core::fmt::write::h7aa6cd0067dca82a [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/core/src/fmt/mod.rs:1110:17 [INFO] [stdout] 5: 0x561435ff1765 - std::io::Write::write_fmt::h6f1a9b91376a1376 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/io/mod.rs:1584:15 [INFO] [stdout] 6: 0x561435ff698b - std::sys_common::backtrace::_print::h2769edb26a7eb606 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/sys_common/backtrace.rs:49:5 [INFO] [stdout] 7: 0x561435ff698b - std::sys_common::backtrace::print::ha71f3549862b4cb6 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/sys_common/backtrace.rs:36:9 [INFO] [stdout] 8: 0x561435ff698b - std::panicking::default_hook::{{closure}}::h95488a3bade217f6 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/panicking.rs:208:50 [INFO] [stdout] 9: 0x561435ff649c - std::panicking::default_hook::h290aa602c0fb11df [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/panicking.rs:222:9 [INFO] [stdout] 10: 0x561435ff7031 - std::panicking::rust_panic_with_hook::hf32c4fa635e215f2 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/panicking.rs:622:17 [INFO] [stdout] 11: 0x561435ff6b37 - std::panicking::begin_panic_handler::{{closure}}::h95197ccd88846f7a [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/panicking.rs:519:13 [INFO] [stdout] 12: 0x561435ff4cfc - std::sys_common::backtrace::__rust_end_short_backtrace::h7641df9566f7b7d0 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/sys_common/backtrace.rs:141:18 [INFO] [stdout] 13: 0x561435ff6a99 - rust_begin_unwind [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/panicking.rs:515:5 [INFO] [stdout] 14: 0x561435eed531 - core::panicking::panic_fmt::hbe99dddd3092ba3c [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/core/src/panicking.rs:92:14 [INFO] [stdout] 15: 0x561436015a98 - core::panicking::assert_failed_inner::h4fdb1013d187f202 [INFO] [stdout] 16: 0x561435ef267a - core::panicking::assert_failed::heb808d896b70285f [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/core/src/panicking.rs:117:5 [INFO] [stdout] 17: 0x561435ef6852 - parse::parse_dump_parse_stdlib::h749dfda8deb229c6 [INFO] [stdout] at /opt/rustwide/workdir/tests/parse.rs:42:9 [INFO] [stdout] 18: 0x561435ef614a - parse::parse_dump_parse_stdlib::{{closure}}::h03b90e51a78f2f94 [INFO] [stdout] at /opt/rustwide/workdir/tests/parse.rs:30:1 [INFO] [stdout] 19: 0x561435ef594e - core::ops::function::FnOnce::call_once::hf1eb580bd24832ee [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 20: 0x561435f1d233 - core::ops::function::FnOnce::call_once::h673fbe3f96486fd2 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 21: 0x561435f1d233 - test::__rust_begin_short_backtrace::h8eedc24e104ef6a0 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/test/src/lib.rs:577:5 [INFO] [stdout] 22: 0x561435f1bce0 - as core::ops::function::FnOnce>::call_once::h028d0969d3f94d78 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/alloc/src/boxed.rs:1575:9 [INFO] [stdout] 23: 0x561435f1bce0 - as core::ops::function::FnOnce<()>>::call_once::h7634b01590b1722b [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/panic.rs:346:9 [INFO] [stdout] 24: 0x561435f1bce0 - std::panicking::try::do_call::hf74f869706dec63b [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/panicking.rs:401:40 [INFO] [stdout] 25: 0x561435f1bce0 - std::panicking::try::hd0b7346ebfaaae44 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/panicking.rs:365:19 [INFO] [stdout] 26: 0x561435f1bce0 - std::panic::catch_unwind::hdbf6904f7c253080 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/panic.rs:433:14 [INFO] [stdout] 27: 0x561435f1bce0 - test::run_test_in_process::h87e95a014ac91067 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/test/src/lib.rs:600:18 [INFO] [stdout] 28: 0x561435f1bce0 - test::run_test::run_test_inner::{{closure}}::hdd69ae44aaab3470 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/test/src/lib.rs:492:39 [INFO] [stdout] 29: 0x561435ef6fb2 - test::run_test::run_test_inner::{{closure}}::hc159305704d5b68a [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/test/src/lib.rs:519:37 [INFO] [stdout] 30: 0x561435ef6fb2 - std::sys_common::backtrace::__rust_begin_short_backtrace::h33d8a8ad5f788fcc [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/sys_common/backtrace.rs:125:18 [INFO] [stdout] 31: 0x561435efad28 - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::h6181011ddf4b8353 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/thread/mod.rs:481:17 [INFO] [stdout] 32: 0x561435efad28 - as core::ops::function::FnOnce<()>>::call_once::hf924ea0a0f25a1c0 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/panic.rs:346:9 [INFO] [stdout] 33: 0x561435efad28 - std::panicking::try::do_call::hd58061792d05fa5c [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/panicking.rs:401:40 [INFO] [stdout] 34: 0x561435efad28 - std::panicking::try::h3080747417e5af37 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/panicking.rs:365:19 [INFO] [stdout] 35: 0x561435efad28 - std::panic::catch_unwind::hfeba515dcf36cb66 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/panic.rs:433:14 [INFO] [stdout] 36: 0x561435efad28 - std::thread::Builder::spawn_unchecked::{{closure}}::h29d57a62faff749b [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/thread/mod.rs:480:30 [INFO] [stdout] 37: 0x561435efad28 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h44709d312d2a9c59 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 38: 0x561435ffbae7 - as core::ops::function::FnOnce>::call_once::h902e2cf6655e1b0c [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/alloc/src/boxed.rs:1575:9 [INFO] [stdout] 39: 0x561435ffbae7 - as core::ops::function::FnOnce>::call_once::h893a5452154309d1 [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/alloc/src/boxed.rs:1575:9 [INFO] [stdout] 40: 0x561435ffbae7 - std::sys::unix::thread::Thread::new::thread_start::hdedcb57c96ab37cd [INFO] [stdout] at /rustc/99e3aef02079e9c10583638520cd0c134dc3a01d/library/std/src/sys/unix/thread.rs:71:17 [INFO] [stdout] 41: 0x7f2ebf041609 - start_thread [INFO] [stdout] 42: 0x7f2ebee13293 - clone [INFO] [stdout] 43: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] parse_dump_parse_stdlib [INFO] [stdout] [INFO] [stdout] test result: FAILED. 3 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.31s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass '--test parse' [INFO] running `Command { std: "docker" "inspect" "0d7dd596930849c7ceaac93cc2bcf22176a645d3bc5ab4195c771e7b0ae74aa1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0d7dd596930849c7ceaac93cc2bcf22176a645d3bc5ab4195c771e7b0ae74aa1", kill_on_drop: false }` [INFO] [stdout] 0d7dd596930849c7ceaac93cc2bcf22176a645d3bc5ab4195c771e7b0ae74aa1