Coverage Report

Created: 2021-03-22 08:29

/src/wasm-tools/crates/wasm-smith/src/code_builder.rs
Line
Count
Source (jump to first uncovered line)
1
use super::{
2
    BlockType, Config, ConfiguredModule, Elements, FuncType, Instruction, MemArg, ValType,
3
};
4
use arbitrary::{Result, Unstructured};
5
use std::collections::{BTreeMap, BTreeSet};
6
7
macro_rules! instructions {
8
  (
9
        $(
10
            ($predicate:expr, $generator_fn:ident),
11
        )*
12
    ) => {
13
        static NUM_OPTIONS: usize = instructions!(
14
            @count;
15
            $( $generator_fn )*
16
        );
17
18
        fn gather_options<C>(
19
            module: &ConfiguredModule<C>,
20
            builder: &mut CodeBuilder<C>,
21
        )
22
        where
23
            C: Config
24
        {
25
15.9M
            builder.allocs.options.clear();
26
27
            // Unroll the loop that checks whether each instruction is valid in
28
            // the current context and, if it is valid, pushes it onto our
29
            // options. Unrolling this loops lets us avoid dynamic calls through
30
            // function pointers and, furthermore, each call site can be branch
31
            // predicted and even inlined. This saved us about 30% of time in
32
            // the `corpus` benchmark.
33
            $(
34
15.9M
                let predicate: Option<fn(&ConfiguredModule<C>, &mut CodeBuilder<C>) -> bool> = $predicate;
35
3.06G
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#184}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#164}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#145}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#23}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#120}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#185}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#86}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#100}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#11}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#160}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#121}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#90}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#42}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#60}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#111}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#155}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#163}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#151}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#126}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#180}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#87}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#22}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#95}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#57}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#148}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#109}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#7}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#46}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#105}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#84}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#139}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#37}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#135}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#156}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#54}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#27}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#142}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#40}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#33}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#81}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#196}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#35}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#101}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#83}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#20}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#98}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#141}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#192}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#39}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#38}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#123}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#21}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#136}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#183}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#61}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#94}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#18}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#74}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#77}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#14}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#85}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#34}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#176}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#137}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#181}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#32}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#167}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#55}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#179}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#89}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#10}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#69}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#31}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#13}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#147}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#9}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#129}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#165}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#193}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#197}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#53}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#76}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#17}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#173}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#172}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#168}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#24}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#67}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#119}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#170}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#131}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#75}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#106}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#15}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#171}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#134}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#144}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#198}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#174}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#63}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#16}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#157}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#110}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#8}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#154}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#115}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#182}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#161}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#41}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#140}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#104}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#56}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#91}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#138}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#99}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#36}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#159}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#26}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#72}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#149}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#47}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#102}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#64}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#146}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#189}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#199}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#125}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#71}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#62}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#82}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#45}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#78}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#122}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#150}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#48}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#130}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#108}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#186}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#143}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#190}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#97}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#66}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#28}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#195}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#4}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#73}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#58}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#19}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#152}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#166}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#191}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#44}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#117}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#113}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#70}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#59}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#92}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#177}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#178}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#88}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#68}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#93}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#30}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#128}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#132}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#153}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#79}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#96}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#133}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#118}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#43}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#175}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#187}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#6}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#162}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#194}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#29}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#169}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#127}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#25}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#107}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#5}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#80}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#158}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#116}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#103}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#65}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#124}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#188}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#112}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#114}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>::{closure#12}
Line
Count
Source
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#113}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#19}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#4}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#56}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#99}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#111}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#134}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#123}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#82}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#71}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#152}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#199}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#187}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#160}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#106}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#77}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#184}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#112}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#101}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#43}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#23}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#159}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#197}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#138}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#157}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#150}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#177}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#162}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#44}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#105}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#180}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#21}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#183}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#148}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#102}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#129}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#24}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#33}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#79}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#154}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#48}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#128}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#166}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#178}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#193}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#196}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#161}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#37}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#114}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#190}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#126}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#11}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#68}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#173}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#185}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#61}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#28}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#40}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#121}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#144}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#171}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#47}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#64}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#168}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#15}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#75}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#189}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#39}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#73}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#81}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#119}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#85}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#25}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#30}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#192}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#65}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#57}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#149}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#131}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#63}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#10}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#167}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#146}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#70}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#91}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#191}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#5}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#94}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#164}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#141}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#109}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#8}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#89}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#139}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#53}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#20}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#145}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#72}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#130}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#165}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#84}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#59}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#169}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#98}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#110}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#87}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#117}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#122}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#108}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#158}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#135}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#147}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#175}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#103}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#83}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#95}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#22}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#14}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#107}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#26}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#29}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#86}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#118}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#153}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#156}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#194}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#182}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#38}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#27}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#66}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#174}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#96}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#45}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#18}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#198}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#181}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#42}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#16}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#172}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#17}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#179}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#120}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#34}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#124}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#127}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#46}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#55}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#35}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#170}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#74}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#58}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#176}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#41}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#188}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#195}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#69}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#6}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#12}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#125}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#67}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#142}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#36}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#90}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#13}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#137}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#31}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#54}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#143}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#62}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#97}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#155}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#140}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#115}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#60}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#76}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#88}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#80}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#100}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#132}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#133}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#32}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#9}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#136}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#92}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#186}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#104}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#116}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#7}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#93}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#78}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#151}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>::{closure#163}
Line
Count
Source
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
36
450M
                    builder.allocs.options.push($generator_fn);
37
2.73G
                }
38
            )*
39
15.9M
        }
wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>
Line
Count
Source
25
7.19M
            builder.allocs.options.clear();
26
27
            // Unroll the loop that checks whether each instruction is valid in
28
            // the current context and, if it is valid, pushes it onto our
29
            // options. Unrolling this loops lets us avoid dynamic calls through
30
            // function pointers and, furthermore, each call site can be branch
31
            // predicted and even inlined. This saved us about 30% of time in
32
            // the `corpus` benchmark.
33
            $(
34
7.19M
                let predicate: Option<fn(&ConfiguredModule<C>, &mut CodeBuilder<C>) -> bool> = $predicate;
35
7.19M
                if predicate.map_or(true, |f| f(module, builder)) {
36
221M
                    builder.allocs.options.push($generator_fn);
37
1.21G
                }
38
            )*
39
7.19M
        }
wasm_smith::code_builder::gather_options::<wasm_smith::config::DefaultConfig>
Line
Count
Source
25
8.74M
            builder.allocs.options.clear();
26
27
            // Unroll the loop that checks whether each instruction is valid in
28
            // the current context and, if it is valid, pushes it onto our
29
            // options. Unrolling this loops lets us avoid dynamic calls through
30
            // function pointers and, furthermore, each call site can be branch
31
            // predicted and even inlined. This saved us about 30% of time in
32
            // the `corpus` benchmark.
33
            $(
34
8.74M
                let predicate: Option<fn(&ConfiguredModule<C>, &mut CodeBuilder<C>) -> bool> = $predicate;
35
8.74M
                if predicate.map_or(true, |f| f(module, builder)) {
36
229M
                    builder.allocs.options.push($generator_fn);
37
1.51G
                }
38
            )*
39
8.74M
        }
Unexecuted instantiation: wasm_smith::code_builder::gather_options::<wasm_smith::config::SwarmConfig>
40
  };
41
42
    ( @count; ) => {
43
        0
44
    };
45
    ( @count; $x:ident $( $xs:ident )* ) => {
46
        1 + instructions!( @count; $( $xs )* )
47
    };
48
}
49
50
// The static set of options of instruction to generate that could be valid at
51
// some given time. One entry per Wasm instruction.
52
//
53
// Each entry is made up of two parts:
54
//
55
// 1. A predicate for whether this is a valid choice, if any. `None` means that
56
//    the choice is always applicable.
57
//
58
// 2. The function to generate the instruction, given that we've made this
59
//    choice.
60
instructions! {
61
    // Control instructions.
62
    (None, unreachable),
63
    (None, nop),
64
    (None, block),
65
    (None, r#loop),
66
    (Some(if_valid), r#if),
67
    (Some(else_valid), r#else),
68
    (Some(end_valid), end),
69
    (Some(br_valid), br),
70
    (Some(br_if_valid), br_if),
71
    (Some(br_table_valid), br_table),
72
    (Some(return_valid), r#return),
73
    (Some(call_valid), call),
74
    (Some(call_indirect_valid), call_indirect),
75
    // Parametric instructions.
76
    (Some(drop_valid), drop),
77
    (Some(select_valid), select),
78
    // Variable instructions.
79
    (Some(local_get_valid), local_get),
80
    (Some(local_set_valid), local_set),
81
    (Some(local_set_valid), local_tee),
82
    (Some(global_get_valid), global_get),
83
    (Some(global_set_valid), global_set),
84
    // Memory instructions.
85
    (Some(have_memory_and_offset), i32_load),
86
    (Some(have_memory_and_offset), i64_load),
87
    (Some(have_memory_and_offset), f32_load),
88
    (Some(have_memory_and_offset), f64_load),
89
    (Some(have_memory_and_offset), i32_load_8_s),
90
    (Some(have_memory_and_offset), i32_load_8_u),
91
    (Some(have_memory_and_offset), i32_load_16_s),
92
    (Some(have_memory_and_offset), i32_load_16_u),
93
    (Some(have_memory_and_offset), i64_load_8_s),
94
    (Some(have_memory_and_offset), i64_load_16_s),
95
    (Some(have_memory_and_offset), i64_load_32_s),
96
    (Some(have_memory_and_offset), i64_load_8_u),
97
    (Some(have_memory_and_offset), i64_load_16_u),
98
    (Some(have_memory_and_offset), i64_load_32_u),
99
    (Some(i32_store_valid), i32_store),
100
    (Some(i64_store_valid), i64_store),
101
    (Some(f32_store_valid), f32_store),
102
    (Some(f64_store_valid), f64_store),
103
    (Some(i32_store_valid), i32_store_8),
104
    (Some(i32_store_valid), i32_store_16),
105
    (Some(i64_store_valid), i64_store_8),
106
    (Some(i64_store_valid), i64_store_16),
107
    (Some(i64_store_valid), i64_store_32),
108
    (Some(have_memory), memory_size),
109
    (Some(memory_grow_valid), memory_grow),
110
    (Some(memory_init_valid), memory_init),
111
    (Some(data_drop_valid), data_drop),
112
    (Some(memory_copy_valid), memory_copy),
113
    (Some(memory_fill_valid), memory_fill),
114
    // Numeric instructions.
115
    (None, i32_const),
116
    (None, i64_const),
117
    (None, f32_const),
118
    (None, f64_const),
119
    (Some(i32_on_stack), i32_eqz),
120
    (Some(i32_i32_on_stack), i32_eq),
121
    (Some(i32_i32_on_stack), i32_neq),
122
    (Some(i32_i32_on_stack), i32_lt_s),
123
    (Some(i32_i32_on_stack), i32_lt_u),
124
    (Some(i32_i32_on_stack), i32_gt_s),
125
    (Some(i32_i32_on_stack), i32_gt_u),
126
    (Some(i32_i32_on_stack), i32_le_s),
127
    (Some(i32_i32_on_stack), i32_le_u),
128
    (Some(i32_i32_on_stack), i32_ge_s),
129
    (Some(i32_i32_on_stack), i32_ge_u),
130
    (Some(i64_on_stack), i64_eqz),
131
    (Some(i64_i64_on_stack), i64_eq),
132
    (Some(i64_i64_on_stack), i64_neq),
133
    (Some(i64_i64_on_stack), i64_lt_s),
134
    (Some(i64_i64_on_stack), i64_lt_u),
135
    (Some(i64_i64_on_stack), i64_gt_s),
136
    (Some(i64_i64_on_stack), i64_gt_u),
137
    (Some(i64_i64_on_stack), i64_le_s),
138
    (Some(i64_i64_on_stack), i64_le_u),
139
    (Some(i64_i64_on_stack), i64_ge_s),
140
    (Some(i64_i64_on_stack), i64_ge_u),
141
    (Some(f32_f32_on_stack), f32_eq),
142
    (Some(f32_f32_on_stack), f32_neq),
143
    (Some(f32_f32_on_stack), f32_lt),
144
    (Some(f32_f32_on_stack), f32_gt),
145
    (Some(f32_f32_on_stack), f32_le),
146
    (Some(f32_f32_on_stack), f32_ge),
147
    (Some(f64_f64_on_stack), f64_eq),
148
    (Some(f64_f64_on_stack), f64_neq),
149
    (Some(f64_f64_on_stack), f64_lt),
150
    (Some(f64_f64_on_stack), f64_gt),
151
    (Some(f64_f64_on_stack), f64_le),
152
    (Some(f64_f64_on_stack), f64_ge),
153
    (Some(i32_on_stack), i32_clz),
154
    (Some(i32_on_stack), i32_ctz),
155
    (Some(i32_on_stack), i32_popcnt),
156
    (Some(i32_i32_on_stack), i32_add),
157
    (Some(i32_i32_on_stack), i32_sub),
158
    (Some(i32_i32_on_stack), i32_mul),
159
    (Some(i32_i32_on_stack), i32_div_s),
160
    (Some(i32_i32_on_stack), i32_div_u),
161
    (Some(i32_i32_on_stack), i32_rem_s),
162
    (Some(i32_i32_on_stack), i32_rem_u),
163
    (Some(i32_i32_on_stack), i32_and),
164
    (Some(i32_i32_on_stack), i32_or),
165
    (Some(i32_i32_on_stack), i32_xor),
166
    (Some(i32_i32_on_stack), i32_shl),
167
    (Some(i32_i32_on_stack), i32_shr_s),
168
    (Some(i32_i32_on_stack), i32_shr_u),
169
    (Some(i32_i32_on_stack), i32_rotl),
170
    (Some(i32_i32_on_stack), i32_rotr),
171
    (Some(i64_on_stack), i64_clz),
172
    (Some(i64_on_stack), i64_ctz),
173
    (Some(i64_on_stack), i64_popcnt),
174
    (Some(i64_i64_on_stack), i64_add),
175
    (Some(i64_i64_on_stack), i64_sub),
176
    (Some(i64_i64_on_stack), i64_mul),
177
    (Some(i64_i64_on_stack), i64_div_s),
178
    (Some(i64_i64_on_stack), i64_div_u),
179
    (Some(i64_i64_on_stack), i64_rem_s),
180
    (Some(i64_i64_on_stack), i64_rem_u),
181
    (Some(i64_i64_on_stack), i64_and),
182
    (Some(i64_i64_on_stack), i64_or),
183
    (Some(i64_i64_on_stack), i64_xor),
184
    (Some(i64_i64_on_stack), i64_shl),
185
    (Some(i64_i64_on_stack), i64_shr_s),
186
    (Some(i64_i64_on_stack), i64_shr_u),
187
    (Some(i64_i64_on_stack), i64_rotl),
188
    (Some(i64_i64_on_stack), i64_rotr),
189
    (Some(f32_on_stack), f32_abs),
190
    (Some(f32_on_stack), f32_neg),
191
    (Some(f32_on_stack), f32_ceil),
192
    (Some(f32_on_stack), f32_floor),
193
    (Some(f32_on_stack), f32_trunc),
194
    (Some(f32_on_stack), f32_nearest),
195
    (Some(f32_on_stack), f32_sqrt),
196
    (Some(f32_f32_on_stack), f32_add),
197
    (Some(f32_f32_on_stack), f32_sub),
198
    (Some(f32_f32_on_stack), f32_mul),
199
    (Some(f32_f32_on_stack), f32_div),
200
    (Some(f32_f32_on_stack), f32_min),
201
    (Some(f32_f32_on_stack), f32_max),
202
    (Some(f32_f32_on_stack), f32_copysign),
203
    (Some(f64_on_stack), f64_abs),
204
    (Some(f64_on_stack), f64_neg),
205
    (Some(f64_on_stack), f64_ceil),
206
    (Some(f64_on_stack), f64_floor),
207
    (Some(f64_on_stack), f64_trunc),
208
    (Some(f64_on_stack), f64_nearest),
209
    (Some(f64_on_stack), f64_sqrt),
210
    (Some(f64_f64_on_stack), f64_add),
211
    (Some(f64_f64_on_stack), f64_sub),
212
    (Some(f64_f64_on_stack), f64_mul),
213
    (Some(f64_f64_on_stack), f64_div),
214
    (Some(f64_f64_on_stack), f64_min),
215
    (Some(f64_f64_on_stack), f64_max),
216
    (Some(f64_f64_on_stack), f64_copysign),
217
    (Some(i64_on_stack), i32_wrap_i64),
218
    (Some(f32_on_stack), i32_trunc_f32_s),
219
    (Some(f32_on_stack), i32_trunc_f32_u),
220
    (Some(f64_on_stack), i32_trunc_f64_s),
221
    (Some(f64_on_stack), i32_trunc_f64_u),
222
    (Some(i32_on_stack), i64_extend_i32_s),
223
    (Some(i32_on_stack), i64_extend_i32_u),
224
    (Some(f32_on_stack), i64_trunc_f32_s),
225
    (Some(f32_on_stack), i64_trunc_f32_u),
226
    (Some(f64_on_stack), i64_trunc_f64_s),
227
    (Some(f64_on_stack), i64_trunc_f64_u),
228
    (Some(i32_on_stack), f32_convert_i32_s),
229
    (Some(i32_on_stack), f32_convert_i32_u),
230
    (Some(i64_on_stack), f32_convert_i64_s),
231
    (Some(i64_on_stack), f32_convert_i64_u),
232
    (Some(f64_on_stack), f32_demote_f64),
233
    (Some(i32_on_stack), f64_convert_i32_s),
234
    (Some(i32_on_stack), f64_convert_i32_u),
235
    (Some(i64_on_stack), f64_convert_i64_s),
236
    (Some(i64_on_stack), f64_convert_i64_u),
237
    (Some(f32_on_stack), f64_promote_f32),
238
    (Some(f32_on_stack), i32_reinterpret_f32),
239
    (Some(f64_on_stack), i64_reinterpret_f64),
240
    (Some(i32_on_stack), f32_reinterpret_i32),
241
    (Some(i64_on_stack), f64_reinterpret_i64),
242
    (Some(i32_on_stack), i32_extend_8_s),
243
    (Some(i32_on_stack), i32_extend_16_s),
244
    (Some(i64_on_stack), i64_extend_8_s),
245
    (Some(i64_on_stack), i64_extend_16_s),
246
    (Some(i64_on_stack), i64_extend_32_s),
247
    (Some(f32_on_stack), i32_trunc_sat_f32_s),
248
    (Some(f32_on_stack), i32_trunc_sat_f32_u),
249
    (Some(f64_on_stack), i32_trunc_sat_f64_s),
250
    (Some(f64_on_stack), i32_trunc_sat_f64_u),
251
    (Some(f32_on_stack), i64_trunc_sat_f32_s),
252
    (Some(f32_on_stack), i64_trunc_sat_f32_u),
253
    (Some(f64_on_stack), i64_trunc_sat_f64_s),
254
    (Some(f64_on_stack), i64_trunc_sat_f64_u),
255
    // reference types proposal
256
    (Some(ref_null_valid), ref_null),
257
    (Some(ref_func_valid), ref_func),
258
    (Some(ref_is_null_valid), ref_is_null),
259
    (Some(table_fill_valid), table_fill),
260
    (Some(table_set_valid), table_set),
261
    (Some(table_get_valid), table_get),
262
    (Some(table_size_valid), table_size),
263
    (Some(table_grow_valid), table_grow),
264
    (Some(table_copy_valid), table_copy),
265
    (Some(table_init_valid), table_init),
266
    (Some(elem_drop_valid), elem_drop),
267
}
268
269
pub(crate) struct CodeBuilderAllocations<C>
270
where
271
    C: Config,
272
{
273
    // The control labels in scope right now.
274
    controls: Vec<Control>,
275
276
    // The types on the operand stack right now.
277
    operands: Vec<Option<ValType>>,
278
279
    // Dynamic set of options of instruction we can generate that are known to
280
    // be valid right now.
281
    options: Vec<
282
        fn(&mut Unstructured, &ConfiguredModule<C>, &mut CodeBuilder<C>) -> Result<Instruction>,
283
    >,
284
285
    // Cached information about the module that we're generating functions for,
286
    // used to speed up validity checks. The mutable globals map is a map of the
287
    // type of global to the global indices which have that type (and they're
288
    // all mutable).
289
    mutable_globals: BTreeMap<ValType, Vec<u32>>,
290
291
    // Like mutable globals above this is a map from function types to the list
292
    // of functions that have that function type.
293
    functions: BTreeMap<Vec<ValType>, Vec<u32>>,
294
295
    // Tables in this module which have a funcref element type.
296
    funcref_tables: Vec<u32>,
297
298
    // Functions that are referenced in the module through globals and segments.
299
    referenced_functions: Vec<u32>,
300
301
    // Flag that indicates if any element segments have the same type as any
302
    // table
303
    table_init_possible: bool,
304
}
305
306
pub(crate) struct CodeBuilder<'a, C>
307
where
308
    C: Config,
309
{
310
    func_ty: &'a FuncType,
311
    locals: &'a Vec<ValType>,
312
    allocs: &'a mut CodeBuilderAllocations<C>,
313
}
314
315
/// A control frame.
316
0
#[derive(Debug)]
317
struct Control {
318
    kind: ControlKind,
319
    /// Value types that must be on the stack when entering this control frame.
320
    params: Vec<ValType>,
321
    /// Value types that are left on the stack when exiting this control frame.
322
    results: Vec<ValType>,
323
    /// How far down the operand stack instructions inside this control frame
324
    /// can reach.
325
    height: usize,
326
}
327
328
impl Control {
329
98.6M
    fn label_types(&self) -> &[ValType] {
330
98.6M
        if self.kind == ControlKind::Loop {
331
7.72M
            &self.params
332
        } else {
333
90.9M
            &self.results
334
        }
335
98.6M
    }
336
}
337
338
120M
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
<wasm_smith::code_builder::ControlKind as core::cmp::PartialEq>::eq
Line
Count
Source
338
9.16M
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
<wasm_smith::code_builder::ControlKind as core::cmp::PartialEq>::eq
Line
Count
Source
338
111M
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
339
enum ControlKind {
340
    Block,
341
    If,
342
    Loop,
343
}
344
345
impl<C> CodeBuilderAllocations<C>
346
where
347
    C: Config,
348
{
349
389k
    pub(crate) fn new(module: &ConfiguredModule<C>) -> Self {
350
389k
        let mut mutable_globals = BTreeMap::new();
351
2.24M
        for (i, global) in module.globals.iter().enumerate() {
352
2.24M
            if global.mutable {
353
1.94M
                mutable_globals
354
1.94M
                    .entry(global.val_type)
355
1.94M
                    .or_insert(Vec::new())
356
1.94M
                    .push(i as u32);
357
299k
            }
358
        }
359
360
389k
        let mut functions = BTreeMap::new();
361
2.00M
        for (idx, func) in module.funcs() {
362
2.00M
            functions
363
2.00M
                .entry(func.params.clone())
364
2.00M
                .or_insert(Vec::new())
365
2.00M
                .push(idx);
366
2.00M
        }
367
368
389k
        let mut funcref_tables = Vec::new();
369
389k
        let mut table_tys = Vec::new();
370
1.44M
        for (i, table) in module.tables.iter().enumerate() {
371
1.44M
            table_tys.push(table.elem_ty);
372
278k
            if table.elem_ty == ValType::FuncRef {
373
278k
                funcref_tables.push(i as u32);
374
1.16M
            }
375
        }
376
377
389k
        let mut referenced_functions = BTreeSet::new();
378
1.23M
        for (_, expr) in module.defined_globals.iter() {
379
1.23M
            if let Instruction::RefFunc(i) = *expr {
380
51.6k
                referenced_functions.insert(i);
381
1.18M
            }
382
        }
383
1.14M
        for g in module.elems.iter() {
384
1.14M
            match &g.items {
385
886k
                Elements::Expressions(e) => {
386
37.0M
                    let iter = e.iter().filter_map(|i| *i);
387
886k
                    referenced_functions.extend(iter);
388
886k
                }
389
256k
                Elements::Functions(e) => {
390
256k
                    referenced_functions.extend(e.iter().cloned());
391
256k
                }
392
            }
393
        }
394
395
389k
        let table_init_possible = module.elems.iter().any(|e| table_tys.contains(&e.ty));
<wasm_smith::code_builder::CodeBuilderAllocations<wasm_smith::config::SwarmConfig>>::new::{closure#1}
Line
Count
Source
395
362k
        let table_init_possible = module.elems.iter().any(|e| table_tys.contains(&e.ty));
<wasm_smith::code_builder::CodeBuilderAllocations<wasm_smith::config::DefaultConfig>>::new::{closure#1}
Line
Count
Source
395
4.46k
        let table_init_possible = module.elems.iter().any(|e| table_tys.contains(&e.ty));
396
389k
397
389k
        CodeBuilderAllocations {
398
389k
            controls: Vec::with_capacity(4),
399
389k
            operands: Vec::with_capacity(16),
400
389k
            options: Vec::with_capacity(NUM_OPTIONS),
401
389k
            functions,
402
389k
            mutable_globals,
403
389k
            funcref_tables,
404
389k
            referenced_functions: referenced_functions.into_iter().collect(),
405
389k
            table_init_possible,
406
389k
        }
407
389k
    }
<wasm_smith::code_builder::CodeBuilderAllocations<wasm_smith::config::SwarmConfig>>::new
Line
Count
Source
349
370k
    pub(crate) fn new(module: &ConfiguredModule<C>) -> Self {
350
370k
        let mut mutable_globals = BTreeMap::new();
351
2.05M
        for (i, global) in module.globals.iter().enumerate() {
352
2.05M
            if global.mutable {
353
1.76M
                mutable_globals
354
1.76M
                    .entry(global.val_type)
355
1.76M
                    .or_insert(Vec::new())
356
1.76M
                    .push(i as u32);
357
291k
            }
358
        }
359
360
370k
        let mut functions = BTreeMap::new();
361
1.38M
        for (idx, func) in module.funcs() {
362
1.38M
            functions
363
1.38M
                .entry(func.params.clone())
364
1.38M
                .or_insert(Vec::new())
365
1.38M
                .push(idx);
366
1.38M
        }
367
368
370k
        let mut funcref_tables = Vec::new();
369
370k
        let mut table_tys = Vec::new();
370
1.43M
        for (i, table) in module.tables.iter().enumerate() {
371
1.43M
            table_tys.push(table.elem_ty);
372
268k
            if table.elem_ty == ValType::FuncRef {
373
268k
                funcref_tables.push(i as u32);
374
1.16M
            }
375
        }
376
377
370k
        let mut referenced_functions = BTreeSet::new();
378
1.11M
        for (_, expr) in module.defined_globals.iter() {
379
1.11M
            if let Instruction::RefFunc(i) = *expr {
380
51.6k
                referenced_functions.insert(i);
381
1.06M
            }
382
        }
383
1.09M
        for g in module.elems.iter() {
384
1.09M
            match &g.items {
385
886k
                Elements::Expressions(e) => {
386
886k
                    let iter = e.iter().filter_map(|i| *i);
387
886k
                    referenced_functions.extend(iter);
388
886k
                }
389
204k
                Elements::Functions(e) => {
390
204k
                    referenced_functions.extend(e.iter().cloned());
391
204k
                }
392
            }
393
        }
394
395
370k
        let table_init_possible = module.elems.iter().any(|e| table_tys.contains(&e.ty));
396
370k
397
370k
        CodeBuilderAllocations {
398
370k
            controls: Vec::with_capacity(4),
399
370k
            operands: Vec::with_capacity(16),
400
370k
            options: Vec::with_capacity(NUM_OPTIONS),
401
370k
            functions,
402
370k
            mutable_globals,
403
370k
            funcref_tables,
404
370k
            referenced_functions: referenced_functions.into_iter().collect(),
405
370k
            table_init_possible,
406
370k
        }
407
370k
    }
<wasm_smith::code_builder::CodeBuilderAllocations<wasm_smith::config::DefaultConfig>>::new
Line
Count
Source
349
19.2k
    pub(crate) fn new(module: &ConfiguredModule<C>) -> Self {
350
19.2k
        let mut mutable_globals = BTreeMap::new();
351
185k
        for (i, global) in module.globals.iter().enumerate() {
352
185k
            if global.mutable {
353
177k
                mutable_globals
354
177k
                    .entry(global.val_type)
355
177k
                    .or_insert(Vec::new())
356
177k
                    .push(i as u32);
357
7.84k
            }
358
        }
359
360
19.2k
        let mut functions = BTreeMap::new();
361
623k
        for (idx, func) in module.funcs() {
362
623k
            functions
363
623k
                .entry(func.params.clone())
364
623k
                .or_insert(Vec::new())
365
623k
                .push(idx);
366
623k
        }
367
368
19.2k
        let mut funcref_tables = Vec::new();
369
19.2k
        let mut table_tys = Vec::new();
370
19.2k
        for (i, table) in module.tables.iter().enumerate() {
371
10.0k
            table_tys.push(table.elem_ty);
372
10.0k
            if table.elem_ty == ValType::FuncRef {
373
10.0k
                funcref_tables.push(i as u32);
374
0
            }
375
        }
376
377
19.2k
        let mut referenced_functions = BTreeSet::new();
378
120k
        for (_, expr) in module.defined_globals.iter() {
379
120k
            if let Instruction::RefFunc(i) = *expr {
380
0
                referenced_functions.insert(i);
381
120k
            }
382
        }
383
51.5k
        for g in module.elems.iter() {
384
51.5k
            match &g.items {
385
0
                Elements::Expressions(e) => {
386
0
                    let iter = e.iter().filter_map(|i| *i);
387
0
                    referenced_functions.extend(iter);
388
0
                }
389
51.5k
                Elements::Functions(e) => {
390
51.5k
                    referenced_functions.extend(e.iter().cloned());
391
51.5k
                }
392
            }
393
        }
394
395
19.2k
        let table_init_possible = module.elems.iter().any(|e| table_tys.contains(&e.ty));
396
19.2k
397
19.2k
        CodeBuilderAllocations {
398
19.2k
            controls: Vec::with_capacity(4),
399
19.2k
            operands: Vec::with_capacity(16),
400
19.2k
            options: Vec::with_capacity(NUM_OPTIONS),
401
19.2k
            functions,
402
19.2k
            mutable_globals,
403
19.2k
            funcref_tables,
404
19.2k
            referenced_functions: referenced_functions.into_iter().collect(),
405
19.2k
            table_init_possible,
406
19.2k
        }
407
19.2k
    }
Unexecuted instantiation: <wasm_smith::code_builder::CodeBuilderAllocations<wasm_smith::config::SwarmConfig>>::new
408
409
1.75M
    pub(crate) fn builder<'a>(
410
1.75M
        &'a mut self,
411
1.75M
        func_ty: &'a FuncType,
412
1.75M
        locals: &'a Vec<ValType>,
413
1.75M
    ) -> CodeBuilder<'a, C> {
414
1.75M
        self.controls.clear();
415
1.75M
        self.controls.push(Control {
416
1.75M
            kind: ControlKind::Block,
417
1.75M
            params: vec![],
418
1.75M
            results: func_ty.results.clone(),
419
1.75M
            height: 0,
420
1.75M
        });
421
1.75M
422
1.75M
        self.operands.clear();
423
1.75M
        self.options.clear();
424
1.75M
425
1.75M
        CodeBuilder {
426
1.75M
            func_ty,
427
1.75M
            locals,
428
1.75M
            allocs: self,
429
1.75M
        }
430
1.75M
    }
<wasm_smith::code_builder::CodeBuilderAllocations<wasm_smith::config::SwarmConfig>>::builder
Line
Count
Source
409
1.17M
    pub(crate) fn builder<'a>(
410
1.17M
        &'a mut self,
411
1.17M
        func_ty: &'a FuncType,
412
1.17M
        locals: &'a Vec<ValType>,
413
1.17M
    ) -> CodeBuilder<'a, C> {
414
1.17M
        self.controls.clear();
415
1.17M
        self.controls.push(Control {
416
1.17M
            kind: ControlKind::Block,
417
1.17M
            params: vec![],
418
1.17M
            results: func_ty.results.clone(),
419
1.17M
            height: 0,
420
1.17M
        });
421
1.17M
422
1.17M
        self.operands.clear();
423
1.17M
        self.options.clear();
424
1.17M
425
1.17M
        CodeBuilder {
426
1.17M
            func_ty,
427
1.17M
            locals,
428
1.17M
            allocs: self,
429
1.17M
        }
430
1.17M
    }
<wasm_smith::code_builder::CodeBuilderAllocations<wasm_smith::config::DefaultConfig>>::builder
Line
Count
Source
409
578k
    pub(crate) fn builder<'a>(
410
578k
        &'a mut self,
411
578k
        func_ty: &'a FuncType,
412
578k
        locals: &'a Vec<ValType>,
413
578k
    ) -> CodeBuilder<'a, C> {
414
578k
        self.controls.clear();
415
578k
        self.controls.push(Control {
416
578k
            kind: ControlKind::Block,
417
578k
            params: vec![],
418
578k
            results: func_ty.results.clone(),
419
578k
            height: 0,
420
578k
        });
421
578k
422
578k
        self.operands.clear();
423
578k
        self.options.clear();
424
578k
425
578k
        CodeBuilder {
426
578k
            func_ty,
427
578k
            locals,
428
578k
            allocs: self,
429
578k
        }
430
578k
    }
431
}
432
433
impl<'a, C> CodeBuilder<'a, C>
434
where
435
    C: Config,
436
{
437
    /// Get the operands that are in-scope within the current control frame.
438
5.18G
    fn operands(&self) -> &[Option<ValType>] {
439
5.18G
        let height = self.allocs.controls.last().map_or(0, |c| c.height);
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::operands::{closure#0}
Line
Count
Source
439
2.27G
        let height = self.allocs.controls.last().map_or(0, |c| c.height);
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::DefaultConfig>>::operands::{closure#0}
Line
Count
Source
439
2.90G
        let height = self.allocs.controls.last().map_or(0, |c| c.height);
440
5.18G
        &self.allocs.operands[height..]
441
5.18G
    }
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::operands
Line
Count
Source
438
2.27G
    fn operands(&self) -> &[Option<ValType>] {
439
2.27G
        let height = self.allocs.controls.last().map_or(0, |c| c.height);
440
2.27G
        &self.allocs.operands[height..]
441
2.27G
    }
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::DefaultConfig>>::operands
Line
Count
Source
438
2.90G
    fn operands(&self) -> &[Option<ValType>] {
439
2.90G
        let height = self.allocs.controls.last().map_or(0, |c| c.height);
440
2.90G
        &self.allocs.operands[height..]
441
2.90G
    }
Unexecuted instantiation: <wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::operands
442
443
6.36M
    fn pop_operands(&mut self, to_pop: &[ValType]) {
444
        debug_assert!(self.types_on_stack(to_pop));
445
6.36M
        self.allocs
446
6.36M
            .operands
447
6.36M
            .truncate(self.allocs.operands.len() - to_pop.len());
448
6.36M
    }
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::pop_operands
Line
Count
Source
443
3.01M
    fn pop_operands(&mut self, to_pop: &[ValType]) {
444
        debug_assert!(self.types_on_stack(to_pop));
445
3.01M
        self.allocs
446
3.01M
            .operands
447
3.01M
            .truncate(self.allocs.operands.len() - to_pop.len());
448
3.01M
    }
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::DefaultConfig>>::pop_operands
Line
Count
Source
443
3.35M
    fn pop_operands(&mut self, to_pop: &[ValType]) {
444
        debug_assert!(self.types_on_stack(to_pop));
445
3.35M
        self.allocs
446
3.35M
            .operands
447
3.35M
            .truncate(self.allocs.operands.len() - to_pop.len());
448
3.35M
    }
449
450
7.47M
    fn push_operands(&mut self, to_push: &[ValType]) {
451
7.47M
        self.allocs
452
7.47M
            .operands
453
7.47M
            .extend(to_push.iter().copied().map(Some));
454
7.47M
    }
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::push_operands
Line
Count
Source
450
3.96M
    fn push_operands(&mut self, to_push: &[ValType]) {
451
3.96M
        self.allocs
452
3.96M
            .operands
453
3.96M
            .extend(to_push.iter().copied().map(Some));
454
3.96M
    }
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::DefaultConfig>>::push_operands
Line
Count
Source
450
3.50M
    fn push_operands(&mut self, to_push: &[ValType]) {
451
3.50M
        self.allocs
452
3.50M
            .operands
453
3.50M
            .extend(to_push.iter().copied().map(Some));
454
3.50M
    }
455
456
96.5M
    fn label_types_on_stack(&self, to_check: &Control) -> bool {
457
96.5M
        self.types_on_stack(to_check.label_types())
458
96.5M
    }
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::label_types_on_stack
Line
Count
Source
456
23.7M
    fn label_types_on_stack(&self, to_check: &Control) -> bool {
457
23.7M
        self.types_on_stack(to_check.label_types())
458
23.7M
    }
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::DefaultConfig>>::label_types_on_stack
Line
Count
Source
456
72.8M
    fn label_types_on_stack(&self, to_check: &Control) -> bool {
457
72.8M
        self.types_on_stack(to_check.label_types())
458
72.8M
    }
459
460
1.83G
    fn type_on_stack(&self, ty: ValType) -> bool {
461
1.83G
        match self.operands().last() {
462
912M
            None => false,
463
918M
            Some(None) => true,
464
918M
            Some(Some(x)) => *x == ty,
465
        }
466
1.83G
    }
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::type_on_stack
Line
Count
Source
460
638M
    fn type_on_stack(&self, ty: ValType) -> bool {
461
638M
        match self.operands().last() {
462
164M
            None => false,
463
474M
            Some(None) => true,
464
474M
            Some(Some(x)) => *x == ty,
465
        }
466
638M
    }
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::DefaultConfig>>::type_on_stack
Line
Count
Source
460
1.19G
    fn type_on_stack(&self, ty: ValType) -> bool {
461
1.19G
        match self.operands().last() {
462
747M
            None => false,
463
443M
            Some(None) => true,
464
443M
            Some(Some(x)) => *x == ty,
465
        }
466
1.19G
    }
Unexecuted instantiation: <wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::type_on_stack
467
468
2.28G
    fn types_on_stack(&self, types: &[ValType]) -> bool {
469
2.28G
        self.operands().len() >= types.len()
470
1.02G
            && self
471
1.02G
                .operands()
472
1.02G
                .iter()
473
1.02G
                .rev()
474
1.02G
                .zip(types.iter().rev())
475
1.12G
                .all(|(a, b)| match (a, b) {
476
0
                    (None, _) => true,
477
1.12G
                    (Some(x), y) => x == y,
478
1.12G
                })
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::types_on_stack::{closure#0}
Line
Count
Source
475
639M
                .all(|(a, b)| match (a, b) {
476
0
                    (None, _) => true,
477
639M
                    (Some(x), y) => x == y,
478
639M
                })
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::DefaultConfig>>::types_on_stack::{closure#0}
Line
Count
Source
475
489M
                .all(|(a, b)| match (a, b) {
476
0
                    (None, _) => true,
477
489M
                    (Some(x), y) => x == y,
478
489M
                })
Unexecuted instantiation: <wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::types_on_stack::{closure#0}
479
2.28G
    }
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::types_on_stack
Line
Count
Source
468
1.04G
    fn types_on_stack(&self, types: &[ValType]) -> bool {
469
1.04G
        self.operands().len() >= types.len()
470
573M
            && self
471
573M
                .operands()
472
573M
                .iter()
473
573M
                .rev()
474
573M
                .zip(types.iter().rev())
475
573M
                .all(|(a, b)| match (a, b) {
476
                    (None, _) => true,
477
                    (Some(x), y) => x == y,
478
573M
                })
479
1.04G
    }
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::DefaultConfig>>::types_on_stack
Line
Count
Source
468
1.23G
    fn types_on_stack(&self, types: &[ValType]) -> bool {
469
1.23G
        self.operands().len() >= types.len()
470
448M
            && self
471
448M
                .operands()
472
448M
                .iter()
473
448M
                .rev()
474
448M
                .zip(types.iter().rev())
475
448M
                .all(|(a, b)| match (a, b) {
476
                    (None, _) => true,
477
                    (Some(x), y) => x == y,
478
448M
                })
479
1.23G
    }
Unexecuted instantiation: <wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::types_on_stack
480
481
    #[inline(never)]
482
3.61M
    fn arbitrary_block_type(
483
3.61M
        &self,
484
3.61M
        u: &mut Unstructured,
485
3.61M
        module: &ConfiguredModule<C>,
486
3.61M
    ) -> Result<BlockType> {
487
3.61M
        let mut options: Vec<Box<dyn Fn(&mut Unstructured) -> Result<BlockType>>> = vec![
488
3.61M
            Box::new(|_| Ok(BlockType::Empty)),
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::arbitrary_block_type::{closure#1}
Line
Count
Source
488
93.3k
            Box::new(|_| Ok(BlockType::Empty)),
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::DefaultConfig>>::arbitrary_block_type::{closure#1}
Line
Count
Source
488
115k
            Box::new(|_| Ok(BlockType::Empty)),
489
3.61M
            Box::new(|u| Ok(BlockType::Result(module.arbitrary_valtype(u)?))),
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::arbitrary_block_type::{closure#2}
Line
Count
Source
489
263k
            Box::new(|u| Ok(BlockType::Result(module.arbitrary_valtype(u)?))),
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::DefaultConfig>>::arbitrary_block_type::{closure#2}
Line
Count
Source
489
2.59M
            Box::new(|u| Ok(BlockType::Result(module.arbitrary_valtype(u)?))),
Unexecuted instantiation: <wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::arbitrary_block_type::{closure#2}
490
3.61M
        ];
491
492
26.6M
        for (i, ty) in module.func_types() {
493
26.6M
            if self.types_on_stack(&ty.params) {
494
3.11M
                options.push(Box::new(move |_| Ok(BlockType::FuncType(i as u32))));
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::arbitrary_block_type::{closure#0}
Line
Count
Source
494
75.5k
                options.push(Box::new(move |_| Ok(BlockType::FuncType(i as u32))));
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::DefaultConfig>>::arbitrary_block_type::{closure#0}
Line
Count
Source
494
471k
                options.push(Box::new(move |_| Ok(BlockType::FuncType(i as u32))));
495
23.5M
            }
496
        }
497
498
3.61M
        let f = u.choose(&options)?;
499
3.61M
        f(u)
500
3.61M
    }
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::arbitrary_block_type
Line
Count
Source
482
432k
    fn arbitrary_block_type(
483
432k
        &self,
484
432k
        u: &mut Unstructured,
485
432k
        module: &ConfiguredModule<C>,
486
432k
    ) -> Result<BlockType> {
487
432k
        let mut options: Vec<Box<dyn Fn(&mut Unstructured) -> Result<BlockType>>> = vec![
488
432k
            Box::new(|_| Ok(BlockType::Empty)),
489
432k
            Box::new(|u| Ok(BlockType::Result(module.arbitrary_valtype(u)?))),
490
432k
        ];
491
492
9.47M
        for (i, ty) in module.func_types() {
493
9.47M
            if self.types_on_stack(&ty.params) {
494
685k
                options.push(Box::new(move |_| Ok(BlockType::FuncType(i as u32))));
495
8.78M
            }
496
        }
497
498
432k
        let f = u.choose(&options)?;
499
432k
        f(u)
500
432k
    }
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::DefaultConfig>>::arbitrary_block_type
Line
Count
Source
482
3.17M
    fn arbitrary_block_type(
483
3.17M
        &self,
484
3.17M
        u: &mut Unstructured,
485
3.17M
        module: &ConfiguredModule<C>,
486
3.17M
    ) -> Result<BlockType> {
487
3.17M
        let mut options: Vec<Box<dyn Fn(&mut Unstructured) -> Result<BlockType>>> = vec![
488
3.17M
            Box::new(|_| Ok(BlockType::Empty)),
489
3.17M
            Box::new(|u| Ok(BlockType::Result(module.arbitrary_valtype(u)?))),
490
3.17M
        ];
491
492
17.1M
        for (i, ty) in module.func_types() {
493
17.1M
            if self.types_on_stack(&ty.params) {
494
2.43M
                options.push(Box::new(move |_| Ok(BlockType::FuncType(i as u32))));
495
14.7M
            }
496
        }
497
498
3.17M
        let f = u.choose(&options)?;
499
3.17M
        f(u)
500
3.17M
    }
Unexecuted instantiation: <wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::arbitrary_block_type
501
502
1.75M
    pub(crate) fn arbitrary(
503
1.75M
        mut self,
504
1.75M
        u: &mut Unstructured,
505
1.75M
        module: &ConfiguredModule<C>,
506
1.75M
    ) -> Result<Vec<Instruction>> {
507
1.75M
        let max_instructions = module.config.max_instructions();
508
1.75M
        let mut instructions = vec![];
509
510
17.6M
        while !self.allocs.controls.is_empty() {
511
17.6M
            let keep_going =
512
17.6M
                instructions.len() < max_instructions && u.arbitrary().unwrap_or(false);
513
17.6M
            if !keep_going {
514
1.75M
                self.end_active_control_frames(&mut instructions);
515
1.75M
                break;
516
15.9M
            }
517
15.9M
518
15.9M
            gather_options(module, &mut self);
519
520
15.9M
            let f = u.choose(&self.allocs.options)?;
521
15.9M
            let inst = f(u, module, &mut self)?;
522
15.9M
            instructions.push(inst);
523
        }
524
525
1.75M
        Ok(instructions)
526
1.75M
    }
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::arbitrary
Line
Count
Source
502
1.17M
    pub(crate) fn arbitrary(
503
1.17M
        mut self,
504
1.17M
        u: &mut Unstructured,
505
1.17M
        module: &ConfiguredModule<C>,
506
1.17M
    ) -> Result<Vec<Instruction>> {
507
1.17M
        let max_instructions = module.config.max_instructions();
508
1.17M
        let mut instructions = vec![];
509
510
8.37M
        while !self.allocs.controls.is_empty() {
511
8.37M
            let keep_going =
512
8.37M
                instructions.len() < max_instructions && u.arbitrary().unwrap_or(false);
513
8.37M
            if !keep_going {
514
1.17M
                self.end_active_control_frames(&mut instructions);
515
1.17M
                break;
516
7.19M
            }
517
7.19M
518
7.19M
            gather_options(module, &mut self);
519
520
7.19M
            let f = u.choose(&self.allocs.options)?;
521
7.19M
            let inst = f(u, module, &mut self)?;
522
7.19M
            instructions.push(inst);
523
        }
524
525
1.17M
        Ok(instructions)
526
1.17M
    }
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::DefaultConfig>>::arbitrary
Line
Count
Source
502
578k
    pub(crate) fn arbitrary(
503
578k
        mut self,
504
578k
        u: &mut Unstructured,
505
578k
        module: &ConfiguredModule<C>,
506
578k
    ) -> Result<Vec<Instruction>> {
507
578k
        let max_instructions = module.config.max_instructions();
508
578k
        let mut instructions = vec![];
509
510
9.32M
        while !self.allocs.controls.is_empty() {
511
9.32M
            let keep_going =
512
9.32M
                instructions.len() < max_instructions && u.arbitrary().unwrap_or(false);
513
9.32M
            if !keep_going {
514
576k
                self.end_active_control_frames(&mut instructions);
515
576k
                break;
516
8.74M
            }
517
8.74M
518
8.74M
            gather_options(module, &mut self);
519
520
8.74M
            let f = u.choose(&self.allocs.options)?;
521
8.74M
            let inst = f(u, module, &mut self)?;
522
8.74M
            instructions.push(inst);
523
        }
524
525
576k
        Ok(instructions)
526
578k
    }
Unexecuted instantiation: <wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::arbitrary
527
528
    fn end_active_control_frames(&mut self, instructions: &mut Vec<Instruction>) {
529
7.10M
        while !self.allocs.controls.is_empty() {
530
5.34M
            let num_operands = self.operands().len();
531
5.34M
            let label = self.allocs.controls.pop().unwrap();
532
533
            // If we don't have the right operands on the stack for this
534
            // control frame, add an `unreachable`.
535
5.34M
            if label.results.len() != num_operands || !self.types_on_stack(&label.results) {
536
1.98M
                self.allocs.operands.push(None);
537
1.98M
                instructions.push(Instruction::Unreachable);
538
3.36M
            }
539
540
            // If this is an `if` that is not stack neutral, then it
541
            // must have an `else`.
542
5.34M
            if label.kind == ControlKind::If && label.params != label.results {
543
25.6k
                instructions.push(Instruction::Else);
544
25.6k
                instructions.push(Instruction::Unreachable);
545
5.32M
            }
546
547
            // The last control frame for the function return does not
548
            // need an `end` instruction.
549
5.34M
            if !self.allocs.controls.is_empty() {
550
3.59M
                instructions.push(Instruction::End);
551
1.75M
            }
552
553
5.34M
            self.allocs.operands.truncate(label.height);
554
5.34M
            self.allocs
555
5.34M
                .operands
556
5.34M
                .extend(label.results.into_iter().map(Some));
557
        }
558
1.75M
    }
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::end_active_control_frames
Line
Count
Source
529
2.78M
        while !self.allocs.controls.is_empty() {
530
1.60M
            let num_operands = self.operands().len();
531
1.60M
            let label = self.allocs.controls.pop().unwrap();
532
533
            // If we don't have the right operands on the stack for this
534
            // control frame, add an `unreachable`.
535
1.60M
            if label.results.len() != num_operands || !self.types_on_stack(&label.results) {
536
1.23M
                self.allocs.operands.push(None);
537
1.23M
                instructions.push(Instruction::Unreachable);
538
365k
            }
539
540
            // If this is an `if` that is not stack neutral, then it
541
            // must have an `else`.
542
1.60M
            if label.kind == ControlKind::If && label.params != label.results {
543
7.90k
                instructions.push(Instruction::Else);
544
7.90k
                instructions.push(Instruction::Unreachable);
545
1.59M
            }
546
547
            // The last control frame for the function return does not
548
            // need an `end` instruction.
549
1.60M
            if !self.allocs.controls.is_empty() {
550
423k
                instructions.push(Instruction::End);
551
1.17M
            }
552
553
1.60M
            self.allocs.operands.truncate(label.height);
554
1.60M
            self.allocs
555
1.60M
                .operands
556
1.60M
                .extend(label.results.into_iter().map(Some));
557
        }
558
1.17M
    }
<wasm_smith::code_builder::CodeBuilder<wasm_smith::config::DefaultConfig>>::end_active_control_frames
Line
Count
Source
529
4.32M
        while !self.allocs.controls.is_empty() {
530
3.74M
            let num_operands = self.operands().len();
531
3.74M
            let label = self.allocs.controls.pop().unwrap();
532
533
            // If we don't have the right operands on the stack for this
534
            // control frame, add an `unreachable`.
535
3.74M
            if label.results.len() != num_operands || !self.types_on_stack(&label.results) {
536
748k
                self.allocs.operands.push(None);
537
748k
                instructions.push(Instruction::Unreachable);
538
2.99M
            }
539
540
            // If this is an `if` that is not stack neutral, then it
541
            // must have an `else`.
542
3.74M
            if label.kind == ControlKind::If && label.params != label.results {
543
17.7k
                instructions.push(Instruction::Else);
544
17.7k
                instructions.push(Instruction::Unreachable);
545
3.72M
            }
546
547
            // The last control frame for the function return does not
548
            // need an `end` instruction.
549
3.74M
            if !self.allocs.controls.is_empty() {
550
3.17M
                instructions.push(Instruction::End);
551
576k
            }
552
553
3.74M
            self.allocs.operands.truncate(label.height);
554
3.74M
            self.allocs
555
3.74M
                .operands
556
3.74M
                .extend(label.results.into_iter().map(Some));
557
        }
558
576k
    }
Unexecuted instantiation: <wasm_smith::code_builder::CodeBuilder<wasm_smith::config::SwarmConfig>>::end_active_control_frames
559
}
560
561
1.18M
fn unreachable<C: Config>(
562
1.18M
    _: &mut Unstructured,
563
1.18M
    _: &ConfiguredModule<C>,
564
1.18M
    _: &mut CodeBuilder<C>,
565
1.18M
) -> Result<Instruction> {
566
1.18M
    Ok(Instruction::Unreachable)
567
1.18M
}
wasm_smith::code_builder::unreachable::<wasm_smith::config::SwarmConfig>
Line
Count
Source
561
613k
fn unreachable<C: Config>(
562
613k
    _: &mut Unstructured,
563
613k
    _: &ConfiguredModule<C>,
564
613k
    _: &mut CodeBuilder<C>,
565
613k
) -> Result<Instruction> {
566
613k
    Ok(Instruction::Unreachable)
567
613k
}
wasm_smith::code_builder::unreachable::<wasm_smith::config::DefaultConfig>
Line
Count
Source
561
573k
fn unreachable<C: Config>(
562
573k
    _: &mut Unstructured,
563
573k
    _: &ConfiguredModule<C>,
564
573k
    _: &mut CodeBuilder<C>,
565
573k
) -> Result<Instruction> {
566
573k
    Ok(Instruction::Unreachable)
567
573k
}
568
569
777k
fn nop<C: Config>(
570
777k
    _: &mut Unstructured,
571
777k
    _: &ConfiguredModule<C>,
572
777k
    _: &mut CodeBuilder<C>,
573
777k
) -> Result<Instruction> {
574
777k
    Ok(Instruction::Nop)
575
777k
}
wasm_smith::code_builder::nop::<wasm_smith::config::SwarmConfig>
Line
Count
Source
569
467k
fn nop<C: Config>(
570
467k
    _: &mut Unstructured,
571
467k
    _: &ConfiguredModule<C>,
572
467k
    _: &mut CodeBuilder<C>,
573
467k
) -> Result<Instruction> {
574
467k
    Ok(Instruction::Nop)
575
467k
}
wasm_smith::code_builder::nop::<wasm_smith::config::DefaultConfig>
Line
Count
Source
569
309k
fn nop<C: Config>(
570
309k
    _: &mut Unstructured,
571
309k
    _: &ConfiguredModule<C>,
572
309k
    _: &mut CodeBuilder<C>,
573
309k
) -> Result<Instruction> {
574
309k
    Ok(Instruction::Nop)
575
309k
}
576
577
2.59M
fn block<C: Config>(
578
2.59M
    u: &mut Unstructured,
579
2.59M
    module: &ConfiguredModule<C>,
580
2.59M
    builder: &mut CodeBuilder<C>,
581
2.59M
) -> Result<Instruction> {
582
2.59M
    let block_ty = builder.arbitrary_block_type(u, module)?;
583
2.59M
    let (params, results) = block_ty.params_results(module);
584
2.59M
    let height = builder.allocs.operands.len() - params.len();
585
2.59M
    builder.allocs.controls.push(Control {
586
2.59M
        kind: ControlKind::Block,
587
2.59M
        params,
588
2.59M
        results,
589
2.59M
        height,
590
2.59M
    });
591
2.59M
    Ok(Instruction::Block(block_ty))
592
2.59M
}
wasm_smith::code_builder::block::<wasm_smith::config::SwarmConfig>
Line
Count
Source
577
157k
fn block<C: Config>(
578
157k
    u: &mut Unstructured,
579
157k
    module: &ConfiguredModule<C>,
580
157k
    builder: &mut CodeBuilder<C>,
581
157k
) -> Result<Instruction> {
582
157k
    let block_ty = builder.arbitrary_block_type(u, module)?;
583
157k
    let (params, results) = block_ty.params_results(module);
584
157k
    let height = builder.allocs.operands.len() - params.len();
585
157k
    builder.allocs.controls.push(Control {
586
157k
        kind: ControlKind::Block,
587
157k
        params,
588
157k
        results,
589
157k
        height,
590
157k
    });
591
157k
    Ok(Instruction::Block(block_ty))
592
157k
}
wasm_smith::code_builder::block::<wasm_smith::config::DefaultConfig>
Line
Count
Source
577
2.43M
fn block<C: Config>(
578
2.43M
    u: &mut Unstructured,
579
2.43M
    module: &ConfiguredModule<C>,
580
2.43M
    builder: &mut CodeBuilder<C>,
581
2.43M
) -> Result<Instruction> {
582
2.43M
    let block_ty = builder.arbitrary_block_type(u, module)?;
583
2.43M
    let (params, results) = block_ty.params_results(module);
584
2.43M
    let height = builder.allocs.operands.len() - params.len();
585
2.43M
    builder.allocs.controls.push(Control {
586
2.43M
        kind: ControlKind::Block,
587
2.43M
        params,
588
2.43M
        results,
589
2.43M
        height,
590
2.43M
    });
591
2.43M
    Ok(Instruction::Block(block_ty))
592
2.43M
}
Unexecuted instantiation: wasm_smith::code_builder::block::<wasm_smith::config::SwarmConfig>
593
594
979k
fn r#loop<C: Config>(
595
979k
    u: &mut Unstructured,
596
979k
    module: &ConfiguredModule<C>,
597
979k
    builder: &mut CodeBuilder<C>,
598
979k
) -> Result<Instruction> {
599
979k
    let block_ty = builder.arbitrary_block_type(u, module)?;
600
979k
    let (params, results) = block_ty.params_results(module);
601
979k
    let height = builder.allocs.operands.len() - params.len();
602
979k
    builder.allocs.controls.push(Control {
603
979k
        kind: ControlKind::Loop,
604
979k
        params,
605
979k
        results,
606
979k
        height,
607
979k
    });
608
979k
    Ok(Instruction::Loop(block_ty))
609
979k
}
wasm_smith::code_builder::loop::<wasm_smith::config::SwarmConfig>
Line
Count
Source
594
261k
fn r#loop<C: Config>(
595
261k
    u: &mut Unstructured,
596
261k
    module: &ConfiguredModule<C>,
597
261k
    builder: &mut CodeBuilder<C>,
598
261k
) -> Result<Instruction> {
599
261k
    let block_ty = builder.arbitrary_block_type(u, module)?;
600
261k
    let (params, results) = block_ty.params_results(module);
601
261k
    let height = builder.allocs.operands.len() - params.len();
602
261k
    builder.allocs.controls.push(Control {
603
261k
        kind: ControlKind::Loop,
604
261k
        params,
605
261k
        results,
606
261k
        height,
607
261k
    });
608
261k
    Ok(Instruction::Loop(block_ty))
609
261k
}
wasm_smith::code_builder::loop::<wasm_smith::config::DefaultConfig>
Line
Count
Source
594
717k
fn r#loop<C: Config>(
595
717k
    u: &mut Unstructured,
596
717k
    module: &ConfiguredModule<C>,
597
717k
    builder: &mut CodeBuilder<C>,
598
717k
) -> Result<Instruction> {
599
717k
    let block_ty = builder.arbitrary_block_type(u, module)?;
600
717k
    let (params, results) = block_ty.params_results(module);
601
717k
    let height = builder.allocs.operands.len() - params.len();
602
717k
    builder.allocs.controls.push(Control {
603
717k
        kind: ControlKind::Loop,
604
717k
        params,
605
717k
        results,
606
717k
        height,
607
717k
    });
608
717k
    Ok(Instruction::Loop(block_ty))
609
717k
}
Unexecuted instantiation: wasm_smith::code_builder::loop::<wasm_smith::config::SwarmConfig>
610
611
#[inline]
612
15.9M
fn if_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
613
15.9M
    builder.type_on_stack(ValType::I32)
614
15.9M
}
wasm_smith::code_builder::if_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
612
7.19M
fn if_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
613
7.19M
    builder.type_on_stack(ValType::I32)
614
7.19M
}
wasm_smith::code_builder::if_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
612
8.74M
fn if_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
613
8.74M
    builder.type_on_stack(ValType::I32)
614
8.74M
}
615
616
36.5k
fn r#if<C: Config>(
617
36.5k
    u: &mut Unstructured,
618
36.5k
    module: &ConfiguredModule<C>,
619
36.5k
    builder: &mut CodeBuilder<C>,
620
36.5k
) -> Result<Instruction> {
621
36.5k
    builder.pop_operands(&[ValType::I32]);
622
623
36.5k
    let block_ty = builder.arbitrary_block_type(u, module)?;
624
36.5k
    let (params, results) = block_ty.params_results(module);
625
36.5k
    let height = builder.allocs.operands.len() - params.len();
626
36.5k
    builder.allocs.controls.push(Control {
627
36.5k
        kind: ControlKind::If,
628
36.5k
        params,
629
36.5k
        results,
630
36.5k
        height,
631
36.5k
    });
632
36.5k
    Ok(Instruction::If(block_ty))
633
36.5k
}
wasm_smith::code_builder::if::<wasm_smith::config::SwarmConfig>
Line
Count
Source
616
13.5k
fn r#if<C: Config>(
617
13.5k
    u: &mut Unstructured,
618
13.5k
    module: &ConfiguredModule<C>,
619
13.5k
    builder: &mut CodeBuilder<C>,
620
13.5k
) -> Result<Instruction> {
621
13.5k
    builder.pop_operands(&[ValType::I32]);
622
623
13.5k
    let block_ty = builder.arbitrary_block_type(u, module)?;
624
13.5k
    let (params, results) = block_ty.params_results(module);
625
13.5k
    let height = builder.allocs.operands.len() - params.len();
626
13.5k
    builder.allocs.controls.push(Control {
627
13.5k
        kind: ControlKind::If,
628
13.5k
        params,
629
13.5k
        results,
630
13.5k
        height,
631
13.5k
    });
632
13.5k
    Ok(Instruction::If(block_ty))
633
13.5k
}
wasm_smith::code_builder::if::<wasm_smith::config::DefaultConfig>
Line
Count
Source
616
22.9k
fn r#if<C: Config>(
617
22.9k
    u: &mut Unstructured,
618
22.9k
    module: &ConfiguredModule<C>,
619
22.9k
    builder: &mut CodeBuilder<C>,
620
22.9k
) -> Result<Instruction> {
621
22.9k
    builder.pop_operands(&[ValType::I32]);
622
623
22.9k
    let block_ty = builder.arbitrary_block_type(u, module)?;
624
22.9k
    let (params, results) = block_ty.params_results(module);
625
22.9k
    let height = builder.allocs.operands.len() - params.len();
626
22.9k
    builder.allocs.controls.push(Control {
627
22.9k
        kind: ControlKind::If,
628
22.9k
        params,
629
22.9k
        results,
630
22.9k
        height,
631
22.9k
    });
632
22.9k
    Ok(Instruction::If(block_ty))
633
22.9k
}
Unexecuted instantiation: wasm_smith::code_builder::if::<wasm_smith::config::SwarmConfig>
634
635
#[inline]
636
15.9M
fn else_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
637
15.9M
    let last_control = builder.allocs.controls.last().unwrap();
638
15.9M
    last_control.kind == ControlKind::If
639
212k
        && builder.operands().len() == last_control.results.len()
640
70.7k
        && builder.types_on_stack(&last_control.results)
641
15.9M
}
wasm_smith::code_builder::else_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
636
7.19M
fn else_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
637
7.19M
    let last_control = builder.allocs.controls.last().unwrap();
638
7.19M
    last_control.kind == ControlKind::If
639
73.5k
        && builder.operands().len() == last_control.results.len()
640
18.4k
        && builder.types_on_stack(&last_control.results)
641
7.19M
}
wasm_smith::code_builder::else_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
636
8.74M
fn else_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
637
8.74M
    let last_control = builder.allocs.controls.last().unwrap();
638
8.74M
    last_control.kind == ControlKind::If
639
139k
        && builder.operands().len() == last_control.results.len()
640
52.2k
        && builder.types_on_stack(&last_control.results)
641
8.74M
}
642
643
855
fn r#else<C: Config>(
644
855
    _: &mut Unstructured,
645
855
    _: &ConfiguredModule<C>,
646
855
    builder: &mut CodeBuilder<C>,
647
855
) -> Result<Instruction> {
648
855
    let control = builder.allocs.controls.pop().unwrap();
649
855
    builder.pop_operands(&control.results);
650
855
    builder.push_operands(&control.params);
651
855
    builder.allocs.controls.push(Control {
652
855
        kind: ControlKind::Block,
653
855
        ..control
654
855
    });
655
855
    Ok(Instruction::Else)
656
855
}
wasm_smith::code_builder::else::<wasm_smith::config::SwarmConfig>
Line
Count
Source
643
233
fn r#else<C: Config>(
644
233
    _: &mut Unstructured,
645
233
    _: &ConfiguredModule<C>,
646
233
    builder: &mut CodeBuilder<C>,
647
233
) -> Result<Instruction> {
648
233
    let control = builder.allocs.controls.pop().unwrap();
649
233
    builder.pop_operands(&control.results);
650
233
    builder.push_operands(&control.params);
651
233
    builder.allocs.controls.push(Control {
652
233
        kind: ControlKind::Block,
653
233
        ..control
654
233
    });
655
233
    Ok(Instruction::Else)
656
233
}
wasm_smith::code_builder::else::<wasm_smith::config::DefaultConfig>
Line
Count
Source
643
622
fn r#else<C: Config>(
644
622
    _: &mut Unstructured,
645
622
    _: &ConfiguredModule<C>,
646
622
    builder: &mut CodeBuilder<C>,
647
622
) -> Result<Instruction> {
648
622
    let control = builder.allocs.controls.pop().unwrap();
649
622
    builder.pop_operands(&control.results);
650
622
    builder.push_operands(&control.params);
651
622
    builder.allocs.controls.push(Control {
652
622
        kind: ControlKind::Block,
653
622
        ..control
654
622
    });
655
622
    Ok(Instruction::Else)
656
622
}
657
658
#[inline]
659
15.9M
fn end_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
660
15.9M
    // Note: first control frame is the function return's control frame, which
661
15.9M
    // does not have an associated `end`.
662
15.9M
    if builder.allocs.controls.len() <= 1 {
663
7.61M
        return false;
664
8.32M
    }
665
8.32M
    let control = builder.allocs.controls.last().unwrap();
666
8.32M
    builder.operands().len() == control.results.len()
667
1.82M
        && builder.types_on_stack(&control.results)
668
        // `if`s that don't leave the stack as they found it must have an
669
        // `else`.
670
834k
        && !(control.kind == ControlKind::If && control.params != control.results)
671
15.9M
}
wasm_smith::code_builder::end_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
659
7.19M
fn end_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
660
7.19M
    // Note: first control frame is the function return's control frame, which
661
7.19M
    // does not have an associated `end`.
662
7.19M
    if builder.allocs.controls.len() <= 1 {
663
4.25M
        return false;
664
2.94M
    }
665
2.94M
    let control = builder.allocs.controls.last().unwrap();
666
2.94M
    builder.operands().len() == control.results.len()
667
821k
        && builder.types_on_stack(&control.results)
668
        // `if`s that don't leave the stack as they found it must have an
669
        // `else`.
670
367k
        && !(control.kind == ControlKind::If && control.params != control.results)
671
7.19M
}
wasm_smith::code_builder::end_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
659
8.74M
fn end_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
660
8.74M
    // Note: first control frame is the function return's control frame, which
661
8.74M
    // does not have an associated `end`.
662
8.74M
    if builder.allocs.controls.len() <= 1 {
663
3.35M
        return false;
664
5.38M
    }
665
5.38M
    let control = builder.allocs.controls.last().unwrap();
666
5.38M
    builder.operands().len() == control.results.len()
667
1.00M
        && builder.types_on_stack(&control.results)
668
        // `if`s that don't leave the stack as they found it must have an
669
        // `else`.
670
467k
        && !(control.kind == ControlKind::If && control.params != control.results)
671
8.74M
}
672
673
11.9k
fn end<C: Config>(
674
11.9k
    _: &mut Unstructured,
675
11.9k
    _: &ConfiguredModule<C>,
676
11.9k
    builder: &mut CodeBuilder<C>,
677
11.9k
) -> Result<Instruction> {
678
11.9k
    builder.allocs.controls.pop();
679
11.9k
    Ok(Instruction::End)
680
11.9k
}
wasm_smith::code_builder::end::<wasm_smith::config::SwarmConfig>
Line
Count
Source
673
6.07k
fn end<C: Config>(
674
6.07k
    _: &mut Unstructured,
675
6.07k
    _: &ConfiguredModule<C>,
676
6.07k
    builder: &mut CodeBuilder<C>,
677
6.07k
) -> Result<Instruction> {
678
6.07k
    builder.allocs.controls.pop();
679
6.07k
    Ok(Instruction::End)
680
6.07k
}
wasm_smith::code_builder::end::<wasm_smith::config::DefaultConfig>
Line
Count
Source
673
5.89k
fn end<C: Config>(
674
5.89k
    _: &mut Unstructured,
675
5.89k
    _: &ConfiguredModule<C>,
676
5.89k
    builder: &mut CodeBuilder<C>,
677
5.89k
) -> Result<Instruction> {
678
5.89k
    builder.allocs.controls.pop();
679
5.89k
    Ok(Instruction::End)
680
5.89k
}
681
682
#[inline]
683
19.2M
fn br_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
684
19.2M
    builder
685
19.2M
        .allocs
686
19.2M
        .controls
687
19.2M
        .iter()
688
71.5M
        .any(|l| builder.label_types_on_stack(l))
wasm_smith::code_builder::br_valid::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
688
12.4M
        .any(|l| builder.label_types_on_stack(l))
wasm_smith::code_builder::br_valid::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
688
59.1M
        .any(|l| builder.label_types_on_stack(l))
689
19.2M
}
wasm_smith::code_builder::br_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
683
8.83M
fn br_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
684
8.83M
    builder
685
8.83M
        .allocs
686
8.83M
        .controls
687
8.83M
        .iter()
688
8.83M
        .any(|l| builder.label_types_on_stack(l))
689
8.83M
}
wasm_smith::code_builder::br_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
683
10.3M
fn br_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
684
10.3M
    builder
685
10.3M
        .allocs
686
10.3M
        .controls
687
10.3M
        .iter()
688
10.3M
        .any(|l| builder.label_types_on_stack(l))
689
10.3M
}
Unexecuted instantiation: wasm_smith::code_builder::br_valid::<wasm_smith::config::SwarmConfig>
690
691
145k
fn br<C: Config>(
692
145k
    u: &mut Unstructured,
693
145k
    _: &ConfiguredModule<C>,
694
145k
    builder: &mut CodeBuilder<C>,
695
145k
) -> Result<Instruction> {
696
145k
    let n = builder
697
145k
        .allocs
698
145k
        .controls
699
145k
        .iter()
700
799k
        .filter(|l| builder.label_types_on_stack(l))
wasm_smith::code_builder::br::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
700
311k
        .filter(|l| builder.label_types_on_stack(l))
wasm_smith::code_builder::br::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
700
487k
        .filter(|l| builder.label_types_on_stack(l))
701
145k
        .count();
702
    debug_assert!(n > 0);
703
145k
    let i = u.int_in_range(0..=n - 1)?;
704
145k
    let (target, _) = builder
705
145k
        .allocs
706
145k
        .controls
707
145k
        .iter()
708
145k
        .rev()
709
145k
        .enumerate()
710
559k
        .filter(|(_, l)| builder.label_types_on_stack(l))
wasm_smith::code_builder::br::<wasm_smith::config::SwarmConfig>::{closure#1}
Line
Count
Source
710
190k
        .filter(|(_, l)| builder.label_types_on_stack(l))
wasm_smith::code_builder::br::<wasm_smith::config::DefaultConfig>::{closure#1}
Line
Count
Source
710
369k
        .filter(|(_, l)| builder.label_types_on_stack(l))
711
145k
        .nth(i)
712
145k
        .unwrap();
713
145k
    let control = &builder.allocs.controls[builder.allocs.controls.len() - 1 - target];
714
145k
    let tys = control.label_types().to_vec();
715
145k
    builder.pop_operands(&tys);
716
145k
    Ok(Instruction::Br(target as u32))
717
145k
}
wasm_smith::code_builder::br::<wasm_smith::config::SwarmConfig>
Line
Count
Source
691
83.9k
fn br<C: Config>(
692
83.9k
    u: &mut Unstructured,
693
83.9k
    _: &ConfiguredModule<C>,
694
83.9k
    builder: &mut CodeBuilder<C>,
695
83.9k
) -> Result<Instruction> {
696
83.9k
    let n = builder
697
83.9k
        .allocs
698
83.9k
        .controls
699
83.9k
        .iter()
700
83.9k
        .filter(|l| builder.label_types_on_stack(l))
701
83.9k
        .count();
702
    debug_assert!(n > 0);
703
83.9k
    let i = u.int_in_range(0..=n - 1)?;
704
83.8k
    let (target, _) = builder
705
83.8k
        .allocs
706
83.8k
        .controls
707
83.8k
        .iter()
708
83.8k
        .rev()
709
83.8k
        .enumerate()
710
83.8k
        .filter(|(_, l)| builder.label_types_on_stack(l))
711
83.8k
        .nth(i)
712
83.8k
        .unwrap();
713
83.8k
    let control = &builder.allocs.controls[builder.allocs.controls.len() - 1 - target];
714
83.8k
    let tys = control.label_types().to_vec();
715
83.8k
    builder.pop_operands(&tys);
716
83.8k
    Ok(Instruction::Br(target as u32))
717
83.9k
}
wasm_smith::code_builder::br::<wasm_smith::config::DefaultConfig>
Line
Count
Source
691
61.5k
fn br<C: Config>(
692
61.5k
    u: &mut Unstructured,
693
61.5k
    _: &ConfiguredModule<C>,
694
61.5k
    builder: &mut CodeBuilder<C>,
695
61.5k
) -> Result<Instruction> {
696
61.5k
    let n = builder
697
61.5k
        .allocs
698
61.5k
        .controls
699
61.5k
        .iter()
700
61.5k
        .filter(|l| builder.label_types_on_stack(l))
701
61.5k
        .count();
702
    debug_assert!(n > 0);
703
61.5k
    let i = u.int_in_range(0..=n - 1)?;
704
61.4k
    let (target, _) = builder
705
61.4k
        .allocs
706
61.4k
        .controls
707
61.4k
        .iter()
708
61.4k
        .rev()
709
61.4k
        .enumerate()
710
61.4k
        .filter(|(_, l)| builder.label_types_on_stack(l))
711
61.4k
        .nth(i)
712
61.4k
        .unwrap();
713
61.4k
    let control = &builder.allocs.controls[builder.allocs.controls.len() - 1 - target];
714
61.4k
    let tys = control.label_types().to_vec();
715
61.4k
    builder.pop_operands(&tys);
716
61.4k
    Ok(Instruction::Br(target as u32))
717
61.5k
}
Unexecuted instantiation: wasm_smith::code_builder::br::<wasm_smith::config::SwarmConfig>
718
719
#[inline]
720
15.9M
fn br_if_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
721
15.9M
    if !builder.type_on_stack(ValType::I32) {
722
12.6M
        return false;
723
3.27M
    }
724
3.27M
    let ty = builder.allocs.operands.pop().unwrap();
725
3.27M
    let is_valid = builder
726
3.27M
        .allocs
727
3.27M
        .controls
728
3.27M
        .iter()
729
5.13M
        .any(|l| builder.label_types_on_stack(l));
wasm_smith::code_builder::br_if_valid::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
729
2.33M
        .any(|l| builder.label_types_on_stack(l));
wasm_smith::code_builder::br_if_valid::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
729
2.79M
        .any(|l| builder.label_types_on_stack(l));
730
3.27M
    builder.allocs.operands.push(ty);
731
3.27M
    is_valid
732
15.9M
}
wasm_smith::code_builder::br_if_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
720
7.19M
fn br_if_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
721
7.19M
    if !builder.type_on_stack(ValType::I32) {
722
5.55M
        return false;
723
1.63M
    }
724
1.63M
    let ty = builder.allocs.operands.pop().unwrap();
725
1.63M
    let is_valid = builder
726
1.63M
        .allocs
727
1.63M
        .controls
728
1.63M
        .iter()
729
1.63M
        .any(|l| builder.label_types_on_stack(l));
730
1.63M
    builder.allocs.operands.push(ty);
731
1.63M
    is_valid
732
7.19M
}
wasm_smith::code_builder::br_if_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
720
8.74M
fn br_if_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
721
8.74M
    if !builder.type_on_stack(ValType::I32) {
722
7.11M
        return false;
723
1.63M
    }
724
1.63M
    let ty = builder.allocs.operands.pop().unwrap();
725
1.63M
    let is_valid = builder
726
1.63M
        .allocs
727
1.63M
        .controls
728
1.63M
        .iter()
729
1.63M
        .any(|l| builder.label_types_on_stack(l));
730
1.63M
    builder.allocs.operands.push(ty);
731
1.63M
    is_valid
732
8.74M
}
Unexecuted instantiation: wasm_smith::code_builder::br_if_valid::<wasm_smith::config::SwarmConfig>
733
734
39.3k
fn br_if<C: Config>(
735
39.3k
    u: &mut Unstructured,
736
39.3k
    _: &ConfiguredModule<C>,
737
39.3k
    builder: &mut CodeBuilder<C>,
738
39.3k
) -> Result<Instruction> {
739
39.3k
    builder.pop_operands(&[ValType::I32]);
740
39.3k
741
39.3k
    let n = builder
742
39.3k
        .allocs
743
39.3k
        .controls
744
39.3k
        .iter()
745
624k
        .filter(|l| builder.label_types_on_stack(l))
wasm_smith::code_builder::br_if::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
745
77.2k
        .filter(|l| builder.label_types_on_stack(l))
wasm_smith::code_builder::br_if::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
745
546k
        .filter(|l| builder.label_types_on_stack(l))
746
39.3k
        .count();
747
    debug_assert!(n > 0);
748
39.3k
    let i = u.int_in_range(0..=n - 1)?;
749
39.3k
    let (target, _) = builder
750
39.3k
        .allocs
751
39.3k
        .controls
752
39.3k
        .iter()
753
39.3k
        .rev()
754
39.3k
        .enumerate()
755
448k
        .filter(|(_, l)| builder.label_types_on_stack(l))
wasm_smith::code_builder::br_if::<wasm_smith::config::SwarmConfig>::{closure#1}
Line
Count
Source
755
45.1k
        .filter(|(_, l)| builder.label_types_on_stack(l))
wasm_smith::code_builder::br_if::<wasm_smith::config::DefaultConfig>::{closure#1}
Line
Count
Source
755
402k
        .filter(|(_, l)| builder.label_types_on_stack(l))
756
39.3k
        .nth(i)
757
39.3k
        .unwrap();
758
39.3k
    Ok(Instruction::BrIf(target as u32))
759
39.3k
}
wasm_smith::code_builder::br_if::<wasm_smith::config::SwarmConfig>
Line
Count
Source
734
9.60k
fn br_if<C: Config>(
735
9.60k
    u: &mut Unstructured,
736
9.60k
    _: &ConfiguredModule<C>,
737
9.60k
    builder: &mut CodeBuilder<C>,
738
9.60k
) -> Result<Instruction> {
739
9.60k
    builder.pop_operands(&[ValType::I32]);
740
9.60k
741
9.60k
    let n = builder
742
9.60k
        .allocs
743
9.60k
        .controls
744
9.60k
        .iter()
745
9.60k
        .filter(|l| builder.label_types_on_stack(l))
746
9.60k
        .count();
747
    debug_assert!(n > 0);
748
9.60k
    let i = u.int_in_range(0..=n - 1)?;
749
9.60k
    let (target, _) = builder
750
9.60k
        .allocs
751
9.60k
        .controls
752
9.60k
        .iter()
753
9.60k
        .rev()
754
9.60k
        .enumerate()
755
9.60k
        .filter(|(_, l)| builder.label_types_on_stack(l))
756
9.60k
        .nth(i)
757
9.60k
        .unwrap();
758
9.60k
    Ok(Instruction::BrIf(target as u32))
759
9.60k
}
wasm_smith::code_builder::br_if::<wasm_smith::config::DefaultConfig>
Line
Count
Source
734
29.7k
fn br_if<C: Config>(
735
29.7k
    u: &mut Unstructured,
736
29.7k
    _: &ConfiguredModule<C>,
737
29.7k
    builder: &mut CodeBuilder<C>,
738
29.7k
) -> Result<Instruction> {
739
29.7k
    builder.pop_operands(&[ValType::I32]);
740
29.7k
741
29.7k
    let n = builder
742
29.7k
        .allocs
743
29.7k
        .controls
744
29.7k
        .iter()
745
29.7k
        .filter(|l| builder.label_types_on_stack(l))
746
29.7k
        .count();
747
    debug_assert!(n > 0);
748
29.7k
    let i = u.int_in_range(0..=n - 1)?;
749
29.7k
    let (target, _) = builder
750
29.7k
        .allocs
751
29.7k
        .controls
752
29.7k
        .iter()
753
29.7k
        .rev()
754
29.7k
        .enumerate()
755
29.7k
        .filter(|(_, l)| builder.label_types_on_stack(l))
756
29.7k
        .nth(i)
757
29.7k
        .unwrap();
758
29.7k
    Ok(Instruction::BrIf(target as u32))
759
29.7k
}
Unexecuted instantiation: wasm_smith::code_builder::br_if::<wasm_smith::config::SwarmConfig>
760
761
#[inline]
762
15.9M
fn br_table_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
763
15.9M
    if !builder.type_on_stack(ValType::I32) {
764
12.6M
        return false;
765
3.27M
    }
766
3.27M
    let ty = builder.allocs.operands.pop().unwrap();
767
3.27M
    let is_valid = br_valid(module, builder);
768
3.27M
    builder.allocs.operands.push(ty);
769
3.27M
    is_valid
770
15.9M
}
wasm_smith::code_builder::br_table_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
762
7.19M
fn br_table_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
763
7.19M
    if !builder.type_on_stack(ValType::I32) {
764
5.55M
        return false;
765
1.63M
    }
766
1.63M
    let ty = builder.allocs.operands.pop().unwrap();
767
1.63M
    let is_valid = br_valid(module, builder);
768
1.63M
    builder.allocs.operands.push(ty);
769
1.63M
    is_valid
770
7.19M
}
wasm_smith::code_builder::br_table_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
762
8.74M
fn br_table_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
763
8.74M
    if !builder.type_on_stack(ValType::I32) {
764
7.11M
        return false;
765
1.63M
    }
766
1.63M
    let ty = builder.allocs.operands.pop().unwrap();
767
1.63M
    let is_valid = br_valid(module, builder);
768
1.63M
    builder.allocs.operands.push(ty);
769
1.63M
    is_valid
770
8.74M
}
Unexecuted instantiation: wasm_smith::code_builder::br_table_valid::<wasm_smith::config::SwarmConfig>
771
772
112k
fn br_table<C: Config>(
773
112k
    u: &mut Unstructured,
774
112k
    _: &ConfiguredModule<C>,
775
112k
    builder: &mut CodeBuilder<C>,
776
112k
) -> Result<Instruction> {
777
112k
    builder.pop_operands(&[ValType::I32]);
778
112k
779
112k
    let n = builder
780
112k
        .allocs
781
112k
        .controls
782
112k
        .iter()
783
907k
        .filter(|l| builder.label_types_on_stack(l))
wasm_smith::code_builder::br_table::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
783
663k
        .filter(|l| builder.label_types_on_stack(l))
wasm_smith::code_builder::br_table::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
783
243k
        .filter(|l| builder.label_types_on_stack(l))
784
112k
        .count();
785
    debug_assert!(n > 0);
786
787
112k
    let i = u.int_in_range(0..=n - 1)?;
788
112k
    let (default_target, _) = builder
789
112k
        .allocs
790
112k
        .controls
791
112k
        .iter()
792
112k
        .rev()
793
112k
        .enumerate()
794
587k
        .filter(|(_, l)| builder.label_types_on_stack(l))
wasm_smith::code_builder::br_table::<wasm_smith::config::SwarmConfig>::{closure#1}
Line
Count
Source
794
430k
        .filter(|(_, l)| builder.label_types_on_stack(l))
wasm_smith::code_builder::br_table::<wasm_smith::config::DefaultConfig>::{closure#1}
Line
Count
Source
794
156k
        .filter(|(_, l)| builder.label_types_on_stack(l))
795
112k
        .nth(i)
796
112k
        .unwrap();
797
112k
    let control = &builder.allocs.controls[builder.allocs.controls.len() - 1 - default_target];
798
112k
799
112k
    let targets = builder
800
112k
        .allocs
801
112k
        .controls
802
112k
        .iter()
803
112k
        .rev()
804
112k
        .enumerate()
805
906k
        .filter(|(_, l)| l.label_types() == control.label_types())
wasm_smith::code_builder::br_table::<wasm_smith::config::SwarmConfig>::{closure#2}
Line
Count
Source
805
663k
        .filter(|(_, l)| l.label_types() == control.label_types())
wasm_smith::code_builder::br_table::<wasm_smith::config::DefaultConfig>::{closure#2}
Line
Count
Source
805
243k
        .filter(|(_, l)| l.label_types() == control.label_types())
806
612k
        .map(|(t, _)| t as u32)
wasm_smith::code_builder::br_table::<wasm_smith::config::SwarmConfig>::{closure#3}
Line
Count
Source
806
425k
        .map(|(t, _)| t as u32)
wasm_smith::code_builder::br_table::<wasm_smith::config::DefaultConfig>::{closure#3}
Line
Count
Source
806
186k
        .map(|(t, _)| t as u32)
807
112k
        .collect();
808
112k
809
112k
    let tys = control.label_types().to_vec();
810
112k
    builder.pop_operands(&tys);
811
112k
812
112k
    Ok(Instruction::BrTable(targets, default_target as u32))
813
112k
}
wasm_smith::code_builder::br_table::<wasm_smith::config::SwarmConfig>
Line
Count
Source
772
53.0k
fn br_table<C: Config>(
773
53.0k
    u: &mut Unstructured,
774
53.0k
    _: &ConfiguredModule<C>,
775
53.0k
    builder: &mut CodeBuilder<C>,
776
53.0k
) -> Result<Instruction> {
777
53.0k
    builder.pop_operands(&[ValType::I32]);
778
53.0k
779
53.0k
    let n = builder
780
53.0k
        .allocs
781
53.0k
        .controls
782
53.0k
        .iter()
783
53.0k
        .filter(|l| builder.label_types_on_stack(l))
784
53.0k
        .count();
785
    debug_assert!(n > 0);
786
787
53.0k
    let i = u.int_in_range(0..=n - 1)?;
788
53.0k
    let (default_target, _) = builder
789
53.0k
        .allocs
790
53.0k
        .controls
791
53.0k
        .iter()
792
53.0k
        .rev()
793
53.0k
        .enumerate()
794
53.0k
        .filter(|(_, l)| builder.label_types_on_stack(l))
795
53.0k
        .nth(i)
796
53.0k
        .unwrap();
797
53.0k
    let control = &builder.allocs.controls[builder.allocs.controls.len() - 1 - default_target];
798
53.0k
799
53.0k
    let targets = builder
800
53.0k
        .allocs
801
53.0k
        .controls
802
53.0k
        .iter()
803
53.0k
        .rev()
804
53.0k
        .enumerate()
805
53.0k
        .filter(|(_, l)| l.label_types() == control.label_types())
806
53.0k
        .map(|(t, _)| t as u32)
807
53.0k
        .collect();
808
53.0k
809
53.0k
    let tys = control.label_types().to_vec();
810
53.0k
    builder.pop_operands(&tys);
811
53.0k
812
53.0k
    Ok(Instruction::BrTable(targets, default_target as u32))
813
53.0k
}
wasm_smith::code_builder::br_table::<wasm_smith::config::DefaultConfig>
Line
Count
Source
772
59.8k
fn br_table<C: Config>(
773
59.8k
    u: &mut Unstructured,
774
59.8k
    _: &ConfiguredModule<C>,
775
59.8k
    builder: &mut CodeBuilder<C>,
776
59.8k
) -> Result<Instruction> {
777
59.8k
    builder.pop_operands(&[ValType::I32]);
778
59.8k
779
59.8k
    let n = builder
780
59.8k
        .allocs
781
59.8k
        .controls
782
59.8k
        .iter()
783
59.8k
        .filter(|l| builder.label_types_on_stack(l))
784
59.8k
        .count();
785
    debug_assert!(n > 0);
786
787
59.8k
    let i = u.int_in_range(0..=n - 1)?;
788
59.8k
    let (default_target, _) = builder
789
59.8k
        .allocs
790
59.8k
        .controls
791
59.8k
        .iter()
792
59.8k
        .rev()
793
59.8k
        .enumerate()
794
59.8k
        .filter(|(_, l)| builder.label_types_on_stack(l))
795
59.8k
        .nth(i)
796
59.8k
        .unwrap();
797
59.8k
    let control = &builder.allocs.controls[builder.allocs.controls.len() - 1 - default_target];
798
59.8k
799
59.8k
    let targets = builder
800
59.8k
        .allocs
801
59.8k
        .controls
802
59.8k
        .iter()
803
59.8k
        .rev()
804
59.8k
        .enumerate()
805
59.8k
        .filter(|(_, l)| l.label_types() == control.label_types())
806
59.8k
        .map(|(t, _)| t as u32)
807
59.8k
        .collect();
808
59.8k
809
59.8k
    let tys = control.label_types().to_vec();
810
59.8k
    builder.pop_operands(&tys);
811
59.8k
812
59.8k
    Ok(Instruction::BrTable(targets, default_target as u32))
813
59.8k
}
Unexecuted instantiation: wasm_smith::code_builder::br_table::<wasm_smith::config::SwarmConfig>
814
815
#[inline]
816
15.9M
fn return_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
817
15.9M
    builder.label_types_on_stack(&builder.allocs.controls[0])
818
15.9M
}
wasm_smith::code_builder::return_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
816
7.19M
fn return_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
817
7.19M
    builder.label_types_on_stack(&builder.allocs.controls[0])
818
7.19M
}
wasm_smith::code_builder::return_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
816
8.74M
fn return_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
817
8.74M
    builder.label_types_on_stack(&builder.allocs.controls[0])
818
8.74M
}
819
820
160k
fn r#return<C: Config>(
821
160k
    _: &mut Unstructured,
822
160k
    _: &ConfiguredModule<C>,
823
160k
    builder: &mut CodeBuilder<C>,
824
160k
) -> Result<Instruction> {
825
160k
    let results = builder.allocs.controls[0].results.clone();
826
160k
    builder.pop_operands(&results);
827
160k
    Ok(Instruction::Return)
828
160k
}
wasm_smith::code_builder::return::<wasm_smith::config::SwarmConfig>
Line
Count
Source
820
76.1k
fn r#return<C: Config>(
821
76.1k
    _: &mut Unstructured,
822
76.1k
    _: &ConfiguredModule<C>,
823
76.1k
    builder: &mut CodeBuilder<C>,
824
76.1k
) -> Result<Instruction> {
825
76.1k
    let results = builder.allocs.controls[0].results.clone();
826
76.1k
    builder.pop_operands(&results);
827
76.1k
    Ok(Instruction::Return)
828
76.1k
}
wasm_smith::code_builder::return::<wasm_smith::config::DefaultConfig>
Line
Count
Source
820
84.3k
fn r#return<C: Config>(
821
84.3k
    _: &mut Unstructured,
822
84.3k
    _: &ConfiguredModule<C>,
823
84.3k
    builder: &mut CodeBuilder<C>,
824
84.3k
) -> Result<Instruction> {
825
84.3k
    let results = builder.allocs.controls[0].results.clone();
826
84.3k
    builder.pop_operands(&results);
827
84.3k
    Ok(Instruction::Return)
828
84.3k
}
829
830
#[inline]
831
15.9M
fn call_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
832
15.9M
    builder
833
15.9M
        .allocs
834
15.9M
        .functions
835
15.9M
        .keys()
836
20.9M
        .any(|k| builder.types_on_stack(k))
wasm_smith::code_builder::call_valid::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
836
11.0M
        .any(|k| builder.types_on_stack(k))
wasm_smith::code_builder::call_valid::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
836
9.91M
        .any(|k| builder.types_on_stack(k))
837
15.9M
}
wasm_smith::code_builder::call_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
831
7.19M
fn call_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
832
7.19M
    builder
833
7.19M
        .allocs
834
7.19M
        .functions
835
7.19M
        .keys()
836
7.19M
        .any(|k| builder.types_on_stack(k))
837
7.19M
}
wasm_smith::code_builder::call_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
831
8.74M
fn call_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
832
8.74M
    builder
833
8.74M
        .allocs
834
8.74M
        .functions
835
8.74M
        .keys()
836
8.74M
        .any(|k| builder.types_on_stack(k))
837
8.74M
}
Unexecuted instantiation: wasm_smith::code_builder::call_valid::<wasm_smith::config::SwarmConfig>
838
839
185k
fn call<C: Config>(
840
185k
    u: &mut Unstructured,
841
185k
    module: &ConfiguredModule<C>,
842
185k
    builder: &mut CodeBuilder<C>,
843
185k
) -> Result<Instruction> {
844
185k
    let candidates = builder
845
185k
        .allocs
846
185k
        .functions
847
185k
        .iter()
848
602k
        .filter(|(k, _)| builder.types_on_stack(k))
wasm_smith::code_builder::call::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
848
412k
        .filter(|(k, _)| builder.types_on_stack(k))
wasm_smith::code_builder::call::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
848
190k
        .filter(|(k, _)| builder.types_on_stack(k))
849
195k
        .flat_map(|(_, v)| v.iter().copied())
wasm_smith::code_builder::call::<wasm_smith::config::SwarmConfig>::{closure#1}
Line
Count
Source
849
107k
        .flat_map(|(_, v)| v.iter().copied())
wasm_smith::code_builder::call::<wasm_smith::config::DefaultConfig>::{closure#1}
Line
Count
Source
849
88.0k
        .flat_map(|(_, v)| v.iter().copied())
850
185k
        .collect::<Vec<_>>();
851
185k
    assert!(candidates.len() > 0);
852
185k
    let i = u.int_in_range(0..=candidates.len() - 1)?;
853
185k
    let (func_idx, ty) = module.funcs().nth(candidates[i] as usize).unwrap();
854
185k
    builder.pop_operands(&ty.params);
855
185k
    builder.push_operands(&ty.results);
856
185k
    Ok(Instruction::Call(func_idx as u32))
857
185k
}
wasm_smith::code_builder::call::<wasm_smith::config::SwarmConfig>
Line
Count
Source
839
104k
fn call<C: Config>(
840
104k
    u: &mut Unstructured,
841
104k
    module: &ConfiguredModule<C>,
842
104k
    builder: &mut CodeBuilder<C>,
843
104k
) -> Result<Instruction> {
844
104k
    let candidates = builder
845
104k
        .allocs
846
104k
        .functions
847
104k
        .iter()
848
104k
        .filter(|(k, _)| builder.types_on_stack(k))
849
104k
        .flat_map(|(_, v)| v.iter().copied())
850
104k
        .collect::<Vec<_>>();
851
104k
    assert!(candidates.len() > 0);
852
104k
    let i = u.int_in_range(0..=candidates.len() - 1)?;
853
104k
    let (func_idx, ty) = module.funcs().nth(candidates[i] as usize).unwrap();
854
104k
    builder.pop_operands(&ty.params);
855
104k
    builder.push_operands(&ty.results);
856
104k
    Ok(Instruction::Call(func_idx as u32))
857
104k
}
wasm_smith::code_builder::call::<wasm_smith::config::DefaultConfig>
Line
Count
Source
839
80.7k
fn call<C: Config>(
840
80.7k
    u: &mut Unstructured,
841
80.7k
    module: &ConfiguredModule<C>,
842
80.7k
    builder: &mut CodeBuilder<C>,
843
80.7k
) -> Result<Instruction> {
844
80.7k
    let candidates = builder
845
80.7k
        .allocs
846
80.7k
        .functions
847
80.7k
        .iter()
848
80.7k
        .filter(|(k, _)| builder.types_on_stack(k))
849
80.7k
        .flat_map(|(_, v)| v.iter().copied())
850
80.7k
        .collect::<Vec<_>>();
851
80.7k
    assert!(candidates.len() > 0);
852
80.7k
    let i = u.int_in_range(0..=candidates.len() - 1)?;
853
80.6k
    let (func_idx, ty) = module.funcs().nth(candidates[i] as usize).unwrap();
854
80.6k
    builder.pop_operands(&ty.params);
855
80.6k
    builder.push_operands(&ty.results);
856
80.6k
    Ok(Instruction::Call(func_idx as u32))
857
80.7k
}
Unexecuted instantiation: wasm_smith::code_builder::call::<wasm_smith::config::SwarmConfig>
858
859
#[inline]
860
15.9M
fn call_indirect_valid<C: Config>(
861
15.9M
    module: &ConfiguredModule<C>,
862
15.9M
    builder: &mut CodeBuilder<C>,
863
15.9M
) -> bool {
864
15.9M
    if builder.allocs.funcref_tables.is_empty() || !builder.type_on_stack(ValType::I32) {
865
13.7M
        return false;
866
2.20M
    }
867
2.20M
    let ty = builder.allocs.operands.pop().unwrap();
868
2.20M
    let is_valid = module
869
2.20M
        .func_types()
870
25.3M
        .any(|(_, ty)| builder.types_on_stack(&ty.params));
wasm_smith::code_builder::call_indirect_valid::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
870
22.8M
        .any(|(_, ty)| builder.types_on_stack(&ty.params));
wasm_smith::code_builder::call_indirect_valid::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
870
2.53M
        .any(|(_, ty)| builder.types_on_stack(&ty.params));
871
2.20M
    builder.allocs.operands.push(ty);
872
2.20M
    is_valid
873
15.9M
}
wasm_smith::code_builder::call_indirect_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
860
7.19M
fn call_indirect_valid<C: Config>(
861
7.19M
    module: &ConfiguredModule<C>,
862
7.19M
    builder: &mut CodeBuilder<C>,
863
7.19M
) -> bool {
864
7.19M
    if builder.allocs.funcref_tables.is_empty() || !builder.type_on_stack(ValType::I32) {
865
6.39M
        return false;
866
799k
    }
867
799k
    let ty = builder.allocs.operands.pop().unwrap();
868
799k
    let is_valid = module
869
799k
        .func_types()
870
799k
        .any(|(_, ty)| builder.types_on_stack(&ty.params));
871
799k
    builder.allocs.operands.push(ty);
872
799k
    is_valid
873
7.19M
}
wasm_smith::code_builder::call_indirect_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
860
8.74M
fn call_indirect_valid<C: Config>(
861
8.74M
    module: &ConfiguredModule<C>,
862
8.74M
    builder: &mut CodeBuilder<C>,
863
8.74M
) -> bool {
864
8.74M
    if builder.allocs.funcref_tables.is_empty() || !builder.type_on_stack(ValType::I32) {
865
7.33M
        return false;
866
1.40M
    }
867
1.40M
    let ty = builder.allocs.operands.pop().unwrap();
868
1.40M
    let is_valid = module
869
1.40M
        .func_types()
870
1.40M
        .any(|(_, ty)| builder.types_on_stack(&ty.params));
871
1.40M
    builder.allocs.operands.push(ty);
872
1.40M
    is_valid
873
8.74M
}
Unexecuted instantiation: wasm_smith::code_builder::call_indirect_valid::<wasm_smith::config::SwarmConfig>
874
875
38.0k
fn call_indirect<C: Config>(
876
38.0k
    u: &mut Unstructured,
877
38.0k
    module: &ConfiguredModule<C>,
878
38.0k
    builder: &mut CodeBuilder<C>,
879
38.0k
) -> Result<Instruction> {
880
38.0k
    builder.pop_operands(&[ValType::I32]);
881
38.0k
882
38.0k
    let choices = module
883
38.0k
        .func_types()
884
630k
        .filter(|(_, ty)| builder.types_on_stack(&ty.params))
wasm_smith::code_builder::call_indirect::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
884
499k
        .filter(|(_, ty)| builder.types_on_stack(&ty.params))
wasm_smith::code_builder::call_indirect::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
884
131k
        .filter(|(_, ty)| builder.types_on_stack(&ty.params))
885
38.0k
        .collect::<Vec<_>>();
886
38.0k
    let (type_idx, ty) = u.choose(&choices)?;
887
38.0k
    builder.pop_operands(&ty.params);
888
38.0k
    builder.push_operands(&ty.results);
889
38.0k
    let table = *u.choose(&builder.allocs.funcref_tables)?;
890
38.0k
    Ok(Instruction::CallIndirect {
891
38.0k
        ty: *type_idx as u32,
892
38.0k
        table,
893
38.0k
    })
894
38.0k
}
wasm_smith::code_builder::call_indirect::<wasm_smith::config::SwarmConfig>
Line
Count
Source
875
19.2k
fn call_indirect<C: Config>(
876
19.2k
    u: &mut Unstructured,
877
19.2k
    module: &ConfiguredModule<C>,
878
19.2k
    builder: &mut CodeBuilder<C>,
879
19.2k
) -> Result<Instruction> {
880
19.2k
    builder.pop_operands(&[ValType::I32]);
881
19.2k
882
19.2k
    let choices = module
883
19.2k
        .func_types()
884
19.2k
        .filter(|(_, ty)| builder.types_on_stack(&ty.params))
885
19.2k
        .collect::<Vec<_>>();
886
19.2k
    let (type_idx, ty) = u.choose(&choices)?;
887
19.2k
    builder.pop_operands(&ty.params);
888
19.2k
    builder.push_operands(&ty.results);
889
19.2k
    let table = *u.choose(&builder.allocs.funcref_tables)?;
890
19.1k
    Ok(Instruction::CallIndirect {
891
19.1k
        ty: *type_idx as u32,
892
19.1k
        table,
893
19.1k
    })
894
19.2k
}
wasm_smith::code_builder::call_indirect::<wasm_smith::config::DefaultConfig>
Line
Count
Source
875
18.8k
fn call_indirect<C: Config>(
876
18.8k
    u: &mut Unstructured,
877
18.8k
    module: &ConfiguredModule<C>,
878
18.8k
    builder: &mut CodeBuilder<C>,
879
18.8k
) -> Result<Instruction> {
880
18.8k
    builder.pop_operands(&[ValType::I32]);
881
18.8k
882
18.8k
    let choices = module
883
18.8k
        .func_types()
884
18.8k
        .filter(|(_, ty)| builder.types_on_stack(&ty.params))
885
18.8k
        .collect::<Vec<_>>();
886
18.8k
    let (type_idx, ty) = u.choose(&choices)?;
887
18.8k
    builder.pop_operands(&ty.params);
888
18.8k
    builder.push_operands(&ty.results);
889
18.8k
    let table = *u.choose(&builder.allocs.funcref_tables)?;
890
18.8k
    Ok(Instruction::CallIndirect {
891
18.8k
        ty: *type_idx as u32,
892
18.8k
        table,
893
18.8k
    })
894
18.8k
}
Unexecuted instantiation: wasm_smith::code_builder::call_indirect::<wasm_smith::config::SwarmConfig>
895
896
#[inline]
897
15.9M
fn drop_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
898
15.9M
    !builder.operands().is_empty()
899
15.9M
}
wasm_smith::code_builder::drop_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
897
7.19M
fn drop_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
898
7.19M
    !builder.operands().is_empty()
899
7.19M
}
wasm_smith::code_builder::drop_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
897
8.74M
fn drop_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
898
8.74M
    !builder.operands().is_empty()
899
8.74M
}
900
901
180k
fn drop<C: Config>(
902
180k
    _: &mut Unstructured,
903
180k
    _: &ConfiguredModule<C>,
904
180k
    builder: &mut CodeBuilder<C>,
905
180k
) -> Result<Instruction> {
906
180k
    builder.allocs.operands.pop();
907
180k
    Ok(Instruction::Drop)
908
180k
}
wasm_smith::code_builder::drop::<wasm_smith::config::SwarmConfig>
Line
Count
Source
901
99.7k
fn drop<C: Config>(
902
99.7k
    _: &mut Unstructured,
903
99.7k
    _: &ConfiguredModule<C>,
904
99.7k
    builder: &mut CodeBuilder<C>,
905
99.7k
) -> Result<Instruction> {
906
99.7k
    builder.allocs.operands.pop();
907
99.7k
    Ok(Instruction::Drop)
908
99.7k
}
wasm_smith::code_builder::drop::<wasm_smith::config::DefaultConfig>
Line
Count
Source
901
80.9k
fn drop<C: Config>(
902
80.9k
    _: &mut Unstructured,
903
80.9k
    _: &ConfiguredModule<C>,
904
80.9k
    builder: &mut CodeBuilder<C>,
905
80.9k
) -> Result<Instruction> {
906
80.9k
    builder.allocs.operands.pop();
907
80.9k
    Ok(Instruction::Drop)
908
80.9k
}
909
910
#[inline]
911
15.9M
fn select_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
912
15.9M
    if !(builder.operands().len() >= 3 && builder.type_on_stack(ValType::I32)) {
913
14.8M
        return false;
914
1.07M
    }
915
1.07M
    let t = builder.operands()[builder.operands().len() - 2];
916
1.07M
    let u = builder.operands()[builder.operands().len() - 3];
917
1.07M
    t.is_none() || u.is_none() || t == u
918
15.9M
}
wasm_smith::code_builder::select_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
911
7.19M
fn select_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
912
7.19M
    if !(builder.operands().len() >= 3 && builder.type_on_stack(ValType::I32)) {
913
6.41M
        return false;
914
775k
    }
915
775k
    let t = builder.operands()[builder.operands().len() - 2];
916
775k
    let u = builder.operands()[builder.operands().len() - 3];
917
775k
    t.is_none() || u.is_none() || t == u
918
7.19M
}
wasm_smith::code_builder::select_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
911
8.74M
fn select_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
912
8.74M
    if !(builder.operands().len() >= 3 && builder.type_on_stack(ValType::I32)) {
913
8.44M
        return false;
914
302k
    }
915
302k
    let t = builder.operands()[builder.operands().len() - 2];
916
302k
    let u = builder.operands()[builder.operands().len() - 3];
917
302k
    t.is_none() || u.is_none() || t == u
918
8.74M
}
919
920
9.33k
fn select<C: Config>(
921
9.33k
    _: &mut Unstructured,
922
9.33k
    _: &ConfiguredModule<C>,
923
9.33k
    builder: &mut CodeBuilder<C>,
924
9.33k
) -> Result<Instruction> {
925
9.33k
    builder.allocs.operands.pop();
926
9.33k
    let t = builder.allocs.operands.pop().unwrap();
927
9.33k
    let u = builder.allocs.operands.pop().unwrap();
928
9.33k
    let ty = t.or(u);
929
9.33k
    builder.allocs.operands.push(ty);
930
9.33k
    match ty {
931
9.33k
        Some(ty @ ValType::ExternRef) | Some(ty @ ValType::FuncRef) => {
932
1.04k
            Ok(Instruction::TypedSelect(ty))
933
        }
934
        Some(ValType::I32) | Some(ValType::I64) | Some(ValType::F32) | Some(ValType::F64)
935
8.28k
        | None => Ok(Instruction::Select),
936
    }
937
9.33k
}
wasm_smith::code_builder::select::<wasm_smith::config::SwarmConfig>
Line
Count
Source
920
5.20k
fn select<C: Config>(
921
5.20k
    _: &mut Unstructured,
922
5.20k
    _: &ConfiguredModule<C>,
923
5.20k
    builder: &mut CodeBuilder<C>,
924
5.20k
) -> Result<Instruction> {
925
5.20k
    builder.allocs.operands.pop();
926
5.20k
    let t = builder.allocs.operands.pop().unwrap();
927
5.20k
    let u = builder.allocs.operands.pop().unwrap();
928
5.20k
    let ty = t.or(u);
929
5.20k
    builder.allocs.operands.push(ty);
930
5.20k
    match ty {
931
5.20k
        Some(ty @ ValType::ExternRef) | Some(ty @ ValType::FuncRef) => {
932
1.04k
            Ok(Instruction::TypedSelect(ty))
933
        }
934
        Some(ValType::I32) | Some(ValType::I64) | Some(ValType::F32) | Some(ValType::F64)
935
4.16k
        | None => Ok(Instruction::Select),
936
    }
937
5.20k
}
wasm_smith::code_builder::select::<wasm_smith::config::DefaultConfig>
Line
Count
Source
920
4.12k
fn select<C: Config>(
921
4.12k
    _: &mut Unstructured,
922
4.12k
    _: &ConfiguredModule<C>,
923
4.12k
    builder: &mut CodeBuilder<C>,
924
4.12k
) -> Result<Instruction> {
925
4.12k
    builder.allocs.operands.pop();
926
4.12k
    let t = builder.allocs.operands.pop().unwrap();
927
4.12k
    let u = builder.allocs.operands.pop().unwrap();
928
4.12k
    let ty = t.or(u);
929
4.12k
    builder.allocs.operands.push(ty);
930
4.12k
    match ty {
931
4.12k
        Some(ty @ ValType::ExternRef) | Some(ty @ ValType::FuncRef) => {
932
0
            Ok(Instruction::TypedSelect(ty))
933
        }
934
        Some(ValType::I32) | Some(ValType::I64) | Some(ValType::F32) | Some(ValType::F64)
935
4.12k
        | None => Ok(Instruction::Select),
936
    }
937
4.12k
}
938
939
#[inline]
940
15.9M
fn local_get_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
941
15.9M
    !builder.func_ty.params.is_empty() || !builder.locals.is_empty()
942
15.9M
}
wasm_smith::code_builder::local_get_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
940
7.19M
fn local_get_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
941
7.19M
    !builder.func_ty.params.is_empty() || !builder.locals.is_empty()
942
7.19M
}
wasm_smith::code_builder::local_get_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
940
8.74M
fn local_get_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
941
8.74M
    !builder.func_ty.params.is_empty() || !builder.locals.is_empty()
942
8.74M
}
943
944
386k
fn local_get<C: Config>(
945
386k
    u: &mut Unstructured,
946
386k
    _: &ConfiguredModule<C>,
947
386k
    builder: &mut CodeBuilder<C>,
948
386k
) -> Result<Instruction> {
949
386k
    let num_params = builder.func_ty.params.len();
950
386k
    let n = num_params + builder.locals.len();
951
    debug_assert!(n > 0);
952
386k
    let i = u.int_in_range(0..=n - 1)?;
953
386k
    builder.allocs.operands.push(Some(if i < num_params {
954
148k
        builder.func_ty.params[i]
955
    } else {
956
237k
        builder.locals[i - num_params]
957
    }));
958
386k
    Ok(Instruction::LocalGet(i as u32))
959
386k
}
wasm_smith::code_builder::local_get::<wasm_smith::config::SwarmConfig>
Line
Count
Source
944
200k
fn local_get<C: Config>(
945
200k
    u: &mut Unstructured,
946
200k
    _: &ConfiguredModule<C>,
947
200k
    builder: &mut CodeBuilder<C>,
948
200k
) -> Result<Instruction> {
949
200k
    let num_params = builder.func_ty.params.len();
950
200k
    let n = num_params + builder.locals.len();
951
    debug_assert!(n > 0);
952
200k
    let i = u.int_in_range(0..=n - 1)?;
953
200k
    builder.allocs.operands.push(Some(if i < num_params {
954
89.2k
        builder.func_ty.params[i]
955
    } else {
956
111k
        builder.locals[i - num_params]
957
    }));
958
200k
    Ok(Instruction::LocalGet(i as u32))
959
200k
}
wasm_smith::code_builder::local_get::<wasm_smith::config::DefaultConfig>
Line
Count
Source
944
185k
fn local_get<C: Config>(
945
185k
    u: &mut Unstructured,
946
185k
    _: &ConfiguredModule<C>,
947
185k
    builder: &mut CodeBuilder<C>,
948
185k
) -> Result<Instruction> {
949
185k
    let num_params = builder.func_ty.params.len();
950
185k
    let n = num_params + builder.locals.len();
951
    debug_assert!(n > 0);
952
185k
    let i = u.int_in_range(0..=n - 1)?;
953
185k
    builder.allocs.operands.push(Some(if i < num_params {
954
59.7k
        builder.func_ty.params[i]
955
    } else {
956
126k
        builder.locals[i - num_params]
957
    }));
958
185k
    Ok(Instruction::LocalGet(i as u32))
959
185k
}
Unexecuted instantiation: wasm_smith::code_builder::local_get::<wasm_smith::config::SwarmConfig>
960
961
#[inline]
962
31.8M
fn local_set_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
963
31.8M
    builder
964
31.8M
        .func_ty
965
31.8M
        .params
966
31.8M
        .iter()
967
31.8M
        .chain(builder.locals)
968
1.33G
        .any(|ty| builder.type_on_stack(*ty))
wasm_smith::code_builder::local_set_valid::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
968
404M
        .any(|ty| builder.type_on_stack(*ty))
wasm_smith::code_builder::local_set_valid::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
968
932M
        .any(|ty| builder.type_on_stack(*ty))
969
31.8M
}
wasm_smith::code_builder::local_set_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
962
14.3M
fn local_set_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
963
14.3M
    builder
964
14.3M
        .func_ty
965
14.3M
        .params
966
14.3M
        .iter()
967
14.3M
        .chain(builder.locals)
968
14.3M
        .any(|ty| builder.type_on_stack(*ty))
969
14.3M
}
wasm_smith::code_builder::local_set_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
962
17.4M
fn local_set_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
963
17.4M
    builder
964
17.4M
        .func_ty
965
17.4M
        .params
966
17.4M
        .iter()
967
17.4M
        .chain(builder.locals)
968
17.4M
        .any(|ty| builder.type_on_stack(*ty))
969
17.4M
}
Unexecuted instantiation: wasm_smith::code_builder::local_set_valid::<wasm_smith::config::SwarmConfig>
970
971
83.2k
fn local_set<C: Config>(
972
83.2k
    u: &mut Unstructured,
973
83.2k
    _: &ConfiguredModule<C>,
974
83.2k
    builder: &mut CodeBuilder<C>,
975
83.2k
) -> Result<Instruction> {
976
83.2k
    let n = builder
977
83.2k
        .func_ty
978
83.2k
        .params
979
83.2k
        .iter()
980
83.2k
        .chain(builder.locals)
981
4.39M
        .filter(|ty| builder.type_on_stack(**ty))
wasm_smith::code_builder::local_set::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
981
2.67M
        .filter(|ty| builder.type_on_stack(**ty))
wasm_smith::code_builder::local_set::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
981
1.71M
        .filter(|ty| builder.type_on_stack(**ty))
982
83.2k
        .count();
983
    debug_assert!(n > 0);
984
83.2k
    let i = u.int_in_range(0..=n - 1)?;
985
83.2k
    let (j, _) = builder
986
83.2k
        .func_ty
987
83.2k
        .params
988
83.2k
        .iter()
989
83.2k
        .chain(builder.locals)
990
83.2k
        .enumerate()
991
1.98M
        .filter(|(_, ty)| builder.type_on_stack(**ty))
wasm_smith::code_builder::local_set::<wasm_smith::config::SwarmConfig>::{closure#1}
Line
Count
Source
991
1.45M
        .filter(|(_, ty)| builder.type_on_stack(**ty))
wasm_smith::code_builder::local_set::<wasm_smith::config::DefaultConfig>::{closure#1}
Line
Count
Source
991
530k
        .filter(|(_, ty)| builder.type_on_stack(**ty))
992
83.2k
        .nth(i)
993
83.2k
        .unwrap();
994
83.2k
    builder.allocs.operands.pop();
995
83.2k
    Ok(Instruction::LocalSet(j as u32))
996
83.2k
}
wasm_smith::code_builder::local_set::<wasm_smith::config::SwarmConfig>
Line
Count
Source
971
53.8k
fn local_set<C: Config>(
972
53.8k
    u: &mut Unstructured,
973
53.8k
    _: &ConfiguredModule<C>,
974
53.8k
    builder: &mut CodeBuilder<C>,
975
53.8k
) -> Result<Instruction> {
976
53.8k
    let n = builder
977
53.8k
        .func_ty
978
53.8k
        .params
979
53.8k
        .iter()
980
53.8k
        .chain(builder.locals)
981
53.8k
        .filter(|ty| builder.type_on_stack(**ty))
982
53.8k
        .count();
983
    debug_assert!(n > 0);
984
53.8k
    let i = u.int_in_range(0..=n - 1)?;
985
53.8k
    let (j, _) = builder
986
53.8k
        .func_ty
987
53.8k
        .params
988
53.8k
        .iter()
989
53.8k
        .chain(builder.locals)
990
53.8k
        .enumerate()
991
53.8k
        .filter(|(_, ty)| builder.type_on_stack(**ty))
992
53.8k
        .nth(i)
993
53.8k
        .unwrap();
994
53.8k
    builder.allocs.operands.pop();
995
53.8k
    Ok(Instruction::LocalSet(j as u32))
996
53.8k
}
wasm_smith::code_builder::local_set::<wasm_smith::config::DefaultConfig>
Line
Count
Source
971
29.4k
fn local_set<C: Config>(
972
29.4k
    u: &mut Unstructured,
973
29.4k
    _: &ConfiguredModule<C>,
974
29.4k
    builder: &mut CodeBuilder<C>,
975
29.4k
) -> Result<Instruction> {
976
29.4k
    let n = builder
977
29.4k
        .func_ty
978
29.4k
        .params
979
29.4k
        .iter()
980
29.4k
        .chain(builder.locals)
981
29.4k
        .filter(|ty| builder.type_on_stack(**ty))
982
29.4k
        .count();
983
    debug_assert!(n > 0);
984
29.4k
    let i = u.int_in_range(0..=n - 1)?;
985
29.4k
    let (j, _) = builder
986
29.4k
        .func_ty
987
29.4k
        .params
988
29.4k
        .iter()
989
29.4k
        .chain(builder.locals)
990
29.4k
        .enumerate()
991
29.4k
        .filter(|(_, ty)| builder.type_on_stack(**ty))
992
29.4k
        .nth(i)
993
29.4k
        .unwrap();
994
29.4k
    builder.allocs.operands.pop();
995
29.4k
    Ok(Instruction::LocalSet(j as u32))
996
29.4k
}
Unexecuted instantiation: wasm_smith::code_builder::local_set::<wasm_smith::config::SwarmConfig>
997
998
209k
fn local_tee<C: Config>(
999
209k
    u: &mut Unstructured,
1000
209k
    _: &ConfiguredModule<C>,
1001
209k
    builder: &mut CodeBuilder<C>,
1002
209k
) -> Result<Instruction> {
1003
209k
    let n = builder
1004
209k
        .func_ty
1005
209k
        .params
1006
209k
        .iter()
1007
209k
        .chain(builder.locals)
1008
14.2M
        .filter(|ty| builder.type_on_stack(**ty))
wasm_smith::code_builder::local_tee::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
1008
9.64M
        .filter(|ty| builder.type_on_stack(**ty))
wasm_smith::code_builder::local_tee::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
1008
4.58M
        .filter(|ty| builder.type_on_stack(**ty))
1009
209k
        .count();
1010
    debug_assert!(n > 0);
1011
209k
    let i = u.int_in_range(0..=n - 1)?;
1012
209k
    let (j, _) = builder
1013
209k
        .func_ty
1014
209k
        .params
1015
209k
        .iter()
1016
209k
        .chain(builder.locals)
1017
209k
        .enumerate()
1018
4.69M
        .filter(|(_, ty)| builder.type_on_stack(**ty))
wasm_smith::code_builder::local_tee::<wasm_smith::config::SwarmConfig>::{closure#1}
Line
Count
Source
1018
3.02M
        .filter(|(_, ty)| builder.type_on_stack(**ty))
wasm_smith::code_builder::local_tee::<wasm_smith::config::DefaultConfig>::{closure#1}
Line
Count
Source
1018
1.67M
        .filter(|(_, ty)| builder.type_on_stack(**ty))
1019
209k
        .nth(i)
1020
209k
        .unwrap();
1021
209k
    Ok(Instruction::LocalTee(j as u32))
1022
209k
}
wasm_smith::code_builder::local_tee::<wasm_smith::config::SwarmConfig>
Line
Count
Source
998
139k
fn local_tee<C: Config>(
999
139k
    u: &mut Unstructured,
1000
139k
    _: &ConfiguredModule<C>,
1001
139k
    builder: &mut CodeBuilder<C>,
1002
139k
) -> Result<Instruction> {
1003
139k
    let n = builder
1004
139k
        .func_ty
1005
139k
        .params
1006
139k
        .iter()
1007
139k
        .chain(builder.locals)
1008
139k
        .filter(|ty| builder.type_on_stack(**ty))
1009
139k
        .count();
1010
    debug_assert!(n > 0);
1011
139k
    let i = u.int_in_range(0..=n - 1)?;
1012
139k
    let (j, _) = builder
1013
139k
        .func_ty
1014
139k
        .params
1015
139k
        .iter()
1016
139k
        .chain(builder.locals)
1017
139k
        .enumerate()
1018
139k
        .filter(|(_, ty)| builder.type_on_stack(**ty))
1019
139k
        .nth(i)
1020
139k
        .unwrap();
1021
139k
    Ok(Instruction::LocalTee(j as u32))
1022
139k
}
wasm_smith::code_builder::local_tee::<wasm_smith::config::DefaultConfig>
Line
Count
Source
998
70.0k
fn local_tee<C: Config>(
999
70.0k
    u: &mut Unstructured,
1000
70.0k
    _: &ConfiguredModule<C>,
1001
70.0k
    builder: &mut CodeBuilder<C>,
1002
70.0k
) -> Result<Instruction> {
1003
70.0k
    let n = builder
1004
70.0k
        .func_ty
1005
70.0k
        .params
1006
70.0k
        .iter()
1007
70.0k
        .chain(builder.locals)
1008
70.0k
        .filter(|ty| builder.type_on_stack(**ty))
1009
70.0k
        .count();
1010
    debug_assert!(n > 0);
1011
70.0k
    let i = u.int_in_range(0..=n - 1)?;
1012
70.0k
    let (j, _) = builder
1013
70.0k
        .func_ty
1014
70.0k
        .params
1015
70.0k
        .iter()
1016
70.0k
        .chain(builder.locals)
1017
70.0k
        .enumerate()
1018
70.0k
        .filter(|(_, ty)| builder.type_on_stack(**ty))
1019
70.0k
        .nth(i)
1020
70.0k
        .unwrap();
1021
70.0k
    Ok(Instruction::LocalTee(j as u32))
1022
70.0k
}
Unexecuted instantiation: wasm_smith::code_builder::local_tee::<wasm_smith::config::SwarmConfig>
1023
1024
#[inline]
1025
15.9M
fn global_get_valid<C: Config>(module: &ConfiguredModule<C>, _: &mut CodeBuilder<C>) -> bool {
1026
15.9M
    module.globals.len() > 0
1027
15.9M
}
wasm_smith::code_builder::global_get_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1025
7.19M
fn global_get_valid<C: Config>(module: &ConfiguredModule<C>, _: &mut CodeBuilder<C>) -> bool {
1026
7.19M
    module.globals.len() > 0
1027
7.19M
}
wasm_smith::code_builder::global_get_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1025
8.74M
fn global_get_valid<C: Config>(module: &ConfiguredModule<C>, _: &mut CodeBuilder<C>) -> bool {
1026
8.74M
    module.globals.len() > 0
1027
8.74M
}
1028
1029
320k
fn global_get<C: Config>(
1030
320k
    u: &mut Unstructured,
1031
320k
    module: &ConfiguredModule<C>,
1032
320k
    builder: &mut CodeBuilder<C>,
1033
320k
) -> Result<Instruction> {
1034
    debug_assert!(module.globals.len() > 0);
1035
320k
    let global_idx = u.int_in_range(0..=module.globals.len() - 1)?;
1036
320k
    builder
1037
320k
        .allocs
1038
320k
        .operands
1039
320k
        .push(Some(module.globals[global_idx].val_type));
1040
320k
    Ok(Instruction::GlobalGet(global_idx as u32))
1041
320k
}
wasm_smith::code_builder::global_get::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1029
175k
fn global_get<C: Config>(
1030
175k
    u: &mut Unstructured,
1031
175k
    module: &ConfiguredModule<C>,
1032
175k
    builder: &mut CodeBuilder<C>,
1033
175k
) -> Result<Instruction> {
1034
    debug_assert!(module.globals.len() > 0);
1035
175k
    let global_idx = u.int_in_range(0..=module.globals.len() - 1)?;
1036
175k
    builder
1037
175k
        .allocs
1038
175k
        .operands
1039
175k
        .push(Some(module.globals[global_idx].val_type));
1040
175k
    Ok(Instruction::GlobalGet(global_idx as u32))
1041
175k
}
wasm_smith::code_builder::global_get::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1029
145k
fn global_get<C: Config>(
1030
145k
    u: &mut Unstructured,
1031
145k
    module: &ConfiguredModule<C>,
1032
145k
    builder: &mut CodeBuilder<C>,
1033
145k
) -> Result<Instruction> {
1034
    debug_assert!(module.globals.len() > 0);
1035
145k
    let global_idx = u.int_in_range(0..=module.globals.len() - 1)?;
1036
145k
    builder
1037
145k
        .allocs
1038
145k
        .operands
1039
145k
        .push(Some(module.globals[global_idx].val_type));
1040
145k
    Ok(Instruction::GlobalGet(global_idx as u32))
1041
145k
}
Unexecuted instantiation: wasm_smith::code_builder::global_get::<wasm_smith::config::SwarmConfig>
1042
1043
#[inline]
1044
15.9M
fn global_set_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1045
15.9M
    builder
1046
15.9M
        .allocs
1047
15.9M
        .mutable_globals
1048
15.9M
        .iter()
1049
17.4M
        .any(|(ty, _)| builder.type_on_stack(*ty))
wasm_smith::code_builder::global_set_valid::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
1049
8.85M
        .any(|(ty, _)| builder.type_on_stack(*ty))
wasm_smith::code_builder::global_set_valid::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
1049
8.54M
        .any(|(ty, _)| builder.type_on_stack(*ty))
1050
15.9M
}
wasm_smith::code_builder::global_set_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1044
7.19M
fn global_set_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1045
7.19M
    builder
1046
7.19M
        .allocs
1047
7.19M
        .mutable_globals
1048
7.19M
        .iter()
1049
7.19M
        .any(|(ty, _)| builder.type_on_stack(*ty))
1050
7.19M
}
wasm_smith::code_builder::global_set_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1044
8.74M
fn global_set_valid<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1045
8.74M
    builder
1046
8.74M
        .allocs
1047
8.74M
        .mutable_globals
1048
8.74M
        .iter()
1049
8.74M
        .any(|(ty, _)| builder.type_on_stack(*ty))
1050
8.74M
}
Unexecuted instantiation: wasm_smith::code_builder::global_set_valid::<wasm_smith::config::SwarmConfig>
1051
1052
110k
fn global_set<C: Config>(
1053
110k
    u: &mut Unstructured,
1054
110k
    _: &ConfiguredModule<C>,
1055
110k
    builder: &mut CodeBuilder<C>,
1056
110k
) -> Result<Instruction> {
1057
110k
    let candidates = builder
1058
110k
        .allocs
1059
110k
        .mutable_globals
1060
110k
        .iter()
1061
171k
        .find(|(ty, _)| builder.type_on_stack(**ty))
wasm_smith::code_builder::global_set::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
1061
122k
        .find(|(ty, _)| builder.type_on_stack(**ty))
wasm_smith::code_builder::global_set::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
1061
49.3k
        .find(|(ty, _)| builder.type_on_stack(**ty))
1062
110k
        .unwrap()
1063
110k
        .1;
1064
110k
    let i = u.int_in_range(0..=candidates.len() - 1)?;
1065
110k
    builder.allocs.operands.pop();
1066
110k
    Ok(Instruction::GlobalSet(candidates[i]))
1067
110k
}
wasm_smith::code_builder::global_set::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1052
69.3k
fn global_set<C: Config>(
1053
69.3k
    u: &mut Unstructured,
1054
69.3k
    _: &ConfiguredModule<C>,
1055
69.3k
    builder: &mut CodeBuilder<C>,
1056
69.3k
) -> Result<Instruction> {
1057
69.3k
    let candidates = builder
1058
69.3k
        .allocs
1059
69.3k
        .mutable_globals
1060
69.3k
        .iter()
1061
69.3k
        .find(|(ty, _)| builder.type_on_stack(**ty))
1062
69.3k
        .unwrap()
1063
69.3k
        .1;
1064
69.3k
    let i = u.int_in_range(0..=candidates.len() - 1)?;
1065
69.3k
    builder.allocs.operands.pop();
1066
69.3k
    Ok(Instruction::GlobalSet(candidates[i]))
1067
69.3k
}
wasm_smith::code_builder::global_set::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1052
41.1k
fn global_set<C: Config>(
1053
41.1k
    u: &mut Unstructured,
1054
41.1k
    _: &ConfiguredModule<C>,
1055
41.1k
    builder: &mut CodeBuilder<C>,
1056
41.1k
) -> Result<Instruction> {
1057
41.1k
    let candidates = builder
1058
41.1k
        .allocs
1059
41.1k
        .mutable_globals
1060
41.1k
        .iter()
1061
41.1k
        .find(|(ty, _)| builder.type_on_stack(**ty))
1062
41.1k
        .unwrap()
1063
41.1k
        .1;
1064
41.1k
    let i = u.int_in_range(0..=candidates.len() - 1)?;
1065
41.1k
    builder.allocs.operands.pop();
1066
41.1k
    Ok(Instruction::GlobalSet(candidates[i]))
1067
41.1k
}
Unexecuted instantiation: wasm_smith::code_builder::global_set::<wasm_smith::config::SwarmConfig>
1068
1069
#[inline]
1070
446M
fn have_memory<C: Config>(module: &ConfiguredModule<C>, _: &mut CodeBuilder<C>) -> bool {
1071
446M
    module.memories.len() > 0
1072
446M
}
wasm_smith::code_builder::have_memory::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1070
201M
fn have_memory<C: Config>(module: &ConfiguredModule<C>, _: &mut CodeBuilder<C>) -> bool {
1071
201M
    module.memories.len() > 0
1072
201M
}
wasm_smith::code_builder::have_memory::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1070
244M
fn have_memory<C: Config>(module: &ConfiguredModule<C>, _: &mut CodeBuilder<C>) -> bool {
1071
244M
    module.memories.len() > 0
1072
244M
}
1073
1074
#[inline]
1075
223M
fn have_memory_and_offset<C: Config>(
1076
223M
    module: &ConfiguredModule<C>,
1077
223M
    builder: &mut CodeBuilder<C>,
1078
223M
) -> bool {
1079
223M
    have_memory(module, builder) && builder.type_on_stack(ValType::I32)
1080
223M
}
wasm_smith::code_builder::have_memory_and_offset::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1075
100M
fn have_memory_and_offset<C: Config>(
1076
100M
    module: &ConfiguredModule<C>,
1077
100M
    builder: &mut CodeBuilder<C>,
1078
100M
) -> bool {
1079
100M
    have_memory(module, builder) && builder.type_on_stack(ValType::I32)
1080
100M
}
wasm_smith::code_builder::have_memory_and_offset::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1075
122M
fn have_memory_and_offset<C: Config>(
1076
122M
    module: &ConfiguredModule<C>,
1077
122M
    builder: &mut CodeBuilder<C>,
1078
122M
) -> bool {
1079
122M
    have_memory(module, builder) && builder.type_on_stack(ValType::I32)
1080
122M
}
1081
1082
#[inline]
1083
26.9M
fn have_data<C: Config>(module: &ConfiguredModule<C>, _: &mut CodeBuilder<C>) -> bool {
1084
26.9M
    module.data.len() > 0
1085
26.9M
}
wasm_smith::code_builder::have_data::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1083
11.9M
fn have_data<C: Config>(module: &ConfiguredModule<C>, _: &mut CodeBuilder<C>) -> bool {
1084
11.9M
    module.data.len() > 0
1085
11.9M
}
wasm_smith::code_builder::have_data::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1083
14.9M
fn have_data<C: Config>(module: &ConfiguredModule<C>, _: &mut CodeBuilder<C>) -> bool {
1084
14.9M
    module.data.len() > 0
1085
14.9M
}
1086
1087
78.9k
fn i32_load<C: Config>(
1088
78.9k
    u: &mut Unstructured,
1089
78.9k
    module: &ConfiguredModule<C>,
1090
78.9k
    builder: &mut CodeBuilder<C>,
1091
78.9k
) -> Result<Instruction> {
1092
78.9k
    builder.pop_operands(&[ValType::I32]);
1093
78.9k
    builder.allocs.operands.push(Some(ValType::I32));
1094
78.9k
    Ok(Instruction::I32Load(mem_arg(u, module, &[0, 1])?))
1095
78.9k
}
wasm_smith::code_builder::i32_load::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1087
22.7k
fn i32_load<C: Config>(
1088
22.7k
    u: &mut Unstructured,
1089
22.7k
    module: &ConfiguredModule<C>,
1090
22.7k
    builder: &mut CodeBuilder<C>,
1091
22.7k
) -> Result<Instruction> {
1092
22.7k
    builder.pop_operands(&[ValType::I32]);
1093
22.7k
    builder.allocs.operands.push(Some(ValType::I32));
1094
22.7k
    Ok(Instruction::I32Load(mem_arg(u, module, &[0, 1])?))
1095
22.7k
}
wasm_smith::code_builder::i32_load::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1087
56.2k
fn i32_load<C: Config>(
1088
56.2k
    u: &mut Unstructured,
1089
56.2k
    module: &ConfiguredModule<C>,
1090
56.2k
    builder: &mut CodeBuilder<C>,
1091
56.2k
) -> Result<Instruction> {
1092
56.2k
    builder.pop_operands(&[ValType::I32]);
1093
56.2k
    builder.allocs.operands.push(Some(ValType::I32));
1094
56.2k
    Ok(Instruction::I32Load(mem_arg(u, module, &[0, 1])?))
1095
56.2k
}
Unexecuted instantiation: wasm_smith::code_builder::i32_load::<wasm_smith::config::SwarmConfig>
1096
1097
28.3k
fn i64_load<C: Config>(
1098
28.3k
    u: &mut Unstructured,
1099
28.3k
    module: &ConfiguredModule<C>,
1100
28.3k
    builder: &mut CodeBuilder<C>,
1101
28.3k
) -> Result<Instruction> {
1102
28.3k
    builder.pop_operands(&[ValType::I32]);
1103
28.3k
    builder.allocs.operands.push(Some(ValType::I64));
1104
28.3k
    Ok(Instruction::I64Load(mem_arg(u, module, &[0, 1, 2])?))
1105
28.3k
}
wasm_smith::code_builder::i64_load::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1097
10.4k
fn i64_load<C: Config>(
1098
10.4k
    u: &mut Unstructured,
1099
10.4k
    module: &ConfiguredModule<C>,
1100
10.4k
    builder: &mut CodeBuilder<C>,
1101
10.4k
) -> Result<Instruction> {
1102
10.4k
    builder.pop_operands(&[ValType::I32]);
1103
10.4k
    builder.allocs.operands.push(Some(ValType::I64));
1104
10.4k
    Ok(Instruction::I64Load(mem_arg(u, module, &[0, 1, 2])?))
1105
10.4k
}
wasm_smith::code_builder::i64_load::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1097
17.8k
fn i64_load<C: Config>(
1098
17.8k
    u: &mut Unstructured,
1099
17.8k
    module: &ConfiguredModule<C>,
1100
17.8k
    builder: &mut CodeBuilder<C>,
1101
17.8k
) -> Result<Instruction> {
1102
17.8k
    builder.pop_operands(&[ValType::I32]);
1103
17.8k
    builder.allocs.operands.push(Some(ValType::I64));
1104
17.8k
    Ok(Instruction::I64Load(mem_arg(u, module, &[0, 1, 2])?))
1105
17.8k
}
Unexecuted instantiation: wasm_smith::code_builder::i64_load::<wasm_smith::config::SwarmConfig>
1106
1107
43.6k
fn f32_load<C: Config>(
1108
43.6k
    u: &mut Unstructured,
1109
43.6k
    module: &ConfiguredModule<C>,
1110
43.6k
    builder: &mut CodeBuilder<C>,
1111
43.6k
) -> Result<Instruction> {
1112
43.6k
    builder.pop_operands(&[ValType::I32]);
1113
43.6k
    builder.allocs.operands.push(Some(ValType::F32));
1114
43.6k
    Ok(Instruction::F32Load(mem_arg(u, module, &[0, 1])?))
1115
43.6k
}
wasm_smith::code_builder::f32_load::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1107
15.2k
fn f32_load<C: Config>(
1108
15.2k
    u: &mut Unstructured,
1109
15.2k
    module: &ConfiguredModule<C>,
1110
15.2k
    builder: &mut CodeBuilder<C>,
1111
15.2k
) -> Result<Instruction> {
1112
15.2k
    builder.pop_operands(&[ValType::I32]);
1113
15.2k
    builder.allocs.operands.push(Some(ValType::F32));
1114
15.2k
    Ok(Instruction::F32Load(mem_arg(u, module, &[0, 1])?))
1115
15.2k
}
wasm_smith::code_builder::f32_load::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1107
28.4k
fn f32_load<C: Config>(
1108
28.4k
    u: &mut Unstructured,
1109
28.4k
    module: &ConfiguredModule<C>,
1110
28.4k
    builder: &mut CodeBuilder<C>,
1111
28.4k
) -> Result<Instruction> {
1112
28.4k
    builder.pop_operands(&[ValType::I32]);
1113
28.4k
    builder.allocs.operands.push(Some(ValType::F32));
1114
28.4k
    Ok(Instruction::F32Load(mem_arg(u, module, &[0, 1])?))
1115
28.4k
}
Unexecuted instantiation: wasm_smith::code_builder::f32_load::<wasm_smith::config::SwarmConfig>
1116
1117
24.9k
fn f64_load<C: Config>(
1118
24.9k
    u: &mut Unstructured,
1119
24.9k
    module: &ConfiguredModule<C>,
1120
24.9k
    builder: &mut CodeBuilder<C>,
1121
24.9k
) -> Result<Instruction> {
1122
24.9k
    builder.pop_operands(&[ValType::I32]);
1123
24.9k
    builder.allocs.operands.push(Some(ValType::F64));
1124
24.9k
    Ok(Instruction::F64Load(mem_arg(u, module, &[0, 1, 2])?))
1125
24.9k
}
wasm_smith::code_builder::f64_load::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1117
13.3k
fn f64_load<C: Config>(
1118
13.3k
    u: &mut Unstructured,
1119
13.3k
    module: &ConfiguredModule<C>,
1120
13.3k
    builder: &mut CodeBuilder<C>,
1121
13.3k
) -> Result<Instruction> {
1122
13.3k
    builder.pop_operands(&[ValType::I32]);
1123
13.3k
    builder.allocs.operands.push(Some(ValType::F64));
1124
13.3k
    Ok(Instruction::F64Load(mem_arg(u, module, &[0, 1, 2])?))
1125
13.3k
}
wasm_smith::code_builder::f64_load::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1117
11.5k
fn f64_load<C: Config>(
1118
11.5k
    u: &mut Unstructured,
1119
11.5k
    module: &ConfiguredModule<C>,
1120
11.5k
    builder: &mut CodeBuilder<C>,
1121
11.5k
) -> Result<Instruction> {
1122
11.5k
    builder.pop_operands(&[ValType::I32]);
1123
11.5k
    builder.allocs.operands.push(Some(ValType::F64));
1124
11.5k
    Ok(Instruction::F64Load(mem_arg(u, module, &[0, 1, 2])?))
1125
11.5k
}
Unexecuted instantiation: wasm_smith::code_builder::f64_load::<wasm_smith::config::SwarmConfig>
1126
1127
90.9k
fn i32_load_8_s<C: Config>(
1128
90.9k
    u: &mut Unstructured,
1129
90.9k
    module: &ConfiguredModule<C>,
1130
90.9k
    builder: &mut CodeBuilder<C>,
1131
90.9k
) -> Result<Instruction> {
1132
90.9k
    builder.pop_operands(&[ValType::I32]);
1133
90.9k
    builder.allocs.operands.push(Some(ValType::I32));
1134
90.9k
    Ok(Instruction::I32Load8_S(mem_arg(u, module, &[0])?))
1135
90.9k
}
wasm_smith::code_builder::i32_load_8_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1127
29.8k
fn i32_load_8_s<C: Config>(
1128
29.8k
    u: &mut Unstructured,
1129
29.8k
    module: &ConfiguredModule<C>,
1130
29.8k
    builder: &mut CodeBuilder<C>,
1131
29.8k
) -> Result<Instruction> {
1132
29.8k
    builder.pop_operands(&[ValType::I32]);
1133
29.8k
    builder.allocs.operands.push(Some(ValType::I32));
1134
29.8k
    Ok(Instruction::I32Load8_S(mem_arg(u, module, &[0])?))
1135
29.8k
}
wasm_smith::code_builder::i32_load_8_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1127
61.1k
fn i32_load_8_s<C: Config>(
1128
61.1k
    u: &mut Unstructured,
1129
61.1k
    module: &ConfiguredModule<C>,
1130
61.1k
    builder: &mut CodeBuilder<C>,
1131
61.1k
) -> Result<Instruction> {
1132
61.1k
    builder.pop_operands(&[ValType::I32]);
1133
61.1k
    builder.allocs.operands.push(Some(ValType::I32));
1134
61.1k
    Ok(Instruction::I32Load8_S(mem_arg(u, module, &[0])?))
1135
61.1k
}
Unexecuted instantiation: wasm_smith::code_builder::i32_load_8_s::<wasm_smith::config::SwarmConfig>
1136
1137
33.9k
fn i32_load_8_u<C: Config>(
1138
33.9k
    u: &mut Unstructured,
1139
33.9k
    module: &ConfiguredModule<C>,
1140
33.9k
    builder: &mut CodeBuilder<C>,
1141
33.9k
) -> Result<Instruction> {
1142
33.9k
    builder.pop_operands(&[ValType::I32]);
1143
33.9k
    builder.allocs.operands.push(Some(ValType::I32));
1144
33.9k
    Ok(Instruction::I32Load8_U(mem_arg(u, module, &[0])?))
1145
33.9k
}
wasm_smith::code_builder::i32_load_8_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1137
20.5k
fn i32_load_8_u<C: Config>(
1138
20.5k
    u: &mut Unstructured,
1139
20.5k
    module: &ConfiguredModule<C>,
1140
20.5k
    builder: &mut CodeBuilder<C>,
1141
20.5k
) -> Result<Instruction> {
1142
20.5k
    builder.pop_operands(&[ValType::I32]);
1143
20.5k
    builder.allocs.operands.push(Some(ValType::I32));
1144
20.5k
    Ok(Instruction::I32Load8_U(mem_arg(u, module, &[0])?))
1145
20.5k
}
wasm_smith::code_builder::i32_load_8_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1137
13.3k
fn i32_load_8_u<C: Config>(
1138
13.3k
    u: &mut Unstructured,
1139
13.3k
    module: &ConfiguredModule<C>,
1140
13.3k
    builder: &mut CodeBuilder<C>,
1141
13.3k
) -> Result<Instruction> {
1142
13.3k
    builder.pop_operands(&[ValType::I32]);
1143
13.3k
    builder.allocs.operands.push(Some(ValType::I32));
1144
13.3k
    Ok(Instruction::I32Load8_U(mem_arg(u, module, &[0])?))
1145
13.3k
}
Unexecuted instantiation: wasm_smith::code_builder::i32_load_8_u::<wasm_smith::config::SwarmConfig>
1146
1147
51.3k
fn i32_load_16_s<C: Config>(
1148
51.3k
    u: &mut Unstructured,
1149
51.3k
    module: &ConfiguredModule<C>,
1150
51.3k
    builder: &mut CodeBuilder<C>,
1151
51.3k
) -> Result<Instruction> {
1152
51.3k
    builder.pop_operands(&[ValType::I32]);
1153
51.3k
    builder.allocs.operands.push(Some(ValType::I32));
1154
51.3k
    Ok(Instruction::I32Load16_S(mem_arg(u, module, &[0, 1])?))
1155
51.3k
}
wasm_smith::code_builder::i32_load_16_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1147
21.0k
fn i32_load_16_s<C: Config>(
1148
21.0k
    u: &mut Unstructured,
1149
21.0k
    module: &ConfiguredModule<C>,
1150
21.0k
    builder: &mut CodeBuilder<C>,
1151
21.0k
) -> Result<Instruction> {
1152
21.0k
    builder.pop_operands(&[ValType::I32]);
1153
21.0k
    builder.allocs.operands.push(Some(ValType::I32));
1154
21.0k
    Ok(Instruction::I32Load16_S(mem_arg(u, module, &[0, 1])?))
1155
21.0k
}
wasm_smith::code_builder::i32_load_16_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1147
30.3k
fn i32_load_16_s<C: Config>(
1148
30.3k
    u: &mut Unstructured,
1149
30.3k
    module: &ConfiguredModule<C>,
1150
30.3k
    builder: &mut CodeBuilder<C>,
1151
30.3k
) -> Result<Instruction> {
1152
30.3k
    builder.pop_operands(&[ValType::I32]);
1153
30.3k
    builder.allocs.operands.push(Some(ValType::I32));
1154
30.3k
    Ok(Instruction::I32Load16_S(mem_arg(u, module, &[0, 1])?))
1155
30.3k
}
Unexecuted instantiation: wasm_smith::code_builder::i32_load_16_s::<wasm_smith::config::SwarmConfig>
1156
1157
59.1k
fn i32_load_16_u<C: Config>(
1158
59.1k
    u: &mut Unstructured,
1159
59.1k
    module: &ConfiguredModule<C>,
1160
59.1k
    builder: &mut CodeBuilder<C>,
1161
59.1k
) -> Result<Instruction> {
1162
59.1k
    builder.pop_operands(&[ValType::I32]);
1163
59.1k
    builder.allocs.operands.push(Some(ValType::I32));
1164
59.1k
    Ok(Instruction::I32Load16_U(mem_arg(u, module, &[0, 1])?))
1165
59.1k
}
wasm_smith::code_builder::i32_load_16_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1157
30.6k
fn i32_load_16_u<C: Config>(
1158
30.6k
    u: &mut Unstructured,
1159
30.6k
    module: &ConfiguredModule<C>,
1160
30.6k
    builder: &mut CodeBuilder<C>,
1161
30.6k
) -> Result<Instruction> {
1162
30.6k
    builder.pop_operands(&[ValType::I32]);
1163
30.6k
    builder.allocs.operands.push(Some(ValType::I32));
1164
30.6k
    Ok(Instruction::I32Load16_U(mem_arg(u, module, &[0, 1])?))
1165
30.6k
}
wasm_smith::code_builder::i32_load_16_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1157
28.4k
fn i32_load_16_u<C: Config>(
1158
28.4k
    u: &mut Unstructured,
1159
28.4k
    module: &ConfiguredModule<C>,
1160
28.4k
    builder: &mut CodeBuilder<C>,
1161
28.4k
) -> Result<Instruction> {
1162
28.4k
    builder.pop_operands(&[ValType::I32]);
1163
28.4k
    builder.allocs.operands.push(Some(ValType::I32));
1164
28.4k
    Ok(Instruction::I32Load16_U(mem_arg(u, module, &[0, 1])?))
1165
28.4k
}
Unexecuted instantiation: wasm_smith::code_builder::i32_load_16_u::<wasm_smith::config::SwarmConfig>
1166
1167
39.4k
fn i64_load_8_s<C: Config>(
1168
39.4k
    u: &mut Unstructured,
1169
39.4k
    module: &ConfiguredModule<C>,
1170
39.4k
    builder: &mut CodeBuilder<C>,
1171
39.4k
) -> Result<Instruction> {
1172
39.4k
    builder.pop_operands(&[ValType::I32]);
1173
39.4k
    builder.allocs.operands.push(Some(ValType::I64));
1174
39.4k
    Ok(Instruction::I64Load8_S(mem_arg(u, module, &[0])?))
1175
39.4k
}
wasm_smith::code_builder::i64_load_8_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1167
14.9k
fn i64_load_8_s<C: Config>(
1168
14.9k
    u: &mut Unstructured,
1169
14.9k
    module: &ConfiguredModule<C>,
1170
14.9k
    builder: &mut CodeBuilder<C>,
1171
14.9k
) -> Result<Instruction> {
1172
14.9k
    builder.pop_operands(&[ValType::I32]);
1173
14.9k
    builder.allocs.operands.push(Some(ValType::I64));
1174
14.9k
    Ok(Instruction::I64Load8_S(mem_arg(u, module, &[0])?))
1175
14.9k
}
wasm_smith::code_builder::i64_load_8_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1167
24.5k
fn i64_load_8_s<C: Config>(
1168
24.5k
    u: &mut Unstructured,
1169
24.5k
    module: &ConfiguredModule<C>,
1170
24.5k
    builder: &mut CodeBuilder<C>,
1171
24.5k
) -> Result<Instruction> {
1172
24.5k
    builder.pop_operands(&[ValType::I32]);
1173
24.5k
    builder.allocs.operands.push(Some(ValType::I64));
1174
24.5k
    Ok(Instruction::I64Load8_S(mem_arg(u, module, &[0])?))
1175
24.5k
}
Unexecuted instantiation: wasm_smith::code_builder::i64_load_8_s::<wasm_smith::config::SwarmConfig>
1176
1177
19.5k
fn i64_load_16_s<C: Config>(
1178
19.5k
    u: &mut Unstructured,
1179
19.5k
    module: &ConfiguredModule<C>,
1180
19.5k
    builder: &mut CodeBuilder<C>,
1181
19.5k
) -> Result<Instruction> {
1182
19.5k
    builder.pop_operands(&[ValType::I32]);
1183
19.5k
    builder.allocs.operands.push(Some(ValType::I64));
1184
19.5k
    Ok(Instruction::I64Load16_S(mem_arg(u, module, &[0, 1])?))
1185
19.5k
}
wasm_smith::code_builder::i64_load_16_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1177
12.9k
fn i64_load_16_s<C: Config>(
1178
12.9k
    u: &mut Unstructured,
1179
12.9k
    module: &ConfiguredModule<C>,
1180
12.9k
    builder: &mut CodeBuilder<C>,
1181
12.9k
) -> Result<Instruction> {
1182
12.9k
    builder.pop_operands(&[ValType::I32]);
1183
12.9k
    builder.allocs.operands.push(Some(ValType::I64));
1184
12.9k
    Ok(Instruction::I64Load16_S(mem_arg(u, module, &[0, 1])?))
1185
12.9k
}
wasm_smith::code_builder::i64_load_16_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1177
6.59k
fn i64_load_16_s<C: Config>(
1178
6.59k
    u: &mut Unstructured,
1179
6.59k
    module: &ConfiguredModule<C>,
1180
6.59k
    builder: &mut CodeBuilder<C>,
1181
6.59k
) -> Result<Instruction> {
1182
6.59k
    builder.pop_operands(&[ValType::I32]);
1183
6.59k
    builder.allocs.operands.push(Some(ValType::I64));
1184
6.59k
    Ok(Instruction::I64Load16_S(mem_arg(u, module, &[0, 1])?))
1185
6.59k
}
Unexecuted instantiation: wasm_smith::code_builder::i64_load_16_s::<wasm_smith::config::SwarmConfig>
1186
1187
31.0k
fn i64_load_32_s<C: Config>(
1188
31.0k
    u: &mut Unstructured,
1189
31.0k
    module: &ConfiguredModule<C>,
1190
31.0k
    builder: &mut CodeBuilder<C>,
1191
31.0k
) -> Result<Instruction> {
1192
31.0k
    builder.pop_operands(&[ValType::I32]);
1193
31.0k
    builder.allocs.operands.push(Some(ValType::I64));
1194
31.0k
    Ok(Instruction::I64Load32_S(mem_arg(u, module, &[0, 1, 2])?))
1195
31.0k
}
wasm_smith::code_builder::i64_load_32_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1187
17.7k
fn i64_load_32_s<C: Config>(
1188
17.7k
    u: &mut Unstructured,
1189
17.7k
    module: &ConfiguredModule<C>,
1190
17.7k
    builder: &mut CodeBuilder<C>,
1191
17.7k
) -> Result<Instruction> {
1192
17.7k
    builder.pop_operands(&[ValType::I32]);
1193
17.7k
    builder.allocs.operands.push(Some(ValType::I64));
1194
17.7k
    Ok(Instruction::I64Load32_S(mem_arg(u, module, &[0, 1, 2])?))
1195
17.7k
}
wasm_smith::code_builder::i64_load_32_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1187
13.3k
fn i64_load_32_s<C: Config>(
1188
13.3k
    u: &mut Unstructured,
1189
13.3k
    module: &ConfiguredModule<C>,
1190
13.3k
    builder: &mut CodeBuilder<C>,
1191
13.3k
) -> Result<Instruction> {
1192
13.3k
    builder.pop_operands(&[ValType::I32]);
1193
13.3k
    builder.allocs.operands.push(Some(ValType::I64));
1194
13.3k
    Ok(Instruction::I64Load32_S(mem_arg(u, module, &[0, 1, 2])?))
1195
13.3k
}
Unexecuted instantiation: wasm_smith::code_builder::i64_load_32_s::<wasm_smith::config::SwarmConfig>
1196
1197
20.2k
fn i64_load_8_u<C: Config>(
1198
20.2k
    u: &mut Unstructured,
1199
20.2k
    module: &ConfiguredModule<C>,
1200
20.2k
    builder: &mut CodeBuilder<C>,
1201
20.2k
) -> Result<Instruction> {
1202
20.2k
    builder.pop_operands(&[ValType::I32]);
1203
20.2k
    builder.allocs.operands.push(Some(ValType::I64));
1204
20.2k
    Ok(Instruction::I64Load8_U(mem_arg(u, module, &[0])?))
1205
20.2k
}
wasm_smith::code_builder::i64_load_8_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1197
14.1k
fn i64_load_8_u<C: Config>(
1198
14.1k
    u: &mut Unstructured,
1199
14.1k
    module: &ConfiguredModule<C>,
1200
14.1k
    builder: &mut CodeBuilder<C>,
1201
14.1k
) -> Result<Instruction> {
1202
14.1k
    builder.pop_operands(&[ValType::I32]);
1203
14.1k
    builder.allocs.operands.push(Some(ValType::I64));
1204
14.1k
    Ok(Instruction::I64Load8_U(mem_arg(u, module, &[0])?))
1205
14.1k
}
wasm_smith::code_builder::i64_load_8_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1197
6.12k
fn i64_load_8_u<C: Config>(
1198
6.12k
    u: &mut Unstructured,
1199
6.12k
    module: &ConfiguredModule<C>,
1200
6.12k
    builder: &mut CodeBuilder<C>,
1201
6.12k
) -> Result<Instruction> {
1202
6.12k
    builder.pop_operands(&[ValType::I32]);
1203
6.12k
    builder.allocs.operands.push(Some(ValType::I64));
1204
6.12k
    Ok(Instruction::I64Load8_U(mem_arg(u, module, &[0])?))
1205
6.12k
}
Unexecuted instantiation: wasm_smith::code_builder::i64_load_8_u::<wasm_smith::config::SwarmConfig>
1206
1207
64.6k
fn i64_load_16_u<C: Config>(
1208
64.6k
    u: &mut Unstructured,
1209
64.6k
    module: &ConfiguredModule<C>,
1210
64.6k
    builder: &mut CodeBuilder<C>,
1211
64.6k
) -> Result<Instruction> {
1212
64.6k
    builder.pop_operands(&[ValType::I32]);
1213
64.6k
    builder.allocs.operands.push(Some(ValType::I64));
1214
64.6k
    Ok(Instruction::I64Load16_U(mem_arg(u, module, &[0, 1])?))
1215
64.6k
}
wasm_smith::code_builder::i64_load_16_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1207
14.3k
fn i64_load_16_u<C: Config>(
1208
14.3k
    u: &mut Unstructured,
1209
14.3k
    module: &ConfiguredModule<C>,
1210
14.3k
    builder: &mut CodeBuilder<C>,
1211
14.3k
) -> Result<Instruction> {
1212
14.3k
    builder.pop_operands(&[ValType::I32]);
1213
14.3k
    builder.allocs.operands.push(Some(ValType::I64));
1214
14.3k
    Ok(Instruction::I64Load16_U(mem_arg(u, module, &[0, 1])?))
1215
14.3k
}
wasm_smith::code_builder::i64_load_16_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1207
50.2k
fn i64_load_16_u<C: Config>(
1208
50.2k
    u: &mut Unstructured,
1209
50.2k
    module: &ConfiguredModule<C>,
1210
50.2k
    builder: &mut CodeBuilder<C>,
1211
50.2k
) -> Result<Instruction> {
1212
50.2k
    builder.pop_operands(&[ValType::I32]);
1213
50.2k
    builder.allocs.operands.push(Some(ValType::I64));
1214
50.2k
    Ok(Instruction::I64Load16_U(mem_arg(u, module, &[0, 1])?))
1215
50.2k
}
Unexecuted instantiation: wasm_smith::code_builder::i64_load_16_u::<wasm_smith::config::SwarmConfig>
1216
1217
15.4k
fn i64_load_32_u<C: Config>(
1218
15.4k
    u: &mut Unstructured,
1219
15.4k
    module: &ConfiguredModule<C>,
1220
15.4k
    builder: &mut CodeBuilder<C>,
1221
15.4k
) -> Result<Instruction> {
1222
15.4k
    builder.pop_operands(&[ValType::I32]);
1223
15.4k
    builder.allocs.operands.push(Some(ValType::I64));
1224
15.4k
    Ok(Instruction::I64Load32_U(mem_arg(u, module, &[0, 1, 2])?))
1225
15.4k
}
wasm_smith::code_builder::i64_load_32_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1217
9.62k
fn i64_load_32_u<C: Config>(
1218
9.62k
    u: &mut Unstructured,
1219
9.62k
    module: &ConfiguredModule<C>,
1220
9.62k
    builder: &mut CodeBuilder<C>,
1221
9.62k
) -> Result<Instruction> {
1222
9.62k
    builder.pop_operands(&[ValType::I32]);
1223
9.62k
    builder.allocs.operands.push(Some(ValType::I64));
1224
9.62k
    Ok(Instruction::I64Load32_U(mem_arg(u, module, &[0, 1, 2])?))
1225
9.62k
}
wasm_smith::code_builder::i64_load_32_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1217
5.81k
fn i64_load_32_u<C: Config>(
1218
5.81k
    u: &mut Unstructured,
1219
5.81k
    module: &ConfiguredModule<C>,
1220
5.81k
    builder: &mut CodeBuilder<C>,
1221
5.81k
) -> Result<Instruction> {
1222
5.81k
    builder.pop_operands(&[ValType::I32]);
1223
5.81k
    builder.allocs.operands.push(Some(ValType::I64));
1224
5.81k
    Ok(Instruction::I64Load32_U(mem_arg(u, module, &[0, 1, 2])?))
1225
5.81k
}
Unexecuted instantiation: wasm_smith::code_builder::i64_load_32_u::<wasm_smith::config::SwarmConfig>
1226
1227
#[inline]
1228
143M
fn store_valid<C: Config>(
1229
143M
    module: &ConfiguredModule<C>,
1230
143M
    builder: &mut CodeBuilder<C>,
1231
143M
    f: impl FnOnce() -> ValType,
1232
143M
) -> bool {
1233
143M
    have_memory(module, builder) && builder.types_on_stack(&[ValType::I32, f()])
1234
143M
}
wasm_smith::code_builder::store_valid::<wasm_smith::config::SwarmConfig, wasm_smith::code_builder::f32_store_valid<wasm_smith::config::SwarmConfig>::{closure#0}>
Line
Count
Source
1228
7.19M
fn store_valid<C: Config>(
1229
7.19M
    module: &ConfiguredModule<C>,
1230
7.19M
    builder: &mut CodeBuilder<C>,
1231
7.19M
    f: impl FnOnce() -> ValType,
1232
7.19M
) -> bool {
1233
7.19M
    have_memory(module, builder) && builder.types_on_stack(&[ValType::I32, f()])
1234
7.19M
}
wasm_smith::code_builder::store_valid::<wasm_smith::config::SwarmConfig, wasm_smith::code_builder::i32_store_valid<wasm_smith::config::SwarmConfig>::{closure#0}>
Line
Count
Source
1228
21.5M
fn store_valid<C: Config>(
1229
21.5M
    module: &ConfiguredModule<C>,
1230
21.5M
    builder: &mut CodeBuilder<C>,
1231
21.5M
    f: impl FnOnce() -> ValType,
1232
21.5M
) -> bool {
1233
21.5M
    have_memory(module, builder) && builder.types_on_stack(&[ValType::I32, f()])
1234
21.5M
}
wasm_smith::code_builder::store_valid::<wasm_smith::config::SwarmConfig, wasm_smith::code_builder::i64_store_valid<wasm_smith::config::SwarmConfig>::{closure#0}>
Line
Count
Source
1228
28.7M
fn store_valid<C: Config>(
1229
28.7M
    module: &ConfiguredModule<C>,
1230
28.7M
    builder: &mut CodeBuilder<C>,
1231
28.7M
    f: impl FnOnce() -> ValType,
1232
28.7M
) -> bool {
1233
28.7M
    have_memory(module, builder) && builder.types_on_stack(&[ValType::I32, f()])
1234
28.7M
}
wasm_smith::code_builder::store_valid::<wasm_smith::config::SwarmConfig, wasm_smith::code_builder::f64_store_valid<wasm_smith::config::SwarmConfig>::{closure#0}>
Line
Count
Source
1228
7.19M
fn store_valid<C: Config>(
1229
7.19M
    module: &ConfiguredModule<C>,
1230
7.19M
    builder: &mut CodeBuilder<C>,
1231
7.19M
    f: impl FnOnce() -> ValType,
1232
7.19M
) -> bool {
1233
7.19M
    have_memory(module, builder) && builder.types_on_stack(&[ValType::I32, f()])
1234
7.19M
}
wasm_smith::code_builder::store_valid::<wasm_smith::config::DefaultConfig, wasm_smith::code_builder::i32_store_valid<wasm_smith::config::DefaultConfig>::{closure#0}>
Line
Count
Source
1228
26.2M
fn store_valid<C: Config>(
1229
26.2M
    module: &ConfiguredModule<C>,
1230
26.2M
    builder: &mut CodeBuilder<C>,
1231
26.2M
    f: impl FnOnce() -> ValType,
1232
26.2M
) -> bool {
1233
26.2M
    have_memory(module, builder) && builder.types_on_stack(&[ValType::I32, f()])
1234
26.2M
}
wasm_smith::code_builder::store_valid::<wasm_smith::config::DefaultConfig, wasm_smith::code_builder::f32_store_valid<wasm_smith::config::DefaultConfig>::{closure#0}>
Line
Count
Source
1228
8.74M
fn store_valid<C: Config>(
1229
8.74M
    module: &ConfiguredModule<C>,
1230
8.74M
    builder: &mut CodeBuilder<C>,
1231
8.74M
    f: impl FnOnce() -> ValType,
1232
8.74M
) -> bool {
1233
8.74M
    have_memory(module, builder) && builder.types_on_stack(&[ValType::I32, f()])
1234
8.74M
}
wasm_smith::code_builder::store_valid::<wasm_smith::config::DefaultConfig, wasm_smith::code_builder::i64_store_valid<wasm_smith::config::DefaultConfig>::{closure#0}>
Line
Count
Source
1228
34.9M
fn store_valid<C: Config>(
1229
34.9M
    module: &ConfiguredModule<C>,
1230
34.9M
    builder: &mut CodeBuilder<C>,
1231
34.9M
    f: impl FnOnce() -> ValType,
1232
34.9M
) -> bool {
1233
34.9M
    have_memory(module, builder) && builder.types_on_stack(&[ValType::I32, f()])
1234
34.9M
}
wasm_smith::code_builder::store_valid::<wasm_smith::config::DefaultConfig, wasm_smith::code_builder::f64_store_valid<wasm_smith::config::DefaultConfig>::{closure#0}>
Line
Count
Source
1228
8.74M
fn store_valid<C: Config>(
1229
8.74M
    module: &ConfiguredModule<C>,
1230
8.74M
    builder: &mut CodeBuilder<C>,
1231
8.74M
    f: impl FnOnce() -> ValType,
1232
8.74M
) -> bool {
1233
8.74M
    have_memory(module, builder) && builder.types_on_stack(&[ValType::I32, f()])
1234
8.74M
}
1235
1236
#[inline]
1237
47.8M
fn i32_store_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1238
47.8M
    store_valid(module, builder, || ValType::I32)
wasm_smith::code_builder::i32_store_valid::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
1238
14.3M
    store_valid(module, builder, || ValType::I32)
wasm_smith::code_builder::i32_store_valid::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
1238
18.5M
    store_valid(module, builder, || ValType::I32)
1239
47.8M
}
wasm_smith::code_builder::i32_store_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1237
21.5M
fn i32_store_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1238
21.5M
    store_valid(module, builder, || ValType::I32)
1239
21.5M
}
wasm_smith::code_builder::i32_store_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1237
26.2M
fn i32_store_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1238
26.2M
    store_valid(module, builder, || ValType::I32)
1239
26.2M
}
Unexecuted instantiation: wasm_smith::code_builder::i32_store_valid::<wasm_smith::config::SwarmConfig>
1240
1241
3.80k
fn i32_store<C: Config>(
1242
3.80k
    u: &mut Unstructured,
1243
3.80k
    module: &ConfiguredModule<C>,
1244
3.80k
    builder: &mut CodeBuilder<C>,
1245
3.80k
) -> Result<Instruction> {
1246
3.80k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1247
3.80k
    Ok(Instruction::I32Store(mem_arg(u, module, &[0, 1])?))
1248
3.80k
}
wasm_smith::code_builder::i32_store::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1241
1.12k
fn i32_store<C: Config>(
1242
1.12k
    u: &mut Unstructured,
1243
1.12k
    module: &ConfiguredModule<C>,
1244
1.12k
    builder: &mut CodeBuilder<C>,
1245
1.12k
) -> Result<Instruction> {
1246
1.12k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1247
1.12k
    Ok(Instruction::I32Store(mem_arg(u, module, &[0, 1])?))
1248
1.12k
}
wasm_smith::code_builder::i32_store::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1241
2.67k
fn i32_store<C: Config>(
1242
2.67k
    u: &mut Unstructured,
1243
2.67k
    module: &ConfiguredModule<C>,
1244
2.67k
    builder: &mut CodeBuilder<C>,
1245
2.67k
) -> Result<Instruction> {
1246
2.67k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1247
2.67k
    Ok(Instruction::I32Store(mem_arg(u, module, &[0, 1])?))
1248
2.67k
}
Unexecuted instantiation: wasm_smith::code_builder::i32_store::<wasm_smith::config::SwarmConfig>
1249
1250
#[inline]
1251
63.7M
fn i64_store_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1252
63.7M
    store_valid(module, builder, || ValType::I64)
wasm_smith::code_builder::i64_store_valid::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
1252
19.1M
    store_valid(module, builder, || ValType::I64)
wasm_smith::code_builder::i64_store_valid::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
1252
24.7M
    store_valid(module, builder, || ValType::I64)
1253
63.7M
}
wasm_smith::code_builder::i64_store_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1251
28.7M
fn i64_store_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1252
28.7M
    store_valid(module, builder, || ValType::I64)
1253
28.7M
}
wasm_smith::code_builder::i64_store_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1251
34.9M
fn i64_store_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1252
34.9M
    store_valid(module, builder, || ValType::I64)
1253
34.9M
}
Unexecuted instantiation: wasm_smith::code_builder::i64_store_valid::<wasm_smith::config::SwarmConfig>
1254
1255
4.43k
fn i64_store<C: Config>(
1256
4.43k
    u: &mut Unstructured,
1257
4.43k
    module: &ConfiguredModule<C>,
1258
4.43k
    builder: &mut CodeBuilder<C>,
1259
4.43k
) -> Result<Instruction> {
1260
4.43k
    builder.pop_operands(&[ValType::I32, ValType::I64]);
1261
4.43k
    Ok(Instruction::I64Store(mem_arg(u, module, &[0, 1, 2])?))
1262
4.43k
}
wasm_smith::code_builder::i64_store::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1255
2.61k
fn i64_store<C: Config>(
1256
2.61k
    u: &mut Unstructured,
1257
2.61k
    module: &ConfiguredModule<C>,
1258
2.61k
    builder: &mut CodeBuilder<C>,
1259
2.61k
) -> Result<Instruction> {
1260
2.61k
    builder.pop_operands(&[ValType::I32, ValType::I64]);
1261
2.61k
    Ok(Instruction::I64Store(mem_arg(u, module, &[0, 1, 2])?))
1262
2.61k
}
wasm_smith::code_builder::i64_store::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1255
1.81k
fn i64_store<C: Config>(
1256
1.81k
    u: &mut Unstructured,
1257
1.81k
    module: &ConfiguredModule<C>,
1258
1.81k
    builder: &mut CodeBuilder<C>,
1259
1.81k
) -> Result<Instruction> {
1260
1.81k
    builder.pop_operands(&[ValType::I32, ValType::I64]);
1261
1.81k
    Ok(Instruction::I64Store(mem_arg(u, module, &[0, 1, 2])?))
1262
1.81k
}
Unexecuted instantiation: wasm_smith::code_builder::i64_store::<wasm_smith::config::SwarmConfig>
1263
1264
#[inline]
1265
15.9M
fn f32_store_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1266
15.9M
    store_valid(module, builder, || ValType::F32)
wasm_smith::code_builder::f32_store_valid::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
1266
4.78M
    store_valid(module, builder, || ValType::F32)
wasm_smith::code_builder::f32_store_valid::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
1266
6.19M
    store_valid(module, builder, || ValType::F32)
1267
15.9M
}
wasm_smith::code_builder::f32_store_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1265
7.19M
fn f32_store_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1266
7.19M
    store_valid(module, builder, || ValType::F32)
1267
7.19M
}
wasm_smith::code_builder::f32_store_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1265
8.74M
fn f32_store_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1266
8.74M
    store_valid(module, builder, || ValType::F32)
1267
8.74M
}
Unexecuted instantiation: wasm_smith::code_builder::f32_store_valid::<wasm_smith::config::SwarmConfig>
1268
1269
4.20k
fn f32_store<C: Config>(
1270
4.20k
    u: &mut Unstructured,
1271
4.20k
    module: &ConfiguredModule<C>,
1272
4.20k
    builder: &mut CodeBuilder<C>,
1273
4.20k
) -> Result<Instruction> {
1274
4.20k
    builder.pop_operands(&[ValType::I32, ValType::F32]);
1275
4.20k
    Ok(Instruction::F32Store(mem_arg(u, module, &[0, 1])?))
1276
4.20k
}
wasm_smith::code_builder::f32_store::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1269
1.66k
fn f32_store<C: Config>(
1270
1.66k
    u: &mut Unstructured,
1271
1.66k
    module: &ConfiguredModule<C>,
1272
1.66k
    builder: &mut CodeBuilder<C>,
1273
1.66k
) -> Result<Instruction> {
1274
1.66k
    builder.pop_operands(&[ValType::I32, ValType::F32]);
1275
1.66k
    Ok(Instruction::F32Store(mem_arg(u, module, &[0, 1])?))
1276
1.66k
}
wasm_smith::code_builder::f32_store::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1269
2.54k
fn f32_store<C: Config>(
1270
2.54k
    u: &mut Unstructured,
1271
2.54k
    module: &ConfiguredModule<C>,
1272
2.54k
    builder: &mut CodeBuilder<C>,
1273
2.54k
) -> Result<Instruction> {
1274
2.54k
    builder.pop_operands(&[ValType::I32, ValType::F32]);
1275
2.54k
    Ok(Instruction::F32Store(mem_arg(u, module, &[0, 1])?))
1276
2.54k
}
Unexecuted instantiation: wasm_smith::code_builder::f32_store::<wasm_smith::config::SwarmConfig>
1277
1278
#[inline]
1279
15.9M
fn f64_store_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1280
15.9M
    store_valid(module, builder, || ValType::F64)
wasm_smith::code_builder::f64_store_valid::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
1280
4.78M
    store_valid(module, builder, || ValType::F64)
wasm_smith::code_builder::f64_store_valid::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
1280
6.19M
    store_valid(module, builder, || ValType::F64)
1281
15.9M
}
wasm_smith::code_builder::f64_store_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1279
7.19M
fn f64_store_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1280
7.19M
    store_valid(module, builder, || ValType::F64)
1281
7.19M
}
wasm_smith::code_builder::f64_store_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1279
8.74M
fn f64_store_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1280
8.74M
    store_valid(module, builder, || ValType::F64)
1281
8.74M
}
Unexecuted instantiation: wasm_smith::code_builder::f64_store_valid::<wasm_smith::config::SwarmConfig>
1282
1283
2.37k
fn f64_store<C: Config>(
1284
2.37k
    u: &mut Unstructured,
1285
2.37k
    module: &ConfiguredModule<C>,
1286
2.37k
    builder: &mut CodeBuilder<C>,
1287
2.37k
) -> Result<Instruction> {
1288
2.37k
    builder.pop_operands(&[ValType::I32, ValType::F64]);
1289
2.37k
    Ok(Instruction::F64Store(mem_arg(u, module, &[0, 1, 2])?))
1290
2.37k
}
wasm_smith::code_builder::f64_store::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1283
971
fn f64_store<C: Config>(
1284
971
    u: &mut Unstructured,
1285
971
    module: &ConfiguredModule<C>,
1286
971
    builder: &mut CodeBuilder<C>,
1287
971
) -> Result<Instruction> {
1288
971
    builder.pop_operands(&[ValType::I32, ValType::F64]);
1289
971
    Ok(Instruction::F64Store(mem_arg(u, module, &[0, 1, 2])?))
1290
971
}
wasm_smith::code_builder::f64_store::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1283
1.40k
fn f64_store<C: Config>(
1284
1.40k
    u: &mut Unstructured,
1285
1.40k
    module: &ConfiguredModule<C>,
1286
1.40k
    builder: &mut CodeBuilder<C>,
1287
1.40k
) -> Result<Instruction> {
1288
1.40k
    builder.pop_operands(&[ValType::I32, ValType::F64]);
1289
1.40k
    Ok(Instruction::F64Store(mem_arg(u, module, &[0, 1, 2])?))
1290
1.40k
}
Unexecuted instantiation: wasm_smith::code_builder::f64_store::<wasm_smith::config::SwarmConfig>
1291
1292
1.82k
fn i32_store_8<C: Config>(
1293
1.82k
    u: &mut Unstructured,
1294
1.82k
    module: &ConfiguredModule<C>,
1295
1.82k
    builder: &mut CodeBuilder<C>,
1296
1.82k
) -> Result<Instruction> {
1297
1.82k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1298
1.82k
    Ok(Instruction::I32Store8(mem_arg(u, module, &[0])?))
1299
1.82k
}
wasm_smith::code_builder::i32_store_8::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1292
615
fn i32_store_8<C: Config>(
1293
615
    u: &mut Unstructured,
1294
615
    module: &ConfiguredModule<C>,
1295
615
    builder: &mut CodeBuilder<C>,
1296
615
) -> Result<Instruction> {
1297
615
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1298
615
    Ok(Instruction::I32Store8(mem_arg(u, module, &[0])?))
1299
615
}
wasm_smith::code_builder::i32_store_8::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1292
1.21k
fn i32_store_8<C: Config>(
1293
1.21k
    u: &mut Unstructured,
1294
1.21k
    module: &ConfiguredModule<C>,
1295
1.21k
    builder: &mut CodeBuilder<C>,
1296
1.21k
) -> Result<Instruction> {
1297
1.21k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1298
1.21k
    Ok(Instruction::I32Store8(mem_arg(u, module, &[0])?))
1299
1.21k
}
Unexecuted instantiation: wasm_smith::code_builder::i32_store_8::<wasm_smith::config::SwarmConfig>
1300
1301
5.51k
fn i32_store_16<C: Config>(
1302
5.51k
    u: &mut Unstructured,
1303
5.51k
    module: &ConfiguredModule<C>,
1304
5.51k
    builder: &mut CodeBuilder<C>,
1305
5.51k
) -> Result<Instruction> {
1306
5.51k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1307
5.51k
    Ok(Instruction::I32Store16(mem_arg(u, module, &[0, 1])?))
1308
5.51k
}
wasm_smith::code_builder::i32_store_16::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1301
2.64k
fn i32_store_16<C: Config>(
1302
2.64k
    u: &mut Unstructured,
1303
2.64k
    module: &ConfiguredModule<C>,
1304
2.64k
    builder: &mut CodeBuilder<C>,
1305
2.64k
) -> Result<Instruction> {
1306
2.64k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1307
2.64k
    Ok(Instruction::I32Store16(mem_arg(u, module, &[0, 1])?))
1308
2.64k
}
wasm_smith::code_builder::i32_store_16::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1301
2.86k
fn i32_store_16<C: Config>(
1302
2.86k
    u: &mut Unstructured,
1303
2.86k
    module: &ConfiguredModule<C>,
1304
2.86k
    builder: &mut CodeBuilder<C>,
1305
2.86k
) -> Result<Instruction> {
1306
2.86k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1307
2.86k
    Ok(Instruction::I32Store16(mem_arg(u, module, &[0, 1])?))
1308
2.86k
}
Unexecuted instantiation: wasm_smith::code_builder::i32_store_16::<wasm_smith::config::SwarmConfig>
1309
1310
5.99k
fn i64_store_8<C: Config>(
1311
5.99k
    u: &mut Unstructured,
1312
5.99k
    module: &ConfiguredModule<C>,
1313
5.99k
    builder: &mut CodeBuilder<C>,
1314
5.99k
) -> Result<Instruction> {
1315
5.99k
    builder.pop_operands(&[ValType::I32, ValType::I64]);
1316
5.99k
    Ok(Instruction::I64Store8(mem_arg(u, module, &[0])?))
1317
5.99k
}
wasm_smith::code_builder::i64_store_8::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1310
2.22k
fn i64_store_8<C: Config>(
1311
2.22k
    u: &mut Unstructured,
1312
2.22k
    module: &ConfiguredModule<C>,
1313
2.22k
    builder: &mut CodeBuilder<C>,
1314
2.22k
) -> Result<Instruction> {
1315
2.22k
    builder.pop_operands(&[ValType::I32, ValType::I64]);
1316
2.22k
    Ok(Instruction::I64Store8(mem_arg(u, module, &[0])?))
1317
2.22k
}
wasm_smith::code_builder::i64_store_8::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1310
3.76k
fn i64_store_8<C: Config>(
1311
3.76k
    u: &mut Unstructured,
1312
3.76k
    module: &ConfiguredModule<C>,
1313
3.76k
    builder: &mut CodeBuilder<C>,
1314
3.76k
) -> Result<Instruction> {
1315
3.76k
    builder.pop_operands(&[ValType::I32, ValType::I64]);
1316
3.76k
    Ok(Instruction::I64Store8(mem_arg(u, module, &[0])?))
1317
3.76k
}
Unexecuted instantiation: wasm_smith::code_builder::i64_store_8::<wasm_smith::config::SwarmConfig>
1318
1319
3.60k
fn i64_store_16<C: Config>(
1320
3.60k
    u: &mut Unstructured,
1321
3.60k
    module: &ConfiguredModule<C>,
1322
3.60k
    builder: &mut CodeBuilder<C>,
1323
3.60k
) -> Result<Instruction> {
1324
3.60k
    builder.pop_operands(&[ValType::I32, ValType::I64]);
1325
3.60k
    Ok(Instruction::I64Store16(mem_arg(u, module, &[0, 1])?))
1326
3.60k
}
wasm_smith::code_builder::i64_store_16::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1319
2.21k
fn i64_store_16<C: Config>(
1320
2.21k
    u: &mut Unstructured,
1321
2.21k
    module: &ConfiguredModule<C>,
1322
2.21k
    builder: &mut CodeBuilder<C>,
1323
2.21k
) -> Result<Instruction> {
1324
2.21k
    builder.pop_operands(&[ValType::I32, ValType::I64]);
1325
2.21k
    Ok(Instruction::I64Store16(mem_arg(u, module, &[0, 1])?))
1326
2.21k
}
wasm_smith::code_builder::i64_store_16::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1319
1.38k
fn i64_store_16<C: Config>(
1320
1.38k
    u: &mut Unstructured,
1321
1.38k
    module: &ConfiguredModule<C>,
1322
1.38k
    builder: &mut CodeBuilder<C>,
1323
1.38k
) -> Result<Instruction> {
1324
1.38k
    builder.pop_operands(&[ValType::I32, ValType::I64]);
1325
1.38k
    Ok(Instruction::I64Store16(mem_arg(u, module, &[0, 1])?))
1326
1.38k
}
Unexecuted instantiation: wasm_smith::code_builder::i64_store_16::<wasm_smith::config::SwarmConfig>
1327
1328
5.60k
fn i64_store_32<C: Config>(
1329
5.60k
    u: &mut Unstructured,
1330
5.60k
    module: &ConfiguredModule<C>,
1331
5.60k
    builder: &mut CodeBuilder<C>,
1332
5.60k
) -> Result<Instruction> {
1333
5.60k
    builder.pop_operands(&[ValType::I32, ValType::I64]);
1334
5.60k
    Ok(Instruction::I64Store32(mem_arg(u, module, &[0, 1, 2])?))
1335
5.60k
}
wasm_smith::code_builder::i64_store_32::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1328
2.51k
fn i64_store_32<C: Config>(
1329
2.51k
    u: &mut Unstructured,
1330
2.51k
    module: &ConfiguredModule<C>,
1331
2.51k
    builder: &mut CodeBuilder<C>,
1332
2.51k
) -> Result<Instruction> {
1333
2.51k
    builder.pop_operands(&[ValType::I32, ValType::I64]);
1334
2.51k
    Ok(Instruction::I64Store32(mem_arg(u, module, &[0, 1, 2])?))
1335
2.51k
}
wasm_smith::code_builder::i64_store_32::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1328
3.09k
fn i64_store_32<C: Config>(
1329
3.09k
    u: &mut Unstructured,
1330
3.09k
    module: &ConfiguredModule<C>,
1331
3.09k
    builder: &mut CodeBuilder<C>,
1332
3.09k
) -> Result<Instruction> {
1333
3.09k
    builder.pop_operands(&[ValType::I32, ValType::I64]);
1334
3.09k
    Ok(Instruction::I64Store32(mem_arg(u, module, &[0, 1, 2])?))
1335
3.09k
}
Unexecuted instantiation: wasm_smith::code_builder::i64_store_32::<wasm_smith::config::SwarmConfig>
1336
1337
307k
fn memory_size<C: Config>(
1338
307k
    u: &mut Unstructured,
1339
307k
    module: &ConfiguredModule<C>,
1340
307k
    builder: &mut CodeBuilder<C>,
1341
307k
) -> Result<Instruction> {
1342
307k
    builder.push_operands(&[ValType::I32]);
1343
307k
    Ok(Instruction::MemorySize(memory_index(u, module)?))
1344
307k
}
wasm_smith::code_builder::memory_size::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1337
115k
fn memory_size<C: Config>(
1338
115k
    u: &mut Unstructured,
1339
115k
    module: &ConfiguredModule<C>,
1340
115k
    builder: &mut CodeBuilder<C>,
1341
115k
) -> Result<Instruction> {
1342
115k
    builder.push_operands(&[ValType::I32]);
1343
115k
    Ok(Instruction::MemorySize(memory_index(u, module)?))
1344
115k
}
wasm_smith::code_builder::memory_size::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1337
191k
fn memory_size<C: Config>(
1338
191k
    u: &mut Unstructured,
1339
191k
    module: &ConfiguredModule<C>,
1340
191k
    builder: &mut CodeBuilder<C>,
1341
191k
) -> Result<Instruction> {
1342
191k
    builder.push_operands(&[ValType::I32]);
1343
191k
    Ok(Instruction::MemorySize(memory_index(u, module)?))
1344
191k
}
Unexecuted instantiation: wasm_smith::code_builder::memory_size::<wasm_smith::config::SwarmConfig>
1345
1346
#[inline]
1347
15.9M
fn memory_grow_valid<C: Config>(
1348
15.9M
    module: &ConfiguredModule<C>,
1349
15.9M
    builder: &mut CodeBuilder<C>,
1350
15.9M
) -> bool {
1351
15.9M
    have_memory(module, builder) && builder.type_on_stack(ValType::I32)
1352
15.9M
}
wasm_smith::code_builder::memory_grow_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1347
7.19M
fn memory_grow_valid<C: Config>(
1348
7.19M
    module: &ConfiguredModule<C>,
1349
7.19M
    builder: &mut CodeBuilder<C>,
1350
7.19M
) -> bool {
1351
7.19M
    have_memory(module, builder) && builder.type_on_stack(ValType::I32)
1352
7.19M
}
wasm_smith::code_builder::memory_grow_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1347
8.74M
fn memory_grow_valid<C: Config>(
1348
8.74M
    module: &ConfiguredModule<C>,
1349
8.74M
    builder: &mut CodeBuilder<C>,
1350
8.74M
) -> bool {
1351
8.74M
    have_memory(module, builder) && builder.type_on_stack(ValType::I32)
1352
8.74M
}
1353
1354
41.7k
fn memory_grow<C: Config>(
1355
41.7k
    u: &mut Unstructured,
1356
41.7k
    module: &ConfiguredModule<C>,
1357
41.7k
    builder: &mut CodeBuilder<C>,
1358
41.7k
) -> Result<Instruction> {
1359
41.7k
    builder.pop_operands(&[ValType::I32]);
1360
41.7k
    builder.push_operands(&[ValType::I32]);
1361
41.7k
    Ok(Instruction::MemoryGrow(memory_index(u, module)?))
1362
41.7k
}
wasm_smith::code_builder::memory_grow::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1354
23.1k
fn memory_grow<C: Config>(
1355
23.1k
    u: &mut Unstructured,
1356
23.1k
    module: &ConfiguredModule<C>,
1357
23.1k
    builder: &mut CodeBuilder<C>,
1358
23.1k
) -> Result<Instruction> {
1359
23.1k
    builder.pop_operands(&[ValType::I32]);
1360
23.1k
    builder.push_operands(&[ValType::I32]);
1361
23.1k
    Ok(Instruction::MemoryGrow(memory_index(u, module)?))
1362
23.1k
}
wasm_smith::code_builder::memory_grow::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1354
18.6k
fn memory_grow<C: Config>(
1355
18.6k
    u: &mut Unstructured,
1356
18.6k
    module: &ConfiguredModule<C>,
1357
18.6k
    builder: &mut CodeBuilder<C>,
1358
18.6k
) -> Result<Instruction> {
1359
18.6k
    builder.pop_operands(&[ValType::I32]);
1360
18.6k
    builder.push_operands(&[ValType::I32]);
1361
18.6k
    Ok(Instruction::MemoryGrow(memory_index(u, module)?))
1362
18.6k
}
Unexecuted instantiation: wasm_smith::code_builder::memory_grow::<wasm_smith::config::SwarmConfig>
1363
1364
#[inline]
1365
15.9M
fn memory_init_valid<C: Config>(
1366
15.9M
    module: &ConfiguredModule<C>,
1367
15.9M
    builder: &mut CodeBuilder<C>,
1368
15.9M
) -> bool {
1369
15.9M
    have_memory(module, builder)
1370
10.9M
        && have_data(module, builder)
1371
3.96M
        && module.config.bulk_memory_enabled()
1372
1.83M
        && builder.types_on_stack(&[ValType::I32, ValType::I32, ValType::I32])
1373
15.9M
}
wasm_smith::code_builder::memory_init_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1365
7.19M
fn memory_init_valid<C: Config>(
1366
7.19M
    module: &ConfiguredModule<C>,
1367
7.19M
    builder: &mut CodeBuilder<C>,
1368
7.19M
) -> bool {
1369
7.19M
    have_memory(module, builder)
1370
4.78M
        && have_data(module, builder)
1371
2.16M
        && module.config.bulk_memory_enabled()
1372
1.83M
        && builder.types_on_stack(&[ValType::I32, ValType::I32, ValType::I32])
1373
7.19M
}
wasm_smith::code_builder::memory_init_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1365
8.74M
fn memory_init_valid<C: Config>(
1366
8.74M
    module: &ConfiguredModule<C>,
1367
8.74M
    builder: &mut CodeBuilder<C>,
1368
8.74M
) -> bool {
1369
8.74M
    have_memory(module, builder)
1370
6.19M
        && have_data(module, builder)
1371
1.80M
        && module.config.bulk_memory_enabled()
1372
0
        && builder.types_on_stack(&[ValType::I32, ValType::I32, ValType::I32])
1373
8.74M
}
1374
1375
474
fn memory_init<C: Config>(
1376
474
    u: &mut Unstructured,
1377
474
    module: &ConfiguredModule<C>,
1378
474
    builder: &mut CodeBuilder<C>,
1379
474
) -> Result<Instruction> {
1380
474
    let mem = memory_index(u, module)?;
1381
473
    let data = data_index(u, module)?;
1382
471
    builder.pop_operands(&[ValType::I32, ValType::I32, ValType::I32]);
1383
471
    Ok(Instruction::MemoryInit { mem, data })
1384
474
}
wasm_smith::code_builder::memory_init::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1375
474
fn memory_init<C: Config>(
1376
474
    u: &mut Unstructured,
1377
474
    module: &ConfiguredModule<C>,
1378
474
    builder: &mut CodeBuilder<C>,
1379
474
) -> Result<Instruction> {
1380
474
    let mem = memory_index(u, module)?;
1381
473
    let data = data_index(u, module)?;
1382
471
    builder.pop_operands(&[ValType::I32, ValType::I32, ValType::I32]);
1383
471
    Ok(Instruction::MemoryInit { mem, data })
1384
474
}
Unexecuted instantiation: wasm_smith::code_builder::memory_init::<wasm_smith::config::DefaultConfig>
Unexecuted instantiation: wasm_smith::code_builder::memory_init::<wasm_smith::config::SwarmConfig>
1385
1386
#[inline]
1387
31.8M
fn memory_fill_valid<C: Config>(
1388
31.8M
    module: &ConfiguredModule<C>,
1389
31.8M
    builder: &mut CodeBuilder<C>,
1390
31.8M
) -> bool {
1391
31.8M
    have_memory(module, builder)
1392
21.9M
        && module.config.bulk_memory_enabled()
1393
8.09M
        && builder.types_on_stack(&[ValType::I32, ValType::I32, ValType::I32])
1394
31.8M
}
wasm_smith::code_builder::memory_fill_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1387
14.3M
fn memory_fill_valid<C: Config>(
1388
14.3M
    module: &ConfiguredModule<C>,
1389
14.3M
    builder: &mut CodeBuilder<C>,
1390
14.3M
) -> bool {
1391
14.3M
    have_memory(module, builder)
1392
9.57M
        && module.config.bulk_memory_enabled()
1393
8.09M
        && builder.types_on_stack(&[ValType::I32, ValType::I32, ValType::I32])
1394
14.3M
}
wasm_smith::code_builder::memory_fill_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1387
17.4M
fn memory_fill_valid<C: Config>(
1388
17.4M
    module: &ConfiguredModule<C>,
1389
17.4M
    builder: &mut CodeBuilder<C>,
1390
17.4M
) -> bool {
1391
17.4M
    have_memory(module, builder)
1392
12.3M
        && module.config.bulk_memory_enabled()
1393
0
        && builder.types_on_stack(&[ValType::I32, ValType::I32, ValType::I32])
1394
17.4M
}
1395
1396
557
fn memory_fill<C: Config>(
1397
557
    u: &mut Unstructured,
1398
557
    module: &ConfiguredModule<C>,
1399
557
    builder: &mut CodeBuilder<C>,
1400
557
) -> Result<Instruction> {
1401
557
    let mem = memory_index(u, module)?;
1402
557
    builder.pop_operands(&[ValType::I32, ValType::I32, ValType::I32]);
1403
557
    Ok(Instruction::MemoryFill(mem))
1404
557
}
wasm_smith::code_builder::memory_fill::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1396
557
fn memory_fill<C: Config>(
1397
557
    u: &mut Unstructured,
1398
557
    module: &ConfiguredModule<C>,
1399
557
    builder: &mut CodeBuilder<C>,
1400
557
) -> Result<Instruction> {
1401
557
    let mem = memory_index(u, module)?;
1402
557
    builder.pop_operands(&[ValType::I32, ValType::I32, ValType::I32]);
1403
557
    Ok(Instruction::MemoryFill(mem))
1404
557
}
Unexecuted instantiation: wasm_smith::code_builder::memory_fill::<wasm_smith::config::DefaultConfig>
Unexecuted instantiation: wasm_smith::code_builder::memory_fill::<wasm_smith::config::SwarmConfig>
1405
1406
#[inline]
1407
15.9M
fn memory_copy_valid<C: Config>(
1408
15.9M
    module: &ConfiguredModule<C>,
1409
15.9M
    builder: &mut CodeBuilder<C>,
1410
15.9M
) -> bool {
1411
15.9M
    memory_fill_valid(module, builder)
1412
15.9M
}
wasm_smith::code_builder::memory_copy_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1407
7.19M
fn memory_copy_valid<C: Config>(
1408
7.19M
    module: &ConfiguredModule<C>,
1409
7.19M
    builder: &mut CodeBuilder<C>,
1410
7.19M
) -> bool {
1411
7.19M
    memory_fill_valid(module, builder)
1412
7.19M
}
wasm_smith::code_builder::memory_copy_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1407
8.74M
fn memory_copy_valid<C: Config>(
1408
8.74M
    module: &ConfiguredModule<C>,
1409
8.74M
    builder: &mut CodeBuilder<C>,
1410
8.74M
) -> bool {
1411
8.74M
    memory_fill_valid(module, builder)
1412
8.74M
}
1413
1414
2.78k
fn memory_copy<C: Config>(
1415
2.78k
    u: &mut Unstructured,
1416
2.78k
    module: &ConfiguredModule<C>,
1417
2.78k
    builder: &mut CodeBuilder<C>,
1418
2.78k
) -> Result<Instruction> {
1419
2.78k
    let src = memory_index(u, module)?;
1420
2.78k
    let dst = memory_index(u, module)?;
1421
2.78k
    builder.pop_operands(&[ValType::I32, ValType::I32, ValType::I32]);
1422
2.78k
    Ok(Instruction::MemoryCopy { dst, src })
1423
2.78k
}
wasm_smith::code_builder::memory_copy::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1414
2.78k
fn memory_copy<C: Config>(
1415
2.78k
    u: &mut Unstructured,
1416
2.78k
    module: &ConfiguredModule<C>,
1417
2.78k
    builder: &mut CodeBuilder<C>,
1418
2.78k
) -> Result<Instruction> {
1419
2.78k
    let src = memory_index(u, module)?;
1420
2.78k
    let dst = memory_index(u, module)?;
1421
2.78k
    builder.pop_operands(&[ValType::I32, ValType::I32, ValType::I32]);
1422
2.78k
    Ok(Instruction::MemoryCopy { dst, src })
1423
2.78k
}
Unexecuted instantiation: wasm_smith::code_builder::memory_copy::<wasm_smith::config::DefaultConfig>
Unexecuted instantiation: wasm_smith::code_builder::memory_copy::<wasm_smith::config::SwarmConfig>
1424
1425
#[inline]
1426
15.9M
fn data_drop_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1427
15.9M
    have_data(module, builder) && module.config.bulk_memory_enabled()
1428
15.9M
}
wasm_smith::code_builder::data_drop_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1426
7.19M
fn data_drop_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1427
7.19M
    have_data(module, builder) && module.config.bulk_memory_enabled()
1428
7.19M
}
wasm_smith::code_builder::data_drop_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1426
8.74M
fn data_drop_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1427
8.74M
    have_data(module, builder) && module.config.bulk_memory_enabled()
1428
8.74M
}
1429
1430
122k
fn data_drop<C: Config>(
1431
122k
    u: &mut Unstructured,
1432
122k
    module: &ConfiguredModule<C>,
1433
122k
    _builder: &mut CodeBuilder<C>,
1434
122k
) -> Result<Instruction> {
1435
122k
    Ok(Instruction::DataDrop(data_index(u, module)?))
1436
122k
}
wasm_smith::code_builder::data_drop::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1430
122k
fn data_drop<C: Config>(
1431
122k
    u: &mut Unstructured,
1432
122k
    module: &ConfiguredModule<C>,
1433
122k
    _builder: &mut CodeBuilder<C>,
1434
122k
) -> Result<Instruction> {
1435
122k
    Ok(Instruction::DataDrop(data_index(u, module)?))
1436
122k
}
Unexecuted instantiation: wasm_smith::code_builder::data_drop::<wasm_smith::config::DefaultConfig>
Unexecuted instantiation: wasm_smith::code_builder::data_drop::<wasm_smith::config::SwarmConfig>
1437
1438
434k
fn i32_const<C: Config>(
1439
434k
    u: &mut Unstructured,
1440
434k
    _: &ConfiguredModule<C>,
1441
434k
    builder: &mut CodeBuilder<C>,
1442
434k
) -> Result<Instruction> {
1443
434k
    let x = u.arbitrary()?;
1444
434k
    builder.push_operands(&[ValType::I32]);
1445
434k
    Ok(Instruction::I32Const(x))
1446
434k
}
wasm_smith::code_builder::i32_const::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1438
219k
fn i32_const<C: Config>(
1439
219k
    u: &mut Unstructured,
1440
219k
    _: &ConfiguredModule<C>,
1441
219k
    builder: &mut CodeBuilder<C>,
1442
219k
) -> Result<Instruction> {
1443
219k
    let x = u.arbitrary()?;
1444
219k
    builder.push_operands(&[ValType::I32]);
1445
219k
    Ok(Instruction::I32Const(x))
1446
219k
}
wasm_smith::code_builder::i32_const::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1438
215k
fn i32_const<C: Config>(
1439
215k
    u: &mut Unstructured,
1440
215k
    _: &ConfiguredModule<C>,
1441
215k
    builder: &mut CodeBuilder<C>,
1442
215k
) -> Result<Instruction> {
1443
215k
    let x = u.arbitrary()?;
1444
215k
    builder.push_operands(&[ValType::I32]);
1445
215k
    Ok(Instruction::I32Const(x))
1446
215k
}
Unexecuted instantiation: wasm_smith::code_builder::i32_const::<wasm_smith::config::SwarmConfig>
1447
1448
298k
fn i64_const<C: Config>(
1449
298k
    u: &mut Unstructured,
1450
298k
    _: &ConfiguredModule<C>,
1451
298k
    builder: &mut CodeBuilder<C>,
1452
298k
) -> Result<Instruction> {
1453
298k
    let x = u.arbitrary()?;
1454
298k
    builder.push_operands(&[ValType::I64]);
1455
298k
    Ok(Instruction::I64Const(x))
1456
298k
}
wasm_smith::code_builder::i64_const::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1448
201k
fn i64_const<C: Config>(
1449
201k
    u: &mut Unstructured,
1450
201k
    _: &ConfiguredModule<C>,
1451
201k
    builder: &mut CodeBuilder<C>,
1452
201k
) -> Result<Instruction> {
1453
201k
    let x = u.arbitrary()?;
1454
201k
    builder.push_operands(&[ValType::I64]);
1455
201k
    Ok(Instruction::I64Const(x))
1456
201k
}
wasm_smith::code_builder::i64_const::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1448
96.8k
fn i64_const<C: Config>(
1449
96.8k
    u: &mut Unstructured,
1450
96.8k
    _: &ConfiguredModule<C>,
1451
96.8k
    builder: &mut CodeBuilder<C>,
1452
96.8k
) -> Result<Instruction> {
1453
96.8k
    let x = u.arbitrary()?;
1454
96.8k
    builder.push_operands(&[ValType::I64]);
1455
96.8k
    Ok(Instruction::I64Const(x))
1456
96.8k
}
Unexecuted instantiation: wasm_smith::code_builder::i64_const::<wasm_smith::config::SwarmConfig>
1457
1458
399k
fn f32_const<C: Config>(
1459
399k
    u: &mut Unstructured,
1460
399k
    _: &ConfiguredModule<C>,
1461
399k
    builder: &mut CodeBuilder<C>,
1462
399k
) -> Result<Instruction> {
1463
399k
    let x = u.arbitrary()?;
1464
399k
    builder.push_operands(&[ValType::F32]);
1465
399k
    Ok(Instruction::F32Const(x))
1466
399k
}
wasm_smith::code_builder::f32_const::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1458
247k
fn f32_const<C: Config>(
1459
247k
    u: &mut Unstructured,
1460
247k
    _: &ConfiguredModule<C>,
1461
247k
    builder: &mut CodeBuilder<C>,
1462
247k
) -> Result<Instruction> {
1463
247k
    let x = u.arbitrary()?;
1464
247k
    builder.push_operands(&[ValType::F32]);
1465
247k
    Ok(Instruction::F32Const(x))
1466
247k
}
wasm_smith::code_builder::f32_const::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1458
151k
fn f32_const<C: Config>(
1459
151k
    u: &mut Unstructured,
1460
151k
    _: &ConfiguredModule<C>,
1461
151k
    builder: &mut CodeBuilder<C>,
1462
151k
) -> Result<Instruction> {
1463
151k
    let x = u.arbitrary()?;
1464
151k
    builder.push_operands(&[ValType::F32]);
1465
151k
    Ok(Instruction::F32Const(x))
1466
151k
}
Unexecuted instantiation: wasm_smith::code_builder::f32_const::<wasm_smith::config::SwarmConfig>
1467
1468
400k
fn f64_const<C: Config>(
1469
400k
    u: &mut Unstructured,
1470
400k
    _: &ConfiguredModule<C>,
1471
400k
    builder: &mut CodeBuilder<C>,
1472
400k
) -> Result<Instruction> {
1473
400k
    let x = u.arbitrary()?;
1474
400k
    builder.push_operands(&[ValType::F64]);
1475
400k
    Ok(Instruction::F64Const(x))
1476
400k
}
wasm_smith::code_builder::f64_const::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1468
188k
fn f64_const<C: Config>(
1469
188k
    u: &mut Unstructured,
1470
188k
    _: &ConfiguredModule<C>,
1471
188k
    builder: &mut CodeBuilder<C>,
1472
188k
) -> Result<Instruction> {
1473
188k
    let x = u.arbitrary()?;
1474
188k
    builder.push_operands(&[ValType::F64]);
1475
188k
    Ok(Instruction::F64Const(x))
1476
188k
}
wasm_smith::code_builder::f64_const::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1468
211k
fn f64_const<C: Config>(
1469
211k
    u: &mut Unstructured,
1470
211k
    _: &ConfiguredModule<C>,
1471
211k
    builder: &mut CodeBuilder<C>,
1472
211k
) -> Result<Instruction> {
1473
211k
    let x = u.arbitrary()?;
1474
211k
    builder.push_operands(&[ValType::F64]);
1475
211k
    Ok(Instruction::F64Const(x))
1476
211k
}
Unexecuted instantiation: wasm_smith::code_builder::f64_const::<wasm_smith::config::SwarmConfig>
1477
1478
#[inline]
1479
207M
fn i32_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1480
207M
    builder.type_on_stack(ValType::I32)
1481
207M
}
wasm_smith::code_builder::i32_on_stack::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1479
93.5M
fn i32_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1480
93.5M
    builder.type_on_stack(ValType::I32)
1481
93.5M
}
wasm_smith::code_builder::i32_on_stack::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1479
113M
fn i32_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1480
113M
    builder.type_on_stack(ValType::I32)
1481
113M
}
1482
1483
109k
fn i32_eqz<C: Config>(
1484
109k
    _: &mut Unstructured,
1485
109k
    _: &ConfiguredModule<C>,
1486
109k
    builder: &mut CodeBuilder<C>,
1487
109k
) -> Result<Instruction> {
1488
109k
    builder.pop_operands(&[ValType::I32]);
1489
109k
    builder.push_operands(&[ValType::I32]);
1490
109k
    Ok(Instruction::I32Eqz)
1491
109k
}
wasm_smith::code_builder::i32_eqz::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1483
66.6k
fn i32_eqz<C: Config>(
1484
66.6k
    _: &mut Unstructured,
1485
66.6k
    _: &ConfiguredModule<C>,
1486
66.6k
    builder: &mut CodeBuilder<C>,
1487
66.6k
) -> Result<Instruction> {
1488
66.6k
    builder.pop_operands(&[ValType::I32]);
1489
66.6k
    builder.push_operands(&[ValType::I32]);
1490
66.6k
    Ok(Instruction::I32Eqz)
1491
66.6k
}
wasm_smith::code_builder::i32_eqz::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1483
42.5k
fn i32_eqz<C: Config>(
1484
42.5k
    _: &mut Unstructured,
1485
42.5k
    _: &ConfiguredModule<C>,
1486
42.5k
    builder: &mut CodeBuilder<C>,
1487
42.5k
) -> Result<Instruction> {
1488
42.5k
    builder.pop_operands(&[ValType::I32]);
1489
42.5k
    builder.push_operands(&[ValType::I32]);
1490
42.5k
    Ok(Instruction::I32Eqz)
1491
42.5k
}
1492
1493
#[inline]
1494
398M
fn i32_i32_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1495
398M
    builder.types_on_stack(&[ValType::I32, ValType::I32])
1496
398M
}
wasm_smith::code_builder::i32_i32_on_stack::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1494
179M
fn i32_i32_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1495
179M
    builder.types_on_stack(&[ValType::I32, ValType::I32])
1496
179M
}
wasm_smith::code_builder::i32_i32_on_stack::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1494
218M
fn i32_i32_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1495
218M
    builder.types_on_stack(&[ValType::I32, ValType::I32])
1496
218M
}
1497
1498
32.4k
fn i32_eq<C: Config>(
1499
32.4k
    _: &mut Unstructured,
1500
32.4k
    _: &ConfiguredModule<C>,
1501
32.4k
    builder: &mut CodeBuilder<C>,
1502
32.4k
) -> Result<Instruction> {
1503
32.4k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1504
32.4k
    builder.push_operands(&[ValType::I32]);
1505
32.4k
    Ok(Instruction::I32Eq)
1506
32.4k
}
wasm_smith::code_builder::i32_eq::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1498
24.3k
fn i32_eq<C: Config>(
1499
24.3k
    _: &mut Unstructured,
1500
24.3k
    _: &ConfiguredModule<C>,
1501
24.3k
    builder: &mut CodeBuilder<C>,
1502
24.3k
) -> Result<Instruction> {
1503
24.3k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1504
24.3k
    builder.push_operands(&[ValType::I32]);
1505
24.3k
    Ok(Instruction::I32Eq)
1506
24.3k
}
wasm_smith::code_builder::i32_eq::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1498
8.15k
fn i32_eq<C: Config>(
1499
8.15k
    _: &mut Unstructured,
1500
8.15k
    _: &ConfiguredModule<C>,
1501
8.15k
    builder: &mut CodeBuilder<C>,
1502
8.15k
) -> Result<Instruction> {
1503
8.15k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1504
8.15k
    builder.push_operands(&[ValType::I32]);
1505
8.15k
    Ok(Instruction::I32Eq)
1506
8.15k
}
1507
1508
4.91k
fn i32_neq<C: Config>(
1509
4.91k
    _: &mut Unstructured,
1510
4.91k
    _: &ConfiguredModule<C>,
1511
4.91k
    builder: &mut CodeBuilder<C>,
1512
4.91k
) -> Result<Instruction> {
1513
4.91k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1514
4.91k
    builder.push_operands(&[ValType::I32]);
1515
4.91k
    Ok(Instruction::I32Neq)
1516
4.91k
}
wasm_smith::code_builder::i32_neq::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1508
2.33k
fn i32_neq<C: Config>(
1509
2.33k
    _: &mut Unstructured,
1510
2.33k
    _: &ConfiguredModule<C>,
1511
2.33k
    builder: &mut CodeBuilder<C>,
1512
2.33k
) -> Result<Instruction> {
1513
2.33k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1514
2.33k
    builder.push_operands(&[ValType::I32]);
1515
2.33k
    Ok(Instruction::I32Neq)
1516
2.33k
}
wasm_smith::code_builder::i32_neq::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1508
2.58k
fn i32_neq<C: Config>(
1509
2.58k
    _: &mut Unstructured,
1510
2.58k
    _: &ConfiguredModule<C>,
1511
2.58k
    builder: &mut CodeBuilder<C>,
1512
2.58k
) -> Result<Instruction> {
1513
2.58k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1514
2.58k
    builder.push_operands(&[ValType::I32]);
1515
2.58k
    Ok(Instruction::I32Neq)
1516
2.58k
}
1517
1518
16.9k
fn i32_lt_s<C: Config>(
1519
16.9k
    _: &mut Unstructured,
1520
16.9k
    _: &ConfiguredModule<C>,
1521
16.9k
    builder: &mut CodeBuilder<C>,
1522
16.9k
) -> Result<Instruction> {
1523
16.9k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1524
16.9k
    builder.push_operands(&[ValType::I32]);
1525
16.9k
    Ok(Instruction::I32LtS)
1526
16.9k
}
wasm_smith::code_builder::i32_lt_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1518
2.38k
fn i32_lt_s<C: Config>(
1519
2.38k
    _: &mut Unstructured,
1520
2.38k
    _: &ConfiguredModule<C>,
1521
2.38k
    builder: &mut CodeBuilder<C>,
1522
2.38k
) -> Result<Instruction> {
1523
2.38k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1524
2.38k
    builder.push_operands(&[ValType::I32]);
1525
2.38k
    Ok(Instruction::I32LtS)
1526
2.38k
}
wasm_smith::code_builder::i32_lt_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1518
14.5k
fn i32_lt_s<C: Config>(
1519
14.5k
    _: &mut Unstructured,
1520
14.5k
    _: &ConfiguredModule<C>,
1521
14.5k
    builder: &mut CodeBuilder<C>,
1522
14.5k
) -> Result<Instruction> {
1523
14.5k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1524
14.5k
    builder.push_operands(&[ValType::I32]);
1525
14.5k
    Ok(Instruction::I32LtS)
1526
14.5k
}
1527
1528
4.27k
fn i32_lt_u<C: Config>(
1529
4.27k
    _: &mut Unstructured,
1530
4.27k
    _: &ConfiguredModule<C>,
1531
4.27k
    builder: &mut CodeBuilder<C>,
1532
4.27k
) -> Result<Instruction> {
1533
4.27k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1534
4.27k
    builder.push_operands(&[ValType::I32]);
1535
4.27k
    Ok(Instruction::I32LtU)
1536
4.27k
}
wasm_smith::code_builder::i32_lt_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1528
1.58k
fn i32_lt_u<C: Config>(
1529
1.58k
    _: &mut Unstructured,
1530
1.58k
    _: &ConfiguredModule<C>,
1531
1.58k
    builder: &mut CodeBuilder<C>,
1532
1.58k
) -> Result<Instruction> {
1533
1.58k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1534
1.58k
    builder.push_operands(&[ValType::I32]);
1535
1.58k
    Ok(Instruction::I32LtU)
1536
1.58k
}
wasm_smith::code_builder::i32_lt_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1528
2.68k
fn i32_lt_u<C: Config>(
1529
2.68k
    _: &mut Unstructured,
1530
2.68k
    _: &ConfiguredModule<C>,
1531
2.68k
    builder: &mut CodeBuilder<C>,
1532
2.68k
) -> Result<Instruction> {
1533
2.68k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1534
2.68k
    builder.push_operands(&[ValType::I32]);
1535
2.68k
    Ok(Instruction::I32LtU)
1536
2.68k
}
1537
1538
15.4k
fn i32_gt_s<C: Config>(
1539
15.4k
    _: &mut Unstructured,
1540
15.4k
    _: &ConfiguredModule<C>,
1541
15.4k
    builder: &mut CodeBuilder<C>,
1542
15.4k
) -> Result<Instruction> {
1543
15.4k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1544
15.4k
    builder.push_operands(&[ValType::I32]);
1545
15.4k
    Ok(Instruction::I32GtS)
1546
15.4k
}
wasm_smith::code_builder::i32_gt_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1538
2.60k
fn i32_gt_s<C: Config>(
1539
2.60k
    _: &mut Unstructured,
1540
2.60k
    _: &ConfiguredModule<C>,
1541
2.60k
    builder: &mut CodeBuilder<C>,
1542
2.60k
) -> Result<Instruction> {
1543
2.60k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1544
2.60k
    builder.push_operands(&[ValType::I32]);
1545
2.60k
    Ok(Instruction::I32GtS)
1546
2.60k
}
wasm_smith::code_builder::i32_gt_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1538
12.8k
fn i32_gt_s<C: Config>(
1539
12.8k
    _: &mut Unstructured,
1540
12.8k
    _: &ConfiguredModule<C>,
1541
12.8k
    builder: &mut CodeBuilder<C>,
1542
12.8k
) -> Result<Instruction> {
1543
12.8k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1544
12.8k
    builder.push_operands(&[ValType::I32]);
1545
12.8k
    Ok(Instruction::I32GtS)
1546
12.8k
}
1547
1548
3.11k
fn i32_gt_u<C: Config>(
1549
3.11k
    _: &mut Unstructured,
1550
3.11k
    _: &ConfiguredModule<C>,
1551
3.11k
    builder: &mut CodeBuilder<C>,
1552
3.11k
) -> Result<Instruction> {
1553
3.11k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1554
3.11k
    builder.push_operands(&[ValType::I32]);
1555
3.11k
    Ok(Instruction::I32GtU)
1556
3.11k
}
wasm_smith::code_builder::i32_gt_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1548
1.63k
fn i32_gt_u<C: Config>(
1549
1.63k
    _: &mut Unstructured,
1550
1.63k
    _: &ConfiguredModule<C>,
1551
1.63k
    builder: &mut CodeBuilder<C>,
1552
1.63k
) -> Result<Instruction> {
1553
1.63k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1554
1.63k
    builder.push_operands(&[ValType::I32]);
1555
1.63k
    Ok(Instruction::I32GtU)
1556
1.63k
}
wasm_smith::code_builder::i32_gt_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1548
1.47k
fn i32_gt_u<C: Config>(
1549
1.47k
    _: &mut Unstructured,
1550
1.47k
    _: &ConfiguredModule<C>,
1551
1.47k
    builder: &mut CodeBuilder<C>,
1552
1.47k
) -> Result<Instruction> {
1553
1.47k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1554
1.47k
    builder.push_operands(&[ValType::I32]);
1555
1.47k
    Ok(Instruction::I32GtU)
1556
1.47k
}
1557
1558
3.89k
fn i32_le_s<C: Config>(
1559
3.89k
    _: &mut Unstructured,
1560
3.89k
    _: &ConfiguredModule<C>,
1561
3.89k
    builder: &mut CodeBuilder<C>,
1562
3.89k
) -> Result<Instruction> {
1563
3.89k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1564
3.89k
    builder.push_operands(&[ValType::I32]);
1565
3.89k
    Ok(Instruction::I32LeS)
1566
3.89k
}
wasm_smith::code_builder::i32_le_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1558
2.09k
fn i32_le_s<C: Config>(
1559
2.09k
    _: &mut Unstructured,
1560
2.09k
    _: &ConfiguredModule<C>,
1561
2.09k
    builder: &mut CodeBuilder<C>,
1562
2.09k
) -> Result<Instruction> {
1563
2.09k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1564
2.09k
    builder.push_operands(&[ValType::I32]);
1565
2.09k
    Ok(Instruction::I32LeS)
1566
2.09k
}
wasm_smith::code_builder::i32_le_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1558
1.80k
fn i32_le_s<C: Config>(
1559
1.80k
    _: &mut Unstructured,
1560
1.80k
    _: &ConfiguredModule<C>,
1561
1.80k
    builder: &mut CodeBuilder<C>,
1562
1.80k
) -> Result<Instruction> {
1563
1.80k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1564
1.80k
    builder.push_operands(&[ValType::I32]);
1565
1.80k
    Ok(Instruction::I32LeS)
1566
1.80k
}
1567
1568
3.65k
fn i32_le_u<C: Config>(
1569
3.65k
    _: &mut Unstructured,
1570
3.65k
    _: &ConfiguredModule<C>,
1571
3.65k
    builder: &mut CodeBuilder<C>,
1572
3.65k
) -> Result<Instruction> {
1573
3.65k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1574
3.65k
    builder.push_operands(&[ValType::I32]);
1575
3.65k
    Ok(Instruction::I32LeU)
1576
3.65k
}
wasm_smith::code_builder::i32_le_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1568
1.47k
fn i32_le_u<C: Config>(
1569
1.47k
    _: &mut Unstructured,
1570
1.47k
    _: &ConfiguredModule<C>,
1571
1.47k
    builder: &mut CodeBuilder<C>,
1572
1.47k
) -> Result<Instruction> {
1573
1.47k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1574
1.47k
    builder.push_operands(&[ValType::I32]);
1575
1.47k
    Ok(Instruction::I32LeU)
1576
1.47k
}
wasm_smith::code_builder::i32_le_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1568
2.18k
fn i32_le_u<C: Config>(
1569
2.18k
    _: &mut Unstructured,
1570
2.18k
    _: &ConfiguredModule<C>,
1571
2.18k
    builder: &mut CodeBuilder<C>,
1572
2.18k
) -> Result<Instruction> {
1573
2.18k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1574
2.18k
    builder.push_operands(&[ValType::I32]);
1575
2.18k
    Ok(Instruction::I32LeU)
1576
2.18k
}
1577
1578
54.6k
fn i32_ge_s<C: Config>(
1579
54.6k
    _: &mut Unstructured,
1580
54.6k
    _: &ConfiguredModule<C>,
1581
54.6k
    builder: &mut CodeBuilder<C>,
1582
54.6k
) -> Result<Instruction> {
1583
54.6k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1584
54.6k
    builder.push_operands(&[ValType::I32]);
1585
54.6k
    Ok(Instruction::I32GeS)
1586
54.6k
}
wasm_smith::code_builder::i32_ge_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1578
39.0k
fn i32_ge_s<C: Config>(
1579
39.0k
    _: &mut Unstructured,
1580
39.0k
    _: &ConfiguredModule<C>,
1581
39.0k
    builder: &mut CodeBuilder<C>,
1582
39.0k
) -> Result<Instruction> {
1583
39.0k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1584
39.0k
    builder.push_operands(&[ValType::I32]);
1585
39.0k
    Ok(Instruction::I32GeS)
1586
39.0k
}
wasm_smith::code_builder::i32_ge_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1578
15.5k
fn i32_ge_s<C: Config>(
1579
15.5k
    _: &mut Unstructured,
1580
15.5k
    _: &ConfiguredModule<C>,
1581
15.5k
    builder: &mut CodeBuilder<C>,
1582
15.5k
) -> Result<Instruction> {
1583
15.5k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1584
15.5k
    builder.push_operands(&[ValType::I32]);
1585
15.5k
    Ok(Instruction::I32GeS)
1586
15.5k
}
1587
1588
4.42k
fn i32_ge_u<C: Config>(
1589
4.42k
    _: &mut Unstructured,
1590
4.42k
    _: &ConfiguredModule<C>,
1591
4.42k
    builder: &mut CodeBuilder<C>,
1592
4.42k
) -> Result<Instruction> {
1593
4.42k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1594
4.42k
    builder.push_operands(&[ValType::I32]);
1595
4.42k
    Ok(Instruction::I32GeU)
1596
4.42k
}
wasm_smith::code_builder::i32_ge_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1588
1.46k
fn i32_ge_u<C: Config>(
1589
1.46k
    _: &mut Unstructured,
1590
1.46k
    _: &ConfiguredModule<C>,
1591
1.46k
    builder: &mut CodeBuilder<C>,
1592
1.46k
) -> Result<Instruction> {
1593
1.46k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1594
1.46k
    builder.push_operands(&[ValType::I32]);
1595
1.46k
    Ok(Instruction::I32GeU)
1596
1.46k
}
wasm_smith::code_builder::i32_ge_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1588
2.95k
fn i32_ge_u<C: Config>(
1589
2.95k
    _: &mut Unstructured,
1590
2.95k
    _: &ConfiguredModule<C>,
1591
2.95k
    builder: &mut CodeBuilder<C>,
1592
2.95k
) -> Result<Instruction> {
1593
2.95k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1594
2.95k
    builder.push_operands(&[ValType::I32]);
1595
2.95k
    Ok(Instruction::I32GeU)
1596
2.95k
}
1597
1598
#[inline]
1599
207M
fn i64_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1600
207M
    builder.types_on_stack(&[ValType::I64])
1601
207M
}
wasm_smith::code_builder::i64_on_stack::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1599
93.5M
fn i64_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1600
93.5M
    builder.types_on_stack(&[ValType::I64])
1601
93.5M
}
wasm_smith::code_builder::i64_on_stack::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1599
113M
fn i64_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1600
113M
    builder.types_on_stack(&[ValType::I64])
1601
113M
}
1602
1603
67.8k
fn i64_eqz<C: Config>(
1604
67.8k
    _: &mut Unstructured,
1605
67.8k
    _: &ConfiguredModule<C>,
1606
67.8k
    builder: &mut CodeBuilder<C>,
1607
67.8k
) -> Result<Instruction> {
1608
67.8k
    builder.pop_operands(&[ValType::I64]);
1609
67.8k
    builder.push_operands(&[ValType::I32]);
1610
67.8k
    Ok(Instruction::I64Eqz)
1611
67.8k
}
wasm_smith::code_builder::i64_eqz::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1603
29.9k
fn i64_eqz<C: Config>(
1604
29.9k
    _: &mut Unstructured,
1605
29.9k
    _: &ConfiguredModule<C>,
1606
29.9k
    builder: &mut CodeBuilder<C>,
1607
29.9k
) -> Result<Instruction> {
1608
29.9k
    builder.pop_operands(&[ValType::I64]);
1609
29.9k
    builder.push_operands(&[ValType::I32]);
1610
29.9k
    Ok(Instruction::I64Eqz)
1611
29.9k
}
wasm_smith::code_builder::i64_eqz::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1603
37.8k
fn i64_eqz<C: Config>(
1604
37.8k
    _: &mut Unstructured,
1605
37.8k
    _: &ConfiguredModule<C>,
1606
37.8k
    builder: &mut CodeBuilder<C>,
1607
37.8k
) -> Result<Instruction> {
1608
37.8k
    builder.pop_operands(&[ValType::I64]);
1609
37.8k
    builder.push_operands(&[ValType::I32]);
1610
37.8k
    Ok(Instruction::I64Eqz)
1611
37.8k
}
1612
1613
#[inline]
1614
398M
fn i64_i64_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1615
398M
    builder.types_on_stack(&[ValType::I64, ValType::I64])
1616
398M
}
wasm_smith::code_builder::i64_i64_on_stack::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1614
179M
fn i64_i64_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1615
179M
    builder.types_on_stack(&[ValType::I64, ValType::I64])
1616
179M
}
wasm_smith::code_builder::i64_i64_on_stack::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1614
218M
fn i64_i64_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1615
218M
    builder.types_on_stack(&[ValType::I64, ValType::I64])
1616
218M
}
1617
1618
5.08k
fn i64_eq<C: Config>(
1619
5.08k
    _: &mut Unstructured,
1620
5.08k
    _: &ConfiguredModule<C>,
1621
5.08k
    builder: &mut CodeBuilder<C>,
1622
5.08k
) -> Result<Instruction> {
1623
5.08k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1624
5.08k
    builder.push_operands(&[ValType::I32]);
1625
5.08k
    Ok(Instruction::I64Eq)
1626
5.08k
}
wasm_smith::code_builder::i64_eq::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1618
2.28k
fn i64_eq<C: Config>(
1619
2.28k
    _: &mut Unstructured,
1620
2.28k
    _: &ConfiguredModule<C>,
1621
2.28k
    builder: &mut CodeBuilder<C>,
1622
2.28k
) -> Result<Instruction> {
1623
2.28k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1624
2.28k
    builder.push_operands(&[ValType::I32]);
1625
2.28k
    Ok(Instruction::I64Eq)
1626
2.28k
}
wasm_smith::code_builder::i64_eq::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1618
2.80k
fn i64_eq<C: Config>(
1619
2.80k
    _: &mut Unstructured,
1620
2.80k
    _: &ConfiguredModule<C>,
1621
2.80k
    builder: &mut CodeBuilder<C>,
1622
2.80k
) -> Result<Instruction> {
1623
2.80k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1624
2.80k
    builder.push_operands(&[ValType::I32]);
1625
2.80k
    Ok(Instruction::I64Eq)
1626
2.80k
}
1627
1628
2.68k
fn i64_neq<C: Config>(
1629
2.68k
    _: &mut Unstructured,
1630
2.68k
    _: &ConfiguredModule<C>,
1631
2.68k
    builder: &mut CodeBuilder<C>,
1632
2.68k
) -> Result<Instruction> {
1633
2.68k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1634
2.68k
    builder.push_operands(&[ValType::I32]);
1635
2.68k
    Ok(Instruction::I64Neq)
1636
2.68k
}
wasm_smith::code_builder::i64_neq::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1628
1.14k
fn i64_neq<C: Config>(
1629
1.14k
    _: &mut Unstructured,
1630
1.14k
    _: &ConfiguredModule<C>,
1631
1.14k
    builder: &mut CodeBuilder<C>,
1632
1.14k
) -> Result<Instruction> {
1633
1.14k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1634
1.14k
    builder.push_operands(&[ValType::I32]);
1635
1.14k
    Ok(Instruction::I64Neq)
1636
1.14k
}
wasm_smith::code_builder::i64_neq::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1628
1.54k
fn i64_neq<C: Config>(
1629
1.54k
    _: &mut Unstructured,
1630
1.54k
    _: &ConfiguredModule<C>,
1631
1.54k
    builder: &mut CodeBuilder<C>,
1632
1.54k
) -> Result<Instruction> {
1633
1.54k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1634
1.54k
    builder.push_operands(&[ValType::I32]);
1635
1.54k
    Ok(Instruction::I64Neq)
1636
1.54k
}
1637
1638
9.69k
fn i64_lt_s<C: Config>(
1639
9.69k
    _: &mut Unstructured,
1640
9.69k
    _: &ConfiguredModule<C>,
1641
9.69k
    builder: &mut CodeBuilder<C>,
1642
9.69k
) -> Result<Instruction> {
1643
9.69k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1644
9.69k
    builder.push_operands(&[ValType::I32]);
1645
9.69k
    Ok(Instruction::I64LtS)
1646
9.69k
}
wasm_smith::code_builder::i64_lt_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1638
2.73k
fn i64_lt_s<C: Config>(
1639
2.73k
    _: &mut Unstructured,
1640
2.73k
    _: &ConfiguredModule<C>,
1641
2.73k
    builder: &mut CodeBuilder<C>,
1642
2.73k
) -> Result<Instruction> {
1643
2.73k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1644
2.73k
    builder.push_operands(&[ValType::I32]);
1645
2.73k
    Ok(Instruction::I64LtS)
1646
2.73k
}
wasm_smith::code_builder::i64_lt_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1638
6.95k
fn i64_lt_s<C: Config>(
1639
6.95k
    _: &mut Unstructured,
1640
6.95k
    _: &ConfiguredModule<C>,
1641
6.95k
    builder: &mut CodeBuilder<C>,
1642
6.95k
) -> Result<Instruction> {
1643
6.95k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1644
6.95k
    builder.push_operands(&[ValType::I32]);
1645
6.95k
    Ok(Instruction::I64LtS)
1646
6.95k
}
1647
1648
4.09k
fn i64_lt_u<C: Config>(
1649
4.09k
    _: &mut Unstructured,
1650
4.09k
    _: &ConfiguredModule<C>,
1651
4.09k
    builder: &mut CodeBuilder<C>,
1652
4.09k
) -> Result<Instruction> {
1653
4.09k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1654
4.09k
    builder.push_operands(&[ValType::I32]);
1655
4.09k
    Ok(Instruction::I64LtU)
1656
4.09k
}
wasm_smith::code_builder::i64_lt_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1648
1.33k
fn i64_lt_u<C: Config>(
1649
1.33k
    _: &mut Unstructured,
1650
1.33k
    _: &ConfiguredModule<C>,
1651
1.33k
    builder: &mut CodeBuilder<C>,
1652
1.33k
) -> Result<Instruction> {
1653
1.33k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1654
1.33k
    builder.push_operands(&[ValType::I32]);
1655
1.33k
    Ok(Instruction::I64LtU)
1656
1.33k
}
wasm_smith::code_builder::i64_lt_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1648
2.75k
fn i64_lt_u<C: Config>(
1649
2.75k
    _: &mut Unstructured,
1650
2.75k
    _: &ConfiguredModule<C>,
1651
2.75k
    builder: &mut CodeBuilder<C>,
1652
2.75k
) -> Result<Instruction> {
1653
2.75k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1654
2.75k
    builder.push_operands(&[ValType::I32]);
1655
2.75k
    Ok(Instruction::I64LtU)
1656
2.75k
}
1657
1658
9.03k
fn i64_gt_s<C: Config>(
1659
9.03k
    _: &mut Unstructured,
1660
9.03k
    _: &ConfiguredModule<C>,
1661
9.03k
    builder: &mut CodeBuilder<C>,
1662
9.03k
) -> Result<Instruction> {
1663
9.03k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1664
9.03k
    builder.push_operands(&[ValType::I32]);
1665
9.03k
    Ok(Instruction::I64GtS)
1666
9.03k
}
wasm_smith::code_builder::i64_gt_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1658
2.99k
fn i64_gt_s<C: Config>(
1659
2.99k
    _: &mut Unstructured,
1660
2.99k
    _: &ConfiguredModule<C>,
1661
2.99k
    builder: &mut CodeBuilder<C>,
1662
2.99k
) -> Result<Instruction> {
1663
2.99k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1664
2.99k
    builder.push_operands(&[ValType::I32]);
1665
2.99k
    Ok(Instruction::I64GtS)
1666
2.99k
}
wasm_smith::code_builder::i64_gt_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1658
6.03k
fn i64_gt_s<C: Config>(
1659
6.03k
    _: &mut Unstructured,
1660
6.03k
    _: &ConfiguredModule<C>,
1661
6.03k
    builder: &mut CodeBuilder<C>,
1662
6.03k
) -> Result<Instruction> {
1663
6.03k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1664
6.03k
    builder.push_operands(&[ValType::I32]);
1665
6.03k
    Ok(Instruction::I64GtS)
1666
6.03k
}
1667
1668
4.06k
fn i64_gt_u<C: Config>(
1669
4.06k
    _: &mut Unstructured,
1670
4.06k
    _: &ConfiguredModule<C>,
1671
4.06k
    builder: &mut CodeBuilder<C>,
1672
4.06k
) -> Result<Instruction> {
1673
4.06k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1674
4.06k
    builder.push_operands(&[ValType::I32]);
1675
4.06k
    Ok(Instruction::I64GtU)
1676
4.06k
}
wasm_smith::code_builder::i64_gt_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1668
1.87k
fn i64_gt_u<C: Config>(
1669
1.87k
    _: &mut Unstructured,
1670
1.87k
    _: &ConfiguredModule<C>,
1671
1.87k
    builder: &mut CodeBuilder<C>,
1672
1.87k
) -> Result<Instruction> {
1673
1.87k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1674
1.87k
    builder.push_operands(&[ValType::I32]);
1675
1.87k
    Ok(Instruction::I64GtU)
1676
1.87k
}
wasm_smith::code_builder::i64_gt_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1668
2.19k
fn i64_gt_u<C: Config>(
1669
2.19k
    _: &mut Unstructured,
1670
2.19k
    _: &ConfiguredModule<C>,
1671
2.19k
    builder: &mut CodeBuilder<C>,
1672
2.19k
) -> Result<Instruction> {
1673
2.19k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1674
2.19k
    builder.push_operands(&[ValType::I32]);
1675
2.19k
    Ok(Instruction::I64GtU)
1676
2.19k
}
1677
1678
6.89k
fn i64_le_s<C: Config>(
1679
6.89k
    _: &mut Unstructured,
1680
6.89k
    _: &ConfiguredModule<C>,
1681
6.89k
    builder: &mut CodeBuilder<C>,
1682
6.89k
) -> Result<Instruction> {
1683
6.89k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1684
6.89k
    builder.push_operands(&[ValType::I32]);
1685
6.89k
    Ok(Instruction::I64LeS)
1686
6.89k
}
wasm_smith::code_builder::i64_le_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1678
4.68k
fn i64_le_s<C: Config>(
1679
4.68k
    _: &mut Unstructured,
1680
4.68k
    _: &ConfiguredModule<C>,
1681
4.68k
    builder: &mut CodeBuilder<C>,
1682
4.68k
) -> Result<Instruction> {
1683
4.68k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1684
4.68k
    builder.push_operands(&[ValType::I32]);
1685
4.68k
    Ok(Instruction::I64LeS)
1686
4.68k
}
wasm_smith::code_builder::i64_le_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1678
2.20k
fn i64_le_s<C: Config>(
1679
2.20k
    _: &mut Unstructured,
1680
2.20k
    _: &ConfiguredModule<C>,
1681
2.20k
    builder: &mut CodeBuilder<C>,
1682
2.20k
) -> Result<Instruction> {
1683
2.20k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1684
2.20k
    builder.push_operands(&[ValType::I32]);
1685
2.20k
    Ok(Instruction::I64LeS)
1686
2.20k
}
1687
1688
3.53k
fn i64_le_u<C: Config>(
1689
3.53k
    _: &mut Unstructured,
1690
3.53k
    _: &ConfiguredModule<C>,
1691
3.53k
    builder: &mut CodeBuilder<C>,
1692
3.53k
) -> Result<Instruction> {
1693
3.53k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1694
3.53k
    builder.push_operands(&[ValType::I32]);
1695
3.53k
    Ok(Instruction::I64LeU)
1696
3.53k
}
wasm_smith::code_builder::i64_le_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1688
1.69k
fn i64_le_u<C: Config>(
1689
1.69k
    _: &mut Unstructured,
1690
1.69k
    _: &ConfiguredModule<C>,
1691
1.69k
    builder: &mut CodeBuilder<C>,
1692
1.69k
) -> Result<Instruction> {
1693
1.69k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1694
1.69k
    builder.push_operands(&[ValType::I32]);
1695
1.69k
    Ok(Instruction::I64LeU)
1696
1.69k
}
wasm_smith::code_builder::i64_le_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1688
1.83k
fn i64_le_u<C: Config>(
1689
1.83k
    _: &mut Unstructured,
1690
1.83k
    _: &ConfiguredModule<C>,
1691
1.83k
    builder: &mut CodeBuilder<C>,
1692
1.83k
) -> Result<Instruction> {
1693
1.83k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1694
1.83k
    builder.push_operands(&[ValType::I32]);
1695
1.83k
    Ok(Instruction::I64LeU)
1696
1.83k
}
1697
1698
10.2k
fn i64_ge_s<C: Config>(
1699
10.2k
    _: &mut Unstructured,
1700
10.2k
    _: &ConfiguredModule<C>,
1701
10.2k
    builder: &mut CodeBuilder<C>,
1702
10.2k
) -> Result<Instruction> {
1703
10.2k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1704
10.2k
    builder.push_operands(&[ValType::I32]);
1705
10.2k
    Ok(Instruction::I64GeS)
1706
10.2k
}
wasm_smith::code_builder::i64_ge_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1698
2.25k
fn i64_ge_s<C: Config>(
1699
2.25k
    _: &mut Unstructured,
1700
2.25k
    _: &ConfiguredModule<C>,
1701
2.25k
    builder: &mut CodeBuilder<C>,
1702
2.25k
) -> Result<Instruction> {
1703
2.25k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1704
2.25k
    builder.push_operands(&[ValType::I32]);
1705
2.25k
    Ok(Instruction::I64GeS)
1706
2.25k
}
wasm_smith::code_builder::i64_ge_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1698
8.03k
fn i64_ge_s<C: Config>(
1699
8.03k
    _: &mut Unstructured,
1700
8.03k
    _: &ConfiguredModule<C>,
1701
8.03k
    builder: &mut CodeBuilder<C>,
1702
8.03k
) -> Result<Instruction> {
1703
8.03k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1704
8.03k
    builder.push_operands(&[ValType::I32]);
1705
8.03k
    Ok(Instruction::I64GeS)
1706
8.03k
}
1707
1708
6.35k
fn i64_ge_u<C: Config>(
1709
6.35k
    _: &mut Unstructured,
1710
6.35k
    _: &ConfiguredModule<C>,
1711
6.35k
    builder: &mut CodeBuilder<C>,
1712
6.35k
) -> Result<Instruction> {
1713
6.35k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1714
6.35k
    builder.push_operands(&[ValType::I32]);
1715
6.35k
    Ok(Instruction::I64GeU)
1716
6.35k
}
wasm_smith::code_builder::i64_ge_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1708
1.55k
fn i64_ge_u<C: Config>(
1709
1.55k
    _: &mut Unstructured,
1710
1.55k
    _: &ConfiguredModule<C>,
1711
1.55k
    builder: &mut CodeBuilder<C>,
1712
1.55k
) -> Result<Instruction> {
1713
1.55k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1714
1.55k
    builder.push_operands(&[ValType::I32]);
1715
1.55k
    Ok(Instruction::I64GeU)
1716
1.55k
}
wasm_smith::code_builder::i64_ge_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1708
4.79k
fn i64_ge_u<C: Config>(
1709
4.79k
    _: &mut Unstructured,
1710
4.79k
    _: &ConfiguredModule<C>,
1711
4.79k
    builder: &mut CodeBuilder<C>,
1712
4.79k
) -> Result<Instruction> {
1713
4.79k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
1714
4.79k
    builder.push_operands(&[ValType::I32]);
1715
4.79k
    Ok(Instruction::I64GeU)
1716
4.79k
}
1717
1718
207M
fn f32_f32_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1719
207M
    builder.types_on_stack(&[ValType::F32, ValType::F32])
1720
207M
}
wasm_smith::code_builder::f32_f32_on_stack::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1718
93.5M
fn f32_f32_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1719
93.5M
    builder.types_on_stack(&[ValType::F32, ValType::F32])
1720
93.5M
}
wasm_smith::code_builder::f32_f32_on_stack::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1718
113M
fn f32_f32_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1719
113M
    builder.types_on_stack(&[ValType::F32, ValType::F32])
1720
113M
}
1721
1722
12.6k
fn f32_eq<C: Config>(
1723
12.6k
    _: &mut Unstructured,
1724
12.6k
    _: &ConfiguredModule<C>,
1725
12.6k
    builder: &mut CodeBuilder<C>,
1726
12.6k
) -> Result<Instruction> {
1727
12.6k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
1728
12.6k
    builder.push_operands(&[ValType::I32]);
1729
12.6k
    Ok(Instruction::F32Eq)
1730
12.6k
}
wasm_smith::code_builder::f32_eq::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1722
2.28k
fn f32_eq<C: Config>(
1723
2.28k
    _: &mut Unstructured,
1724
2.28k
    _: &ConfiguredModule<C>,
1725
2.28k
    builder: &mut CodeBuilder<C>,
1726
2.28k
) -> Result<Instruction> {
1727
2.28k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
1728
2.28k
    builder.push_operands(&[ValType::I32]);
1729
2.28k
    Ok(Instruction::F32Eq)
1730
2.28k
}
wasm_smith::code_builder::f32_eq::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1722
10.3k
fn f32_eq<C: Config>(
1723
10.3k
    _: &mut Unstructured,
1724
10.3k
    _: &ConfiguredModule<C>,
1725
10.3k
    builder: &mut CodeBuilder<C>,
1726
10.3k
) -> Result<Instruction> {
1727
10.3k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
1728
10.3k
    builder.push_operands(&[ValType::I32]);
1729
10.3k
    Ok(Instruction::F32Eq)
1730
10.3k
}
1731
1732
5.57k
fn f32_neq<C: Config>(
1733
5.57k
    _: &mut Unstructured,
1734
5.57k
    _: &ConfiguredModule<C>,
1735
5.57k
    builder: &mut CodeBuilder<C>,
1736
5.57k
) -> Result<Instruction> {
1737
5.57k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
1738
5.57k
    builder.push_operands(&[ValType::I32]);
1739
5.57k
    Ok(Instruction::F32Neq)
1740
5.57k
}
wasm_smith::code_builder::f32_neq::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1732
1.21k
fn f32_neq<C: Config>(
1733
1.21k
    _: &mut Unstructured,
1734
1.21k
    _: &ConfiguredModule<C>,
1735
1.21k
    builder: &mut CodeBuilder<C>,
1736
1.21k
) -> Result<Instruction> {
1737
1.21k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
1738
1.21k
    builder.push_operands(&[ValType::I32]);
1739
1.21k
    Ok(Instruction::F32Neq)
1740
1.21k
}
wasm_smith::code_builder::f32_neq::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1732
4.36k
fn f32_neq<C: Config>(
1733
4.36k
    _: &mut Unstructured,
1734
4.36k
    _: &ConfiguredModule<C>,
1735
4.36k
    builder: &mut CodeBuilder<C>,
1736
4.36k
) -> Result<Instruction> {
1737
4.36k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
1738
4.36k
    builder.push_operands(&[ValType::I32]);
1739
4.36k
    Ok(Instruction::F32Neq)
1740
4.36k
}
1741
1742
2.88k
fn f32_lt<C: Config>(
1743
2.88k
    _: &mut Unstructured,
1744
2.88k
    _: &ConfiguredModule<C>,
1745
2.88k
    builder: &mut CodeBuilder<C>,
1746
2.88k
) -> Result<Instruction> {
1747
2.88k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
1748
2.88k
    builder.push_operands(&[ValType::I32]);
1749
2.88k
    Ok(Instruction::F32Lt)
1750
2.88k
}
wasm_smith::code_builder::f32_lt::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1742
1.16k
fn f32_lt<C: Config>(
1743
1.16k
    _: &mut Unstructured,
1744
1.16k
    _: &ConfiguredModule<C>,
1745
1.16k
    builder: &mut CodeBuilder<C>,
1746
1.16k
) -> Result<Instruction> {
1747
1.16k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
1748
1.16k
    builder.push_operands(&[ValType::I32]);
1749
1.16k
    Ok(Instruction::F32Lt)
1750
1.16k
}
wasm_smith::code_builder::f32_lt::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1742
1.71k
fn f32_lt<C: Config>(
1743
1.71k
    _: &mut Unstructured,
1744
1.71k
    _: &ConfiguredModule<C>,
1745
1.71k
    builder: &mut CodeBuilder<C>,
1746
1.71k
) -> Result<Instruction> {
1747
1.71k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
1748
1.71k
    builder.push_operands(&[ValType::I32]);
1749
1.71k
    Ok(Instruction::F32Lt)
1750
1.71k
}
1751
1752
3.30k
fn f32_gt<C: Config>(
1753
3.30k
    _: &mut Unstructured,
1754
3.30k
    _: &ConfiguredModule<C>,
1755
3.30k
    builder: &mut CodeBuilder<C>,
1756
3.30k
) -> Result<Instruction> {
1757
3.30k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
1758
3.30k
    builder.push_operands(&[ValType::I32]);
1759
3.30k
    Ok(Instruction::F32Gt)
1760
3.30k
}
wasm_smith::code_builder::f32_gt::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1752
885
fn f32_gt<C: Config>(
1753
885
    _: &mut Unstructured,
1754
885
    _: &ConfiguredModule<C>,
1755
885
    builder: &mut CodeBuilder<C>,
1756
885
) -> Result<Instruction> {
1757
885
    builder.pop_operands(&[ValType::F32, ValType::F32]);
1758
885
    builder.push_operands(&[ValType::I32]);
1759
885
    Ok(Instruction::F32Gt)
1760
885
}
wasm_smith::code_builder::f32_gt::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1752
2.41k
fn f32_gt<C: Config>(
1753
2.41k
    _: &mut Unstructured,
1754
2.41k
    _: &ConfiguredModule<C>,
1755
2.41k
    builder: &mut CodeBuilder<C>,
1756
2.41k
) -> Result<Instruction> {
1757
2.41k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
1758
2.41k
    builder.push_operands(&[ValType::I32]);
1759
2.41k
    Ok(Instruction::F32Gt)
1760
2.41k
}
1761
1762
4.77k
fn f32_le<C: Config>(
1763
4.77k
    _: &mut Unstructured,
1764
4.77k
    _: &ConfiguredModule<C>,
1765
4.77k
    builder: &mut CodeBuilder<C>,
1766
4.77k
) -> Result<Instruction> {
1767
4.77k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
1768
4.77k
    builder.push_operands(&[ValType::I32]);
1769
4.77k
    Ok(Instruction::F32Le)
1770
4.77k
}
wasm_smith::code_builder::f32_le::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1762
1.23k
fn f32_le<C: Config>(
1763
1.23k
    _: &mut Unstructured,
1764
1.23k
    _: &ConfiguredModule<C>,
1765
1.23k
    builder: &mut CodeBuilder<C>,
1766
1.23k
) -> Result<Instruction> {
1767
1.23k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
1768
1.23k
    builder.push_operands(&[ValType::I32]);
1769
1.23k
    Ok(Instruction::F32Le)
1770
1.23k
}
wasm_smith::code_builder::f32_le::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1762
3.53k
fn f32_le<C: Config>(
1763
3.53k
    _: &mut Unstructured,
1764
3.53k
    _: &ConfiguredModule<C>,
1765
3.53k
    builder: &mut CodeBuilder<C>,
1766
3.53k
) -> Result<Instruction> {
1767
3.53k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
1768
3.53k
    builder.push_operands(&[ValType::I32]);
1769
3.53k
    Ok(Instruction::F32Le)
1770
3.53k
}
1771
1772
11.1k
fn f32_ge<C: Config>(
1773
11.1k
    _: &mut Unstructured,
1774
11.1k
    _: &ConfiguredModule<C>,
1775
11.1k
    builder: &mut CodeBuilder<C>,
1776
11.1k
) -> Result<Instruction> {
1777
11.1k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
1778
11.1k
    builder.push_operands(&[ValType::I32]);
1779
11.1k
    Ok(Instruction::F32Ge)
1780
11.1k
}
wasm_smith::code_builder::f32_ge::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1772
9.17k
fn f32_ge<C: Config>(
1773
9.17k
    _: &mut Unstructured,
1774
9.17k
    _: &ConfiguredModule<C>,
1775
9.17k
    builder: &mut CodeBuilder<C>,
1776
9.17k
) -> Result<Instruction> {
1777
9.17k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
1778
9.17k
    builder.push_operands(&[ValType::I32]);
1779
9.17k
    Ok(Instruction::F32Ge)
1780
9.17k
}
wasm_smith::code_builder::f32_ge::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1772
1.97k
fn f32_ge<C: Config>(
1773
1.97k
    _: &mut Unstructured,
1774
1.97k
    _: &ConfiguredModule<C>,
1775
1.97k
    builder: &mut CodeBuilder<C>,
1776
1.97k
) -> Result<Instruction> {
1777
1.97k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
1778
1.97k
    builder.push_operands(&[ValType::I32]);
1779
1.97k
    Ok(Instruction::F32Ge)
1780
1.97k
}
1781
1782
207M
fn f64_f64_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1783
207M
    builder.types_on_stack(&[ValType::F64, ValType::F64])
1784
207M
}
wasm_smith::code_builder::f64_f64_on_stack::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1782
93.5M
fn f64_f64_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1783
93.5M
    builder.types_on_stack(&[ValType::F64, ValType::F64])
1784
93.5M
}
wasm_smith::code_builder::f64_f64_on_stack::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1782
113M
fn f64_f64_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
1783
113M
    builder.types_on_stack(&[ValType::F64, ValType::F64])
1784
113M
}
1785
1786
3.19k
fn f64_eq<C: Config>(
1787
3.19k
    _: &mut Unstructured,
1788
3.19k
    _: &ConfiguredModule<C>,
1789
3.19k
    builder: &mut CodeBuilder<C>,
1790
3.19k
) -> Result<Instruction> {
1791
3.19k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
1792
3.19k
    builder.push_operands(&[ValType::I32]);
1793
3.19k
    Ok(Instruction::F64Eq)
1794
3.19k
}
wasm_smith::code_builder::f64_eq::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1786
1.51k
fn f64_eq<C: Config>(
1787
1.51k
    _: &mut Unstructured,
1788
1.51k
    _: &ConfiguredModule<C>,
1789
1.51k
    builder: &mut CodeBuilder<C>,
1790
1.51k
) -> Result<Instruction> {
1791
1.51k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
1792
1.51k
    builder.push_operands(&[ValType::I32]);
1793
1.51k
    Ok(Instruction::F64Eq)
1794
1.51k
}
wasm_smith::code_builder::f64_eq::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1786
1.67k
fn f64_eq<C: Config>(
1787
1.67k
    _: &mut Unstructured,
1788
1.67k
    _: &ConfiguredModule<C>,
1789
1.67k
    builder: &mut CodeBuilder<C>,
1790
1.67k
) -> Result<Instruction> {
1791
1.67k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
1792
1.67k
    builder.push_operands(&[ValType::I32]);
1793
1.67k
    Ok(Instruction::F64Eq)
1794
1.67k
}
1795
1796
7.17k
fn f64_neq<C: Config>(
1797
7.17k
    _: &mut Unstructured,
1798
7.17k
    _: &ConfiguredModule<C>,
1799
7.17k
    builder: &mut CodeBuilder<C>,
1800
7.17k
) -> Result<Instruction> {
1801
7.17k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
1802
7.17k
    builder.push_operands(&[ValType::I32]);
1803
7.17k
    Ok(Instruction::F64Neq)
1804
7.17k
}
wasm_smith::code_builder::f64_neq::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1796
1.66k
fn f64_neq<C: Config>(
1797
1.66k
    _: &mut Unstructured,
1798
1.66k
    _: &ConfiguredModule<C>,
1799
1.66k
    builder: &mut CodeBuilder<C>,
1800
1.66k
) -> Result<Instruction> {
1801
1.66k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
1802
1.66k
    builder.push_operands(&[ValType::I32]);
1803
1.66k
    Ok(Instruction::F64Neq)
1804
1.66k
}
wasm_smith::code_builder::f64_neq::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1796
5.51k
fn f64_neq<C: Config>(
1797
5.51k
    _: &mut Unstructured,
1798
5.51k
    _: &ConfiguredModule<C>,
1799
5.51k
    builder: &mut CodeBuilder<C>,
1800
5.51k
) -> Result<Instruction> {
1801
5.51k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
1802
5.51k
    builder.push_operands(&[ValType::I32]);
1803
5.51k
    Ok(Instruction::F64Neq)
1804
5.51k
}
1805
1806
3.59k
fn f64_lt<C: Config>(
1807
3.59k
    _: &mut Unstructured,
1808
3.59k
    _: &ConfiguredModule<C>,
1809
3.59k
    builder: &mut CodeBuilder<C>,
1810
3.59k
) -> Result<Instruction> {
1811
3.59k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
1812
3.59k
    builder.push_operands(&[ValType::I32]);
1813
3.59k
    Ok(Instruction::F64Lt)
1814
3.59k
}
wasm_smith::code_builder::f64_lt::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1806
946
fn f64_lt<C: Config>(
1807
946
    _: &mut Unstructured,
1808
946
    _: &ConfiguredModule<C>,
1809
946
    builder: &mut CodeBuilder<C>,
1810
946
) -> Result<Instruction> {
1811
946
    builder.pop_operands(&[ValType::F64, ValType::F64]);
1812
946
    builder.push_operands(&[ValType::I32]);
1813
946
    Ok(Instruction::F64Lt)
1814
946
}
wasm_smith::code_builder::f64_lt::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1806
2.65k
fn f64_lt<C: Config>(
1807
2.65k
    _: &mut Unstructured,
1808
2.65k
    _: &ConfiguredModule<C>,
1809
2.65k
    builder: &mut CodeBuilder<C>,
1810
2.65k
) -> Result<Instruction> {
1811
2.65k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
1812
2.65k
    builder.push_operands(&[ValType::I32]);
1813
2.65k
    Ok(Instruction::F64Lt)
1814
2.65k
}
1815
1816
4.84k
fn f64_gt<C: Config>(
1817
4.84k
    _: &mut Unstructured,
1818
4.84k
    _: &ConfiguredModule<C>,
1819
4.84k
    builder: &mut CodeBuilder<C>,
1820
4.84k
) -> Result<Instruction> {
1821
4.84k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
1822
4.84k
    builder.push_operands(&[ValType::I32]);
1823
4.84k
    Ok(Instruction::F64Gt)
1824
4.84k
}
wasm_smith::code_builder::f64_gt::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1816
2.12k
fn f64_gt<C: Config>(
1817
2.12k
    _: &mut Unstructured,
1818
2.12k
    _: &ConfiguredModule<C>,
1819
2.12k
    builder: &mut CodeBuilder<C>,
1820
2.12k
) -> Result<Instruction> {
1821
2.12k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
1822
2.12k
    builder.push_operands(&[ValType::I32]);
1823
2.12k
    Ok(Instruction::F64Gt)
1824
2.12k
}
wasm_smith::code_builder::f64_gt::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1816
2.72k
fn f64_gt<C: Config>(
1817
2.72k
    _: &mut Unstructured,
1818
2.72k
    _: &ConfiguredModule<C>,
1819
2.72k
    builder: &mut CodeBuilder<C>,
1820
2.72k
) -> Result<Instruction> {
1821
2.72k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
1822
2.72k
    builder.push_operands(&[ValType::I32]);
1823
2.72k
    Ok(Instruction::F64Gt)
1824
2.72k
}
1825
1826
3.65k
fn f64_le<C: Config>(
1827
3.65k
    _: &mut Unstructured,
1828
3.65k
    _: &ConfiguredModule<C>,
1829
3.65k
    builder: &mut CodeBuilder<C>,
1830
3.65k
) -> Result<Instruction> {
1831
3.65k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
1832
3.65k
    builder.push_operands(&[ValType::I32]);
1833
3.65k
    Ok(Instruction::F64Le)
1834
3.65k
}
wasm_smith::code_builder::f64_le::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1826
2.15k
fn f64_le<C: Config>(
1827
2.15k
    _: &mut Unstructured,
1828
2.15k
    _: &ConfiguredModule<C>,
1829
2.15k
    builder: &mut CodeBuilder<C>,
1830
2.15k
) -> Result<Instruction> {
1831
2.15k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
1832
2.15k
    builder.push_operands(&[ValType::I32]);
1833
2.15k
    Ok(Instruction::F64Le)
1834
2.15k
}
wasm_smith::code_builder::f64_le::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1826
1.49k
fn f64_le<C: Config>(
1827
1.49k
    _: &mut Unstructured,
1828
1.49k
    _: &ConfiguredModule<C>,
1829
1.49k
    builder: &mut CodeBuilder<C>,
1830
1.49k
) -> Result<Instruction> {
1831
1.49k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
1832
1.49k
    builder.push_operands(&[ValType::I32]);
1833
1.49k
    Ok(Instruction::F64Le)
1834
1.49k
}
1835
1836
4.56k
fn f64_ge<C: Config>(
1837
4.56k
    _: &mut Unstructured,
1838
4.56k
    _: &ConfiguredModule<C>,
1839
4.56k
    builder: &mut CodeBuilder<C>,
1840
4.56k
) -> Result<Instruction> {
1841
4.56k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
1842
4.56k
    builder.push_operands(&[ValType::I32]);
1843
4.56k
    Ok(Instruction::F64Ge)
1844
4.56k
}
wasm_smith::code_builder::f64_ge::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1836
1.90k
fn f64_ge<C: Config>(
1837
1.90k
    _: &mut Unstructured,
1838
1.90k
    _: &ConfiguredModule<C>,
1839
1.90k
    builder: &mut CodeBuilder<C>,
1840
1.90k
) -> Result<Instruction> {
1841
1.90k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
1842
1.90k
    builder.push_operands(&[ValType::I32]);
1843
1.90k
    Ok(Instruction::F64Ge)
1844
1.90k
}
wasm_smith::code_builder::f64_ge::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1836
2.65k
fn f64_ge<C: Config>(
1837
2.65k
    _: &mut Unstructured,
1838
2.65k
    _: &ConfiguredModule<C>,
1839
2.65k
    builder: &mut CodeBuilder<C>,
1840
2.65k
) -> Result<Instruction> {
1841
2.65k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
1842
2.65k
    builder.push_operands(&[ValType::I32]);
1843
2.65k
    Ok(Instruction::F64Ge)
1844
2.65k
}
1845
1846
82.8k
fn i32_clz<C: Config>(
1847
82.8k
    _: &mut Unstructured,
1848
82.8k
    _: &ConfiguredModule<C>,
1849
82.8k
    builder: &mut CodeBuilder<C>,
1850
82.8k
) -> Result<Instruction> {
1851
82.8k
    builder.pop_operands(&[ValType::I32]);
1852
82.8k
    builder.push_operands(&[ValType::I32]);
1853
82.8k
    Ok(Instruction::I32Clz)
1854
82.8k
}
wasm_smith::code_builder::i32_clz::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1846
47.9k
fn i32_clz<C: Config>(
1847
47.9k
    _: &mut Unstructured,
1848
47.9k
    _: &ConfiguredModule<C>,
1849
47.9k
    builder: &mut CodeBuilder<C>,
1850
47.9k
) -> Result<Instruction> {
1851
47.9k
    builder.pop_operands(&[ValType::I32]);
1852
47.9k
    builder.push_operands(&[ValType::I32]);
1853
47.9k
    Ok(Instruction::I32Clz)
1854
47.9k
}
wasm_smith::code_builder::i32_clz::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1846
34.8k
fn i32_clz<C: Config>(
1847
34.8k
    _: &mut Unstructured,
1848
34.8k
    _: &ConfiguredModule<C>,
1849
34.8k
    builder: &mut CodeBuilder<C>,
1850
34.8k
) -> Result<Instruction> {
1851
34.8k
    builder.pop_operands(&[ValType::I32]);
1852
34.8k
    builder.push_operands(&[ValType::I32]);
1853
34.8k
    Ok(Instruction::I32Clz)
1854
34.8k
}
1855
1856
83.4k
fn i32_ctz<C: Config>(
1857
83.4k
    _: &mut Unstructured,
1858
83.4k
    _: &ConfiguredModule<C>,
1859
83.4k
    builder: &mut CodeBuilder<C>,
1860
83.4k
) -> Result<Instruction> {
1861
83.4k
    builder.pop_operands(&[ValType::I32]);
1862
83.4k
    builder.push_operands(&[ValType::I32]);
1863
83.4k
    Ok(Instruction::I32Ctz)
1864
83.4k
}
wasm_smith::code_builder::i32_ctz::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1856
44.9k
fn i32_ctz<C: Config>(
1857
44.9k
    _: &mut Unstructured,
1858
44.9k
    _: &ConfiguredModule<C>,
1859
44.9k
    builder: &mut CodeBuilder<C>,
1860
44.9k
) -> Result<Instruction> {
1861
44.9k
    builder.pop_operands(&[ValType::I32]);
1862
44.9k
    builder.push_operands(&[ValType::I32]);
1863
44.9k
    Ok(Instruction::I32Ctz)
1864
44.9k
}
wasm_smith::code_builder::i32_ctz::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1856
38.5k
fn i32_ctz<C: Config>(
1857
38.5k
    _: &mut Unstructured,
1858
38.5k
    _: &ConfiguredModule<C>,
1859
38.5k
    builder: &mut CodeBuilder<C>,
1860
38.5k
) -> Result<Instruction> {
1861
38.5k
    builder.pop_operands(&[ValType::I32]);
1862
38.5k
    builder.push_operands(&[ValType::I32]);
1863
38.5k
    Ok(Instruction::I32Ctz)
1864
38.5k
}
1865
1866
66.2k
fn i32_popcnt<C: Config>(
1867
66.2k
    _: &mut Unstructured,
1868
66.2k
    _: &ConfiguredModule<C>,
1869
66.2k
    builder: &mut CodeBuilder<C>,
1870
66.2k
) -> Result<Instruction> {
1871
66.2k
    builder.pop_operands(&[ValType::I32]);
1872
66.2k
    builder.push_operands(&[ValType::I32]);
1873
66.2k
    Ok(Instruction::I32Popcnt)
1874
66.2k
}
wasm_smith::code_builder::i32_popcnt::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1866
37.8k
fn i32_popcnt<C: Config>(
1867
37.8k
    _: &mut Unstructured,
1868
37.8k
    _: &ConfiguredModule<C>,
1869
37.8k
    builder: &mut CodeBuilder<C>,
1870
37.8k
) -> Result<Instruction> {
1871
37.8k
    builder.pop_operands(&[ValType::I32]);
1872
37.8k
    builder.push_operands(&[ValType::I32]);
1873
37.8k
    Ok(Instruction::I32Popcnt)
1874
37.8k
}
wasm_smith::code_builder::i32_popcnt::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1866
28.4k
fn i32_popcnt<C: Config>(
1867
28.4k
    _: &mut Unstructured,
1868
28.4k
    _: &ConfiguredModule<C>,
1869
28.4k
    builder: &mut CodeBuilder<C>,
1870
28.4k
) -> Result<Instruction> {
1871
28.4k
    builder.pop_operands(&[ValType::I32]);
1872
28.4k
    builder.push_operands(&[ValType::I32]);
1873
28.4k
    Ok(Instruction::I32Popcnt)
1874
28.4k
}
1875
1876
8.84k
fn i32_add<C: Config>(
1877
8.84k
    _: &mut Unstructured,
1878
8.84k
    _: &ConfiguredModule<C>,
1879
8.84k
    builder: &mut CodeBuilder<C>,
1880
8.84k
) -> Result<Instruction> {
1881
8.84k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1882
8.84k
    builder.push_operands(&[ValType::I32]);
1883
8.84k
    Ok(Instruction::I32Add)
1884
8.84k
}
wasm_smith::code_builder::i32_add::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1876
7.30k
fn i32_add<C: Config>(
1877
7.30k
    _: &mut Unstructured,
1878
7.30k
    _: &ConfiguredModule<C>,
1879
7.30k
    builder: &mut CodeBuilder<C>,
1880
7.30k
) -> Result<Instruction> {
1881
7.30k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1882
7.30k
    builder.push_operands(&[ValType::I32]);
1883
7.30k
    Ok(Instruction::I32Add)
1884
7.30k
}
wasm_smith::code_builder::i32_add::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1876
1.53k
fn i32_add<C: Config>(
1877
1.53k
    _: &mut Unstructured,
1878
1.53k
    _: &ConfiguredModule<C>,
1879
1.53k
    builder: &mut CodeBuilder<C>,
1880
1.53k
) -> Result<Instruction> {
1881
1.53k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1882
1.53k
    builder.push_operands(&[ValType::I32]);
1883
1.53k
    Ok(Instruction::I32Add)
1884
1.53k
}
1885
1886
4.36k
fn i32_sub<C: Config>(
1887
4.36k
    _: &mut Unstructured,
1888
4.36k
    _: &ConfiguredModule<C>,
1889
4.36k
    builder: &mut CodeBuilder<C>,
1890
4.36k
) -> Result<Instruction> {
1891
4.36k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1892
4.36k
    builder.push_operands(&[ValType::I32]);
1893
4.36k
    Ok(Instruction::I32Sub)
1894
4.36k
}
wasm_smith::code_builder::i32_sub::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1886
1.34k
fn i32_sub<C: Config>(
1887
1.34k
    _: &mut Unstructured,
1888
1.34k
    _: &ConfiguredModule<C>,
1889
1.34k
    builder: &mut CodeBuilder<C>,
1890
1.34k
) -> Result<Instruction> {
1891
1.34k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1892
1.34k
    builder.push_operands(&[ValType::I32]);
1893
1.34k
    Ok(Instruction::I32Sub)
1894
1.34k
}
wasm_smith::code_builder::i32_sub::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1886
3.02k
fn i32_sub<C: Config>(
1887
3.02k
    _: &mut Unstructured,
1888
3.02k
    _: &ConfiguredModule<C>,
1889
3.02k
    builder: &mut CodeBuilder<C>,
1890
3.02k
) -> Result<Instruction> {
1891
3.02k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1892
3.02k
    builder.push_operands(&[ValType::I32]);
1893
3.02k
    Ok(Instruction::I32Sub)
1894
3.02k
}
1895
1896
6.02k
fn i32_mul<C: Config>(
1897
6.02k
    _: &mut Unstructured,
1898
6.02k
    _: &ConfiguredModule<C>,
1899
6.02k
    builder: &mut CodeBuilder<C>,
1900
6.02k
) -> Result<Instruction> {
1901
6.02k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1902
6.02k
    builder.push_operands(&[ValType::I32]);
1903
6.02k
    Ok(Instruction::I32Mul)
1904
6.02k
}
wasm_smith::code_builder::i32_mul::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1896
4.21k
fn i32_mul<C: Config>(
1897
4.21k
    _: &mut Unstructured,
1898
4.21k
    _: &ConfiguredModule<C>,
1899
4.21k
    builder: &mut CodeBuilder<C>,
1900
4.21k
) -> Result<Instruction> {
1901
4.21k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1902
4.21k
    builder.push_operands(&[ValType::I32]);
1903
4.21k
    Ok(Instruction::I32Mul)
1904
4.21k
}
wasm_smith::code_builder::i32_mul::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1896
1.80k
fn i32_mul<C: Config>(
1897
1.80k
    _: &mut Unstructured,
1898
1.80k
    _: &ConfiguredModule<C>,
1899
1.80k
    builder: &mut CodeBuilder<C>,
1900
1.80k
) -> Result<Instruction> {
1901
1.80k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1902
1.80k
    builder.push_operands(&[ValType::I32]);
1903
1.80k
    Ok(Instruction::I32Mul)
1904
1.80k
}
1905
1906
16.6k
fn i32_div_s<C: Config>(
1907
16.6k
    _: &mut Unstructured,
1908
16.6k
    _: &ConfiguredModule<C>,
1909
16.6k
    builder: &mut CodeBuilder<C>,
1910
16.6k
) -> Result<Instruction> {
1911
16.6k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1912
16.6k
    builder.push_operands(&[ValType::I32]);
1913
16.6k
    Ok(Instruction::I32DivS)
1914
16.6k
}
wasm_smith::code_builder::i32_div_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1906
4.65k
fn i32_div_s<C: Config>(
1907
4.65k
    _: &mut Unstructured,
1908
4.65k
    _: &ConfiguredModule<C>,
1909
4.65k
    builder: &mut CodeBuilder<C>,
1910
4.65k
) -> Result<Instruction> {
1911
4.65k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1912
4.65k
    builder.push_operands(&[ValType::I32]);
1913
4.65k
    Ok(Instruction::I32DivS)
1914
4.65k
}
wasm_smith::code_builder::i32_div_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1906
12.0k
fn i32_div_s<C: Config>(
1907
12.0k
    _: &mut Unstructured,
1908
12.0k
    _: &ConfiguredModule<C>,
1909
12.0k
    builder: &mut CodeBuilder<C>,
1910
12.0k
) -> Result<Instruction> {
1911
12.0k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1912
12.0k
    builder.push_operands(&[ValType::I32]);
1913
12.0k
    Ok(Instruction::I32DivS)
1914
12.0k
}
1915
1916
11.2k
fn i32_div_u<C: Config>(
1917
11.2k
    _: &mut Unstructured,
1918
11.2k
    _: &ConfiguredModule<C>,
1919
11.2k
    builder: &mut CodeBuilder<C>,
1920
11.2k
) -> Result<Instruction> {
1921
11.2k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1922
11.2k
    builder.push_operands(&[ValType::I32]);
1923
11.2k
    Ok(Instruction::I32DivU)
1924
11.2k
}
wasm_smith::code_builder::i32_div_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1916
1.97k
fn i32_div_u<C: Config>(
1917
1.97k
    _: &mut Unstructured,
1918
1.97k
    _: &ConfiguredModule<C>,
1919
1.97k
    builder: &mut CodeBuilder<C>,
1920
1.97k
) -> Result<Instruction> {
1921
1.97k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1922
1.97k
    builder.push_operands(&[ValType::I32]);
1923
1.97k
    Ok(Instruction::I32DivU)
1924
1.97k
}
wasm_smith::code_builder::i32_div_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1916
9.29k
fn i32_div_u<C: Config>(
1917
9.29k
    _: &mut Unstructured,
1918
9.29k
    _: &ConfiguredModule<C>,
1919
9.29k
    builder: &mut CodeBuilder<C>,
1920
9.29k
) -> Result<Instruction> {
1921
9.29k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1922
9.29k
    builder.push_operands(&[ValType::I32]);
1923
9.29k
    Ok(Instruction::I32DivU)
1924
9.29k
}
1925
1926
26.5k
fn i32_rem_s<C: Config>(
1927
26.5k
    _: &mut Unstructured,
1928
26.5k
    _: &ConfiguredModule<C>,
1929
26.5k
    builder: &mut CodeBuilder<C>,
1930
26.5k
) -> Result<Instruction> {
1931
26.5k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1932
26.5k
    builder.push_operands(&[ValType::I32]);
1933
26.5k
    Ok(Instruction::I32RemS)
1934
26.5k
}
wasm_smith::code_builder::i32_rem_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1926
9.00k
fn i32_rem_s<C: Config>(
1927
9.00k
    _: &mut Unstructured,
1928
9.00k
    _: &ConfiguredModule<C>,
1929
9.00k
    builder: &mut CodeBuilder<C>,
1930
9.00k
) -> Result<Instruction> {
1931
9.00k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1932
9.00k
    builder.push_operands(&[ValType::I32]);
1933
9.00k
    Ok(Instruction::I32RemS)
1934
9.00k
}
wasm_smith::code_builder::i32_rem_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1926
17.5k
fn i32_rem_s<C: Config>(
1927
17.5k
    _: &mut Unstructured,
1928
17.5k
    _: &ConfiguredModule<C>,
1929
17.5k
    builder: &mut CodeBuilder<C>,
1930
17.5k
) -> Result<Instruction> {
1931
17.5k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1932
17.5k
    builder.push_operands(&[ValType::I32]);
1933
17.5k
    Ok(Instruction::I32RemS)
1934
17.5k
}
1935
1936
3.54k
fn i32_rem_u<C: Config>(
1937
3.54k
    _: &mut Unstructured,
1938
3.54k
    _: &ConfiguredModule<C>,
1939
3.54k
    builder: &mut CodeBuilder<C>,
1940
3.54k
) -> Result<Instruction> {
1941
3.54k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1942
3.54k
    builder.push_operands(&[ValType::I32]);
1943
3.54k
    Ok(Instruction::I32RemU)
1944
3.54k
}
wasm_smith::code_builder::i32_rem_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1936
1.14k
fn i32_rem_u<C: Config>(
1937
1.14k
    _: &mut Unstructured,
1938
1.14k
    _: &ConfiguredModule<C>,
1939
1.14k
    builder: &mut CodeBuilder<C>,
1940
1.14k
) -> Result<Instruction> {
1941
1.14k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1942
1.14k
    builder.push_operands(&[ValType::I32]);
1943
1.14k
    Ok(Instruction::I32RemU)
1944
1.14k
}
wasm_smith::code_builder::i32_rem_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1936
2.40k
fn i32_rem_u<C: Config>(
1937
2.40k
    _: &mut Unstructured,
1938
2.40k
    _: &ConfiguredModule<C>,
1939
2.40k
    builder: &mut CodeBuilder<C>,
1940
2.40k
) -> Result<Instruction> {
1941
2.40k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1942
2.40k
    builder.push_operands(&[ValType::I32]);
1943
2.40k
    Ok(Instruction::I32RemU)
1944
2.40k
}
1945
1946
17.5k
fn i32_and<C: Config>(
1947
17.5k
    _: &mut Unstructured,
1948
17.5k
    _: &ConfiguredModule<C>,
1949
17.5k
    builder: &mut CodeBuilder<C>,
1950
17.5k
) -> Result<Instruction> {
1951
17.5k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1952
17.5k
    builder.push_operands(&[ValType::I32]);
1953
17.5k
    Ok(Instruction::I32And)
1954
17.5k
}
wasm_smith::code_builder::i32_and::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1946
4.06k
fn i32_and<C: Config>(
1947
4.06k
    _: &mut Unstructured,
1948
4.06k
    _: &ConfiguredModule<C>,
1949
4.06k
    builder: &mut CodeBuilder<C>,
1950
4.06k
) -> Result<Instruction> {
1951
4.06k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1952
4.06k
    builder.push_operands(&[ValType::I32]);
1953
4.06k
    Ok(Instruction::I32And)
1954
4.06k
}
wasm_smith::code_builder::i32_and::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1946
13.4k
fn i32_and<C: Config>(
1947
13.4k
    _: &mut Unstructured,
1948
13.4k
    _: &ConfiguredModule<C>,
1949
13.4k
    builder: &mut CodeBuilder<C>,
1950
13.4k
) -> Result<Instruction> {
1951
13.4k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1952
13.4k
    builder.push_operands(&[ValType::I32]);
1953
13.4k
    Ok(Instruction::I32And)
1954
13.4k
}
1955
1956
4.21k
fn i32_or<C: Config>(
1957
4.21k
    _: &mut Unstructured,
1958
4.21k
    _: &ConfiguredModule<C>,
1959
4.21k
    builder: &mut CodeBuilder<C>,
1960
4.21k
) -> Result<Instruction> {
1961
4.21k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1962
4.21k
    builder.push_operands(&[ValType::I32]);
1963
4.21k
    Ok(Instruction::I32Or)
1964
4.21k
}
wasm_smith::code_builder::i32_or::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1956
2.67k
fn i32_or<C: Config>(
1957
2.67k
    _: &mut Unstructured,
1958
2.67k
    _: &ConfiguredModule<C>,
1959
2.67k
    builder: &mut CodeBuilder<C>,
1960
2.67k
) -> Result<Instruction> {
1961
2.67k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1962
2.67k
    builder.push_operands(&[ValType::I32]);
1963
2.67k
    Ok(Instruction::I32Or)
1964
2.67k
}
wasm_smith::code_builder::i32_or::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1956
1.54k
fn i32_or<C: Config>(
1957
1.54k
    _: &mut Unstructured,
1958
1.54k
    _: &ConfiguredModule<C>,
1959
1.54k
    builder: &mut CodeBuilder<C>,
1960
1.54k
) -> Result<Instruction> {
1961
1.54k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1962
1.54k
    builder.push_operands(&[ValType::I32]);
1963
1.54k
    Ok(Instruction::I32Or)
1964
1.54k
}
1965
1966
17.5k
fn i32_xor<C: Config>(
1967
17.5k
    _: &mut Unstructured,
1968
17.5k
    _: &ConfiguredModule<C>,
1969
17.5k
    builder: &mut CodeBuilder<C>,
1970
17.5k
) -> Result<Instruction> {
1971
17.5k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1972
17.5k
    builder.push_operands(&[ValType::I32]);
1973
17.5k
    Ok(Instruction::I32Xor)
1974
17.5k
}
wasm_smith::code_builder::i32_xor::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1966
3.42k
fn i32_xor<C: Config>(
1967
3.42k
    _: &mut Unstructured,
1968
3.42k
    _: &ConfiguredModule<C>,
1969
3.42k
    builder: &mut CodeBuilder<C>,
1970
3.42k
) -> Result<Instruction> {
1971
3.42k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1972
3.42k
    builder.push_operands(&[ValType::I32]);
1973
3.42k
    Ok(Instruction::I32Xor)
1974
3.42k
}
wasm_smith::code_builder::i32_xor::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1966
14.1k
fn i32_xor<C: Config>(
1967
14.1k
    _: &mut Unstructured,
1968
14.1k
    _: &ConfiguredModule<C>,
1969
14.1k
    builder: &mut CodeBuilder<C>,
1970
14.1k
) -> Result<Instruction> {
1971
14.1k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1972
14.1k
    builder.push_operands(&[ValType::I32]);
1973
14.1k
    Ok(Instruction::I32Xor)
1974
14.1k
}
1975
1976
13.1k
fn i32_shl<C: Config>(
1977
13.1k
    _: &mut Unstructured,
1978
13.1k
    _: &ConfiguredModule<C>,
1979
13.1k
    builder: &mut CodeBuilder<C>,
1980
13.1k
) -> Result<Instruction> {
1981
13.1k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1982
13.1k
    builder.push_operands(&[ValType::I32]);
1983
13.1k
    Ok(Instruction::I32Shl)
1984
13.1k
}
wasm_smith::code_builder::i32_shl::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1976
9.48k
fn i32_shl<C: Config>(
1977
9.48k
    _: &mut Unstructured,
1978
9.48k
    _: &ConfiguredModule<C>,
1979
9.48k
    builder: &mut CodeBuilder<C>,
1980
9.48k
) -> Result<Instruction> {
1981
9.48k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1982
9.48k
    builder.push_operands(&[ValType::I32]);
1983
9.48k
    Ok(Instruction::I32Shl)
1984
9.48k
}
wasm_smith::code_builder::i32_shl::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1976
3.66k
fn i32_shl<C: Config>(
1977
3.66k
    _: &mut Unstructured,
1978
3.66k
    _: &ConfiguredModule<C>,
1979
3.66k
    builder: &mut CodeBuilder<C>,
1980
3.66k
) -> Result<Instruction> {
1981
3.66k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1982
3.66k
    builder.push_operands(&[ValType::I32]);
1983
3.66k
    Ok(Instruction::I32Shl)
1984
3.66k
}
1985
1986
6.79k
fn i32_shr_s<C: Config>(
1987
6.79k
    _: &mut Unstructured,
1988
6.79k
    _: &ConfiguredModule<C>,
1989
6.79k
    builder: &mut CodeBuilder<C>,
1990
6.79k
) -> Result<Instruction> {
1991
6.79k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1992
6.79k
    builder.push_operands(&[ValType::I32]);
1993
6.79k
    Ok(Instruction::I32ShrS)
1994
6.79k
}
wasm_smith::code_builder::i32_shr_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1986
3.04k
fn i32_shr_s<C: Config>(
1987
3.04k
    _: &mut Unstructured,
1988
3.04k
    _: &ConfiguredModule<C>,
1989
3.04k
    builder: &mut CodeBuilder<C>,
1990
3.04k
) -> Result<Instruction> {
1991
3.04k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1992
3.04k
    builder.push_operands(&[ValType::I32]);
1993
3.04k
    Ok(Instruction::I32ShrS)
1994
3.04k
}
wasm_smith::code_builder::i32_shr_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1986
3.74k
fn i32_shr_s<C: Config>(
1987
3.74k
    _: &mut Unstructured,
1988
3.74k
    _: &ConfiguredModule<C>,
1989
3.74k
    builder: &mut CodeBuilder<C>,
1990
3.74k
) -> Result<Instruction> {
1991
3.74k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
1992
3.74k
    builder.push_operands(&[ValType::I32]);
1993
3.74k
    Ok(Instruction::I32ShrS)
1994
3.74k
}
1995
1996
10.6k
fn i32_shr_u<C: Config>(
1997
10.6k
    _: &mut Unstructured,
1998
10.6k
    _: &ConfiguredModule<C>,
1999
10.6k
    builder: &mut CodeBuilder<C>,
2000
10.6k
) -> Result<Instruction> {
2001
10.6k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
2002
10.6k
    builder.push_operands(&[ValType::I32]);
2003
10.6k
    Ok(Instruction::I32ShrU)
2004
10.6k
}
wasm_smith::code_builder::i32_shr_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
1996
8.81k
fn i32_shr_u<C: Config>(
1997
8.81k
    _: &mut Unstructured,
1998
8.81k
    _: &ConfiguredModule<C>,
1999
8.81k
    builder: &mut CodeBuilder<C>,
2000
8.81k
) -> Result<Instruction> {
2001
8.81k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
2002
8.81k
    builder.push_operands(&[ValType::I32]);
2003
8.81k
    Ok(Instruction::I32ShrU)
2004
8.81k
}
wasm_smith::code_builder::i32_shr_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
1996
1.86k
fn i32_shr_u<C: Config>(
1997
1.86k
    _: &mut Unstructured,
1998
1.86k
    _: &ConfiguredModule<C>,
1999
1.86k
    builder: &mut CodeBuilder<C>,
2000
1.86k
) -> Result<Instruction> {
2001
1.86k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
2002
1.86k
    builder.push_operands(&[ValType::I32]);
2003
1.86k
    Ok(Instruction::I32ShrU)
2004
1.86k
}
2005
2006
5.03k
fn i32_rotl<C: Config>(
2007
5.03k
    _: &mut Unstructured,
2008
5.03k
    _: &ConfiguredModule<C>,
2009
5.03k
    builder: &mut CodeBuilder<C>,
2010
5.03k
) -> Result<Instruction> {
2011
5.03k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
2012
5.03k
    builder.push_operands(&[ValType::I32]);
2013
5.03k
    Ok(Instruction::I32Rotl)
2014
5.03k
}
wasm_smith::code_builder::i32_rotl::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2006
1.41k
fn i32_rotl<C: Config>(
2007
1.41k
    _: &mut Unstructured,
2008
1.41k
    _: &ConfiguredModule<C>,
2009
1.41k
    builder: &mut CodeBuilder<C>,
2010
1.41k
) -> Result<Instruction> {
2011
1.41k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
2012
1.41k
    builder.push_operands(&[ValType::I32]);
2013
1.41k
    Ok(Instruction::I32Rotl)
2014
1.41k
}
wasm_smith::code_builder::i32_rotl::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2006
3.61k
fn i32_rotl<C: Config>(
2007
3.61k
    _: &mut Unstructured,
2008
3.61k
    _: &ConfiguredModule<C>,
2009
3.61k
    builder: &mut CodeBuilder<C>,
2010
3.61k
) -> Result<Instruction> {
2011
3.61k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
2012
3.61k
    builder.push_operands(&[ValType::I32]);
2013
3.61k
    Ok(Instruction::I32Rotl)
2014
3.61k
}
2015
2016
4.65k
fn i32_rotr<C: Config>(
2017
4.65k
    _: &mut Unstructured,
2018
4.65k
    _: &ConfiguredModule<C>,
2019
4.65k
    builder: &mut CodeBuilder<C>,
2020
4.65k
) -> Result<Instruction> {
2021
4.65k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
2022
4.65k
    builder.push_operands(&[ValType::I32]);
2023
4.65k
    Ok(Instruction::I32Rotr)
2024
4.65k
}
wasm_smith::code_builder::i32_rotr::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2016
1.87k
fn i32_rotr<C: Config>(
2017
1.87k
    _: &mut Unstructured,
2018
1.87k
    _: &ConfiguredModule<C>,
2019
1.87k
    builder: &mut CodeBuilder<C>,
2020
1.87k
) -> Result<Instruction> {
2021
1.87k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
2022
1.87k
    builder.push_operands(&[ValType::I32]);
2023
1.87k
    Ok(Instruction::I32Rotr)
2024
1.87k
}
wasm_smith::code_builder::i32_rotr::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2016
2.77k
fn i32_rotr<C: Config>(
2017
2.77k
    _: &mut Unstructured,
2018
2.77k
    _: &ConfiguredModule<C>,
2019
2.77k
    builder: &mut CodeBuilder<C>,
2020
2.77k
) -> Result<Instruction> {
2021
2.77k
    builder.pop_operands(&[ValType::I32, ValType::I32]);
2022
2.77k
    builder.push_operands(&[ValType::I32]);
2023
2.77k
    Ok(Instruction::I32Rotr)
2024
2.77k
}
2025
2026
120k
fn i64_clz<C: Config>(
2027
120k
    _: &mut Unstructured,
2028
120k
    _: &ConfiguredModule<C>,
2029
120k
    builder: &mut CodeBuilder<C>,
2030
120k
) -> Result<Instruction> {
2031
120k
    builder.pop_operands(&[ValType::I64]);
2032
120k
    builder.push_operands(&[ValType::I64]);
2033
120k
    Ok(Instruction::I64Clz)
2034
120k
}
wasm_smith::code_builder::i64_clz::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2026
64.3k
fn i64_clz<C: Config>(
2027
64.3k
    _: &mut Unstructured,
2028
64.3k
    _: &ConfiguredModule<C>,
2029
64.3k
    builder: &mut CodeBuilder<C>,
2030
64.3k
) -> Result<Instruction> {
2031
64.3k
    builder.pop_operands(&[ValType::I64]);
2032
64.3k
    builder.push_operands(&[ValType::I64]);
2033
64.3k
    Ok(Instruction::I64Clz)
2034
64.3k
}
wasm_smith::code_builder::i64_clz::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2026
55.9k
fn i64_clz<C: Config>(
2027
55.9k
    _: &mut Unstructured,
2028
55.9k
    _: &ConfiguredModule<C>,
2029
55.9k
    builder: &mut CodeBuilder<C>,
2030
55.9k
) -> Result<Instruction> {
2031
55.9k
    builder.pop_operands(&[ValType::I64]);
2032
55.9k
    builder.push_operands(&[ValType::I64]);
2033
55.9k
    Ok(Instruction::I64Clz)
2034
55.9k
}
2035
2036
68.8k
fn i64_ctz<C: Config>(
2037
68.8k
    _: &mut Unstructured,
2038
68.8k
    _: &ConfiguredModule<C>,
2039
68.8k
    builder: &mut CodeBuilder<C>,
2040
68.8k
) -> Result<Instruction> {
2041
68.8k
    builder.pop_operands(&[ValType::I64]);
2042
68.8k
    builder.push_operands(&[ValType::I64]);
2043
68.8k
    Ok(Instruction::I64Ctz)
2044
68.8k
}
wasm_smith::code_builder::i64_ctz::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2036
28.3k
fn i64_ctz<C: Config>(
2037
28.3k
    _: &mut Unstructured,
2038
28.3k
    _: &ConfiguredModule<C>,
2039
28.3k
    builder: &mut CodeBuilder<C>,
2040
28.3k
) -> Result<Instruction> {
2041
28.3k
    builder.pop_operands(&[ValType::I64]);
2042
28.3k
    builder.push_operands(&[ValType::I64]);
2043
28.3k
    Ok(Instruction::I64Ctz)
2044
28.3k
}
wasm_smith::code_builder::i64_ctz::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2036
40.5k
fn i64_ctz<C: Config>(
2037
40.5k
    _: &mut Unstructured,
2038
40.5k
    _: &ConfiguredModule<C>,
2039
40.5k
    builder: &mut CodeBuilder<C>,
2040
40.5k
) -> Result<Instruction> {
2041
40.5k
    builder.pop_operands(&[ValType::I64]);
2042
40.5k
    builder.push_operands(&[ValType::I64]);
2043
40.5k
    Ok(Instruction::I64Ctz)
2044
40.5k
}
2045
2046
128k
fn i64_popcnt<C: Config>(
2047
128k
    _: &mut Unstructured,
2048
128k
    _: &ConfiguredModule<C>,
2049
128k
    builder: &mut CodeBuilder<C>,
2050
128k
) -> Result<Instruction> {
2051
128k
    builder.pop_operands(&[ValType::I64]);
2052
128k
    builder.push_operands(&[ValType::I64]);
2053
128k
    Ok(Instruction::I64Popcnt)
2054
128k
}
wasm_smith::code_builder::i64_popcnt::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2046
81.0k
fn i64_popcnt<C: Config>(
2047
81.0k
    _: &mut Unstructured,
2048
81.0k
    _: &ConfiguredModule<C>,
2049
81.0k
    builder: &mut CodeBuilder<C>,
2050
81.0k
) -> Result<Instruction> {
2051
81.0k
    builder.pop_operands(&[ValType::I64]);
2052
81.0k
    builder.push_operands(&[ValType::I64]);
2053
81.0k
    Ok(Instruction::I64Popcnt)
2054
81.0k
}
wasm_smith::code_builder::i64_popcnt::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2046
47.2k
fn i64_popcnt<C: Config>(
2047
47.2k
    _: &mut Unstructured,
2048
47.2k
    _: &ConfiguredModule<C>,
2049
47.2k
    builder: &mut CodeBuilder<C>,
2050
47.2k
) -> Result<Instruction> {
2051
47.2k
    builder.pop_operands(&[ValType::I64]);
2052
47.2k
    builder.push_operands(&[ValType::I64]);
2053
47.2k
    Ok(Instruction::I64Popcnt)
2054
47.2k
}
2055
2056
15.2k
fn i64_add<C: Config>(
2057
15.2k
    _: &mut Unstructured,
2058
15.2k
    _: &ConfiguredModule<C>,
2059
15.2k
    builder: &mut CodeBuilder<C>,
2060
15.2k
) -> Result<Instruction> {
2061
15.2k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2062
15.2k
    builder.push_operands(&[ValType::I64]);
2063
15.2k
    Ok(Instruction::I64Add)
2064
15.2k
}
wasm_smith::code_builder::i64_add::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2056
12.7k
fn i64_add<C: Config>(
2057
12.7k
    _: &mut Unstructured,
2058
12.7k
    _: &ConfiguredModule<C>,
2059
12.7k
    builder: &mut CodeBuilder<C>,
2060
12.7k
) -> Result<Instruction> {
2061
12.7k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2062
12.7k
    builder.push_operands(&[ValType::I64]);
2063
12.7k
    Ok(Instruction::I64Add)
2064
12.7k
}
wasm_smith::code_builder::i64_add::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2056
2.47k
fn i64_add<C: Config>(
2057
2.47k
    _: &mut Unstructured,
2058
2.47k
    _: &ConfiguredModule<C>,
2059
2.47k
    builder: &mut CodeBuilder<C>,
2060
2.47k
) -> Result<Instruction> {
2061
2.47k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2062
2.47k
    builder.push_operands(&[ValType::I64]);
2063
2.47k
    Ok(Instruction::I64Add)
2064
2.47k
}
2065
2066
11.2k
fn i64_sub<C: Config>(
2067
11.2k
    _: &mut Unstructured,
2068
11.2k
    _: &ConfiguredModule<C>,
2069
11.2k
    builder: &mut CodeBuilder<C>,
2070
11.2k
) -> Result<Instruction> {
2071
11.2k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2072
11.2k
    builder.push_operands(&[ValType::I64]);
2073
11.2k
    Ok(Instruction::I64Sub)
2074
11.2k
}
wasm_smith::code_builder::i64_sub::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2066
5.97k
fn i64_sub<C: Config>(
2067
5.97k
    _: &mut Unstructured,
2068
5.97k
    _: &ConfiguredModule<C>,
2069
5.97k
    builder: &mut CodeBuilder<C>,
2070
5.97k
) -> Result<Instruction> {
2071
5.97k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2072
5.97k
    builder.push_operands(&[ValType::I64]);
2073
5.97k
    Ok(Instruction::I64Sub)
2074
5.97k
}
wasm_smith::code_builder::i64_sub::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2066
5.29k
fn i64_sub<C: Config>(
2067
5.29k
    _: &mut Unstructured,
2068
5.29k
    _: &ConfiguredModule<C>,
2069
5.29k
    builder: &mut CodeBuilder<C>,
2070
5.29k
) -> Result<Instruction> {
2071
5.29k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2072
5.29k
    builder.push_operands(&[ValType::I64]);
2073
5.29k
    Ok(Instruction::I64Sub)
2074
5.29k
}
2075
2076
7.57k
fn i64_mul<C: Config>(
2077
7.57k
    _: &mut Unstructured,
2078
7.57k
    _: &ConfiguredModule<C>,
2079
7.57k
    builder: &mut CodeBuilder<C>,
2080
7.57k
) -> Result<Instruction> {
2081
7.57k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2082
7.57k
    builder.push_operands(&[ValType::I64]);
2083
7.57k
    Ok(Instruction::I64Mul)
2084
7.57k
}
wasm_smith::code_builder::i64_mul::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2076
5.49k
fn i64_mul<C: Config>(
2077
5.49k
    _: &mut Unstructured,
2078
5.49k
    _: &ConfiguredModule<C>,
2079
5.49k
    builder: &mut CodeBuilder<C>,
2080
5.49k
) -> Result<Instruction> {
2081
5.49k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2082
5.49k
    builder.push_operands(&[ValType::I64]);
2083
5.49k
    Ok(Instruction::I64Mul)
2084
5.49k
}
wasm_smith::code_builder::i64_mul::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2076
2.08k
fn i64_mul<C: Config>(
2077
2.08k
    _: &mut Unstructured,
2078
2.08k
    _: &ConfiguredModule<C>,
2079
2.08k
    builder: &mut CodeBuilder<C>,
2080
2.08k
) -> Result<Instruction> {
2081
2.08k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2082
2.08k
    builder.push_operands(&[ValType::I64]);
2083
2.08k
    Ok(Instruction::I64Mul)
2084
2.08k
}
2085
2086
12.8k
fn i64_div_s<C: Config>(
2087
12.8k
    _: &mut Unstructured,
2088
12.8k
    _: &ConfiguredModule<C>,
2089
12.8k
    builder: &mut CodeBuilder<C>,
2090
12.8k
) -> Result<Instruction> {
2091
12.8k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2092
12.8k
    builder.push_operands(&[ValType::I64]);
2093
12.8k
    Ok(Instruction::I64DivS)
2094
12.8k
}
wasm_smith::code_builder::i64_div_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2086
5.56k
fn i64_div_s<C: Config>(
2087
5.56k
    _: &mut Unstructured,
2088
5.56k
    _: &ConfiguredModule<C>,
2089
5.56k
    builder: &mut CodeBuilder<C>,
2090
5.56k
) -> Result<Instruction> {
2091
5.56k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2092
5.56k
    builder.push_operands(&[ValType::I64]);
2093
5.56k
    Ok(Instruction::I64DivS)
2094
5.56k
}
wasm_smith::code_builder::i64_div_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2086
7.31k
fn i64_div_s<C: Config>(
2087
7.31k
    _: &mut Unstructured,
2088
7.31k
    _: &ConfiguredModule<C>,
2089
7.31k
    builder: &mut CodeBuilder<C>,
2090
7.31k
) -> Result<Instruction> {
2091
7.31k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2092
7.31k
    builder.push_operands(&[ValType::I64]);
2093
7.31k
    Ok(Instruction::I64DivS)
2094
7.31k
}
2095
2096
6.03k
fn i64_div_u<C: Config>(
2097
6.03k
    _: &mut Unstructured,
2098
6.03k
    _: &ConfiguredModule<C>,
2099
6.03k
    builder: &mut CodeBuilder<C>,
2100
6.03k
) -> Result<Instruction> {
2101
6.03k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2102
6.03k
    builder.push_operands(&[ValType::I64]);
2103
6.03k
    Ok(Instruction::I64DivU)
2104
6.03k
}
wasm_smith::code_builder::i64_div_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2096
3.24k
fn i64_div_u<C: Config>(
2097
3.24k
    _: &mut Unstructured,
2098
3.24k
    _: &ConfiguredModule<C>,
2099
3.24k
    builder: &mut CodeBuilder<C>,
2100
3.24k
) -> Result<Instruction> {
2101
3.24k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2102
3.24k
    builder.push_operands(&[ValType::I64]);
2103
3.24k
    Ok(Instruction::I64DivU)
2104
3.24k
}
wasm_smith::code_builder::i64_div_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2096
2.78k
fn i64_div_u<C: Config>(
2097
2.78k
    _: &mut Unstructured,
2098
2.78k
    _: &ConfiguredModule<C>,
2099
2.78k
    builder: &mut CodeBuilder<C>,
2100
2.78k
) -> Result<Instruction> {
2101
2.78k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2102
2.78k
    builder.push_operands(&[ValType::I64]);
2103
2.78k
    Ok(Instruction::I64DivU)
2104
2.78k
}
2105
2106
17.5k
fn i64_rem_s<C: Config>(
2107
17.5k
    _: &mut Unstructured,
2108
17.5k
    _: &ConfiguredModule<C>,
2109
17.5k
    builder: &mut CodeBuilder<C>,
2110
17.5k
) -> Result<Instruction> {
2111
17.5k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2112
17.5k
    builder.push_operands(&[ValType::I64]);
2113
17.5k
    Ok(Instruction::I64RemS)
2114
17.5k
}
wasm_smith::code_builder::i64_rem_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2106
2.83k
fn i64_rem_s<C: Config>(
2107
2.83k
    _: &mut Unstructured,
2108
2.83k
    _: &ConfiguredModule<C>,
2109
2.83k
    builder: &mut CodeBuilder<C>,
2110
2.83k
) -> Result<Instruction> {
2111
2.83k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2112
2.83k
    builder.push_operands(&[ValType::I64]);
2113
2.83k
    Ok(Instruction::I64RemS)
2114
2.83k
}
wasm_smith::code_builder::i64_rem_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2106
14.6k
fn i64_rem_s<C: Config>(
2107
14.6k
    _: &mut Unstructured,
2108
14.6k
    _: &ConfiguredModule<C>,
2109
14.6k
    builder: &mut CodeBuilder<C>,
2110
14.6k
) -> Result<Instruction> {
2111
14.6k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2112
14.6k
    builder.push_operands(&[ValType::I64]);
2113
14.6k
    Ok(Instruction::I64RemS)
2114
14.6k
}
2115
2116
5.19k
fn i64_rem_u<C: Config>(
2117
5.19k
    _: &mut Unstructured,
2118
5.19k
    _: &ConfiguredModule<C>,
2119
5.19k
    builder: &mut CodeBuilder<C>,
2120
5.19k
) -> Result<Instruction> {
2121
5.19k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2122
5.19k
    builder.push_operands(&[ValType::I64]);
2123
5.19k
    Ok(Instruction::I64RemU)
2124
5.19k
}
wasm_smith::code_builder::i64_rem_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2116
1.70k
fn i64_rem_u<C: Config>(
2117
1.70k
    _: &mut Unstructured,
2118
1.70k
    _: &ConfiguredModule<C>,
2119
1.70k
    builder: &mut CodeBuilder<C>,
2120
1.70k
) -> Result<Instruction> {
2121
1.70k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2122
1.70k
    builder.push_operands(&[ValType::I64]);
2123
1.70k
    Ok(Instruction::I64RemU)
2124
1.70k
}
wasm_smith::code_builder::i64_rem_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2116
3.49k
fn i64_rem_u<C: Config>(
2117
3.49k
    _: &mut Unstructured,
2118
3.49k
    _: &ConfiguredModule<C>,
2119
3.49k
    builder: &mut CodeBuilder<C>,
2120
3.49k
) -> Result<Instruction> {
2121
3.49k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2122
3.49k
    builder.push_operands(&[ValType::I64]);
2123
3.49k
    Ok(Instruction::I64RemU)
2124
3.49k
}
2125
2126
7.23k
fn i64_and<C: Config>(
2127
7.23k
    _: &mut Unstructured,
2128
7.23k
    _: &ConfiguredModule<C>,
2129
7.23k
    builder: &mut CodeBuilder<C>,
2130
7.23k
) -> Result<Instruction> {
2131
7.23k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2132
7.23k
    builder.push_operands(&[ValType::I64]);
2133
7.23k
    Ok(Instruction::I64And)
2134
7.23k
}
wasm_smith::code_builder::i64_and::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2126
3.59k
fn i64_and<C: Config>(
2127
3.59k
    _: &mut Unstructured,
2128
3.59k
    _: &ConfiguredModule<C>,
2129
3.59k
    builder: &mut CodeBuilder<C>,
2130
3.59k
) -> Result<Instruction> {
2131
3.59k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2132
3.59k
    builder.push_operands(&[ValType::I64]);
2133
3.59k
    Ok(Instruction::I64And)
2134
3.59k
}
wasm_smith::code_builder::i64_and::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2126
3.64k
fn i64_and<C: Config>(
2127
3.64k
    _: &mut Unstructured,
2128
3.64k
    _: &ConfiguredModule<C>,
2129
3.64k
    builder: &mut CodeBuilder<C>,
2130
3.64k
) -> Result<Instruction> {
2131
3.64k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2132
3.64k
    builder.push_operands(&[ValType::I64]);
2133
3.64k
    Ok(Instruction::I64And)
2134
3.64k
}
2135
2136
5.28k
fn i64_or<C: Config>(
2137
5.28k
    _: &mut Unstructured,
2138
5.28k
    _: &ConfiguredModule<C>,
2139
5.28k
    builder: &mut CodeBuilder<C>,
2140
5.28k
) -> Result<Instruction> {
2141
5.28k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2142
5.28k
    builder.push_operands(&[ValType::I64]);
2143
5.28k
    Ok(Instruction::I64Or)
2144
5.28k
}
wasm_smith::code_builder::i64_or::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2136
3.54k
fn i64_or<C: Config>(
2137
3.54k
    _: &mut Unstructured,
2138
3.54k
    _: &ConfiguredModule<C>,
2139
3.54k
    builder: &mut CodeBuilder<C>,
2140
3.54k
) -> Result<Instruction> {
2141
3.54k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2142
3.54k
    builder.push_operands(&[ValType::I64]);
2143
3.54k
    Ok(Instruction::I64Or)
2144
3.54k
}
wasm_smith::code_builder::i64_or::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2136
1.73k
fn i64_or<C: Config>(
2137
1.73k
    _: &mut Unstructured,
2138
1.73k
    _: &ConfiguredModule<C>,
2139
1.73k
    builder: &mut CodeBuilder<C>,
2140
1.73k
) -> Result<Instruction> {
2141
1.73k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2142
1.73k
    builder.push_operands(&[ValType::I64]);
2143
1.73k
    Ok(Instruction::I64Or)
2144
1.73k
}
2145
2146
10.2k
fn i64_xor<C: Config>(
2147
10.2k
    _: &mut Unstructured,
2148
10.2k
    _: &ConfiguredModule<C>,
2149
10.2k
    builder: &mut CodeBuilder<C>,
2150
10.2k
) -> Result<Instruction> {
2151
10.2k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2152
10.2k
    builder.push_operands(&[ValType::I64]);
2153
10.2k
    Ok(Instruction::I64Xor)
2154
10.2k
}
wasm_smith::code_builder::i64_xor::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2146
4.73k
fn i64_xor<C: Config>(
2147
4.73k
    _: &mut Unstructured,
2148
4.73k
    _: &ConfiguredModule<C>,
2149
4.73k
    builder: &mut CodeBuilder<C>,
2150
4.73k
) -> Result<Instruction> {
2151
4.73k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2152
4.73k
    builder.push_operands(&[ValType::I64]);
2153
4.73k
    Ok(Instruction::I64Xor)
2154
4.73k
}
wasm_smith::code_builder::i64_xor::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2146
5.51k
fn i64_xor<C: Config>(
2147
5.51k
    _: &mut Unstructured,
2148
5.51k
    _: &ConfiguredModule<C>,
2149
5.51k
    builder: &mut CodeBuilder<C>,
2150
5.51k
) -> Result<Instruction> {
2151
5.51k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2152
5.51k
    builder.push_operands(&[ValType::I64]);
2153
5.51k
    Ok(Instruction::I64Xor)
2154
5.51k
}
2155
2156
4.24k
fn i64_shl<C: Config>(
2157
4.24k
    _: &mut Unstructured,
2158
4.24k
    _: &ConfiguredModule<C>,
2159
4.24k
    builder: &mut CodeBuilder<C>,
2160
4.24k
) -> Result<Instruction> {
2161
4.24k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2162
4.24k
    builder.push_operands(&[ValType::I64]);
2163
4.24k
    Ok(Instruction::I64Shl)
2164
4.24k
}
wasm_smith::code_builder::i64_shl::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2156
1.60k
fn i64_shl<C: Config>(
2157
1.60k
    _: &mut Unstructured,
2158
1.60k
    _: &ConfiguredModule<C>,
2159
1.60k
    builder: &mut CodeBuilder<C>,
2160
1.60k
) -> Result<Instruction> {
2161
1.60k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2162
1.60k
    builder.push_operands(&[ValType::I64]);
2163
1.60k
    Ok(Instruction::I64Shl)
2164
1.60k
}
wasm_smith::code_builder::i64_shl::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2156
2.64k
fn i64_shl<C: Config>(
2157
2.64k
    _: &mut Unstructured,
2158
2.64k
    _: &ConfiguredModule<C>,
2159
2.64k
    builder: &mut CodeBuilder<C>,
2160
2.64k
) -> Result<Instruction> {
2161
2.64k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2162
2.64k
    builder.push_operands(&[ValType::I64]);
2163
2.64k
    Ok(Instruction::I64Shl)
2164
2.64k
}
2165
2166
9.39k
fn i64_shr_s<C: Config>(
2167
9.39k
    _: &mut Unstructured,
2168
9.39k
    _: &ConfiguredModule<C>,
2169
9.39k
    builder: &mut CodeBuilder<C>,
2170
9.39k
) -> Result<Instruction> {
2171
9.39k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2172
9.39k
    builder.push_operands(&[ValType::I64]);
2173
9.39k
    Ok(Instruction::I64ShrS)
2174
9.39k
}
wasm_smith::code_builder::i64_shr_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2166
2.29k
fn i64_shr_s<C: Config>(
2167
2.29k
    _: &mut Unstructured,
2168
2.29k
    _: &ConfiguredModule<C>,
2169
2.29k
    builder: &mut CodeBuilder<C>,
2170
2.29k
) -> Result<Instruction> {
2171
2.29k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2172
2.29k
    builder.push_operands(&[ValType::I64]);
2173
2.29k
    Ok(Instruction::I64ShrS)
2174
2.29k
}
wasm_smith::code_builder::i64_shr_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2166
7.10k
fn i64_shr_s<C: Config>(
2167
7.10k
    _: &mut Unstructured,
2168
7.10k
    _: &ConfiguredModule<C>,
2169
7.10k
    builder: &mut CodeBuilder<C>,
2170
7.10k
) -> Result<Instruction> {
2171
7.10k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2172
7.10k
    builder.push_operands(&[ValType::I64]);
2173
7.10k
    Ok(Instruction::I64ShrS)
2174
7.10k
}
2175
2176
19.5k
fn i64_shr_u<C: Config>(
2177
19.5k
    _: &mut Unstructured,
2178
19.5k
    _: &ConfiguredModule<C>,
2179
19.5k
    builder: &mut CodeBuilder<C>,
2180
19.5k
) -> Result<Instruction> {
2181
19.5k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2182
19.5k
    builder.push_operands(&[ValType::I64]);
2183
19.5k
    Ok(Instruction::I64ShrU)
2184
19.5k
}
wasm_smith::code_builder::i64_shr_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2176
7.33k
fn i64_shr_u<C: Config>(
2177
7.33k
    _: &mut Unstructured,
2178
7.33k
    _: &ConfiguredModule<C>,
2179
7.33k
    builder: &mut CodeBuilder<C>,
2180
7.33k
) -> Result<Instruction> {
2181
7.33k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2182
7.33k
    builder.push_operands(&[ValType::I64]);
2183
7.33k
    Ok(Instruction::I64ShrU)
2184
7.33k
}
wasm_smith::code_builder::i64_shr_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2176
12.2k
fn i64_shr_u<C: Config>(
2177
12.2k
    _: &mut Unstructured,
2178
12.2k
    _: &ConfiguredModule<C>,
2179
12.2k
    builder: &mut CodeBuilder<C>,
2180
12.2k
) -> Result<Instruction> {
2181
12.2k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2182
12.2k
    builder.push_operands(&[ValType::I64]);
2183
12.2k
    Ok(Instruction::I64ShrU)
2184
12.2k
}
2185
2186
5.21k
fn i64_rotl<C: Config>(
2187
5.21k
    _: &mut Unstructured,
2188
5.21k
    _: &ConfiguredModule<C>,
2189
5.21k
    builder: &mut CodeBuilder<C>,
2190
5.21k
) -> Result<Instruction> {
2191
5.21k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2192
5.21k
    builder.push_operands(&[ValType::I64]);
2193
5.21k
    Ok(Instruction::I64Rotl)
2194
5.21k
}
wasm_smith::code_builder::i64_rotl::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2186
2.20k
fn i64_rotl<C: Config>(
2187
2.20k
    _: &mut Unstructured,
2188
2.20k
    _: &ConfiguredModule<C>,
2189
2.20k
    builder: &mut CodeBuilder<C>,
2190
2.20k
) -> Result<Instruction> {
2191
2.20k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2192
2.20k
    builder.push_operands(&[ValType::I64]);
2193
2.20k
    Ok(Instruction::I64Rotl)
2194
2.20k
}
wasm_smith::code_builder::i64_rotl::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2186
3.00k
fn i64_rotl<C: Config>(
2187
3.00k
    _: &mut Unstructured,
2188
3.00k
    _: &ConfiguredModule<C>,
2189
3.00k
    builder: &mut CodeBuilder<C>,
2190
3.00k
) -> Result<Instruction> {
2191
3.00k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2192
3.00k
    builder.push_operands(&[ValType::I64]);
2193
3.00k
    Ok(Instruction::I64Rotl)
2194
3.00k
}
2195
2196
10.9k
fn i64_rotr<C: Config>(
2197
10.9k
    _: &mut Unstructured,
2198
10.9k
    _: &ConfiguredModule<C>,
2199
10.9k
    builder: &mut CodeBuilder<C>,
2200
10.9k
) -> Result<Instruction> {
2201
10.9k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2202
10.9k
    builder.push_operands(&[ValType::I64]);
2203
10.9k
    Ok(Instruction::I64Rotr)
2204
10.9k
}
wasm_smith::code_builder::i64_rotr::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2196
9.24k
fn i64_rotr<C: Config>(
2197
9.24k
    _: &mut Unstructured,
2198
9.24k
    _: &ConfiguredModule<C>,
2199
9.24k
    builder: &mut CodeBuilder<C>,
2200
9.24k
) -> Result<Instruction> {
2201
9.24k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2202
9.24k
    builder.push_operands(&[ValType::I64]);
2203
9.24k
    Ok(Instruction::I64Rotr)
2204
9.24k
}
wasm_smith::code_builder::i64_rotr::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2196
1.70k
fn i64_rotr<C: Config>(
2197
1.70k
    _: &mut Unstructured,
2198
1.70k
    _: &ConfiguredModule<C>,
2199
1.70k
    builder: &mut CodeBuilder<C>,
2200
1.70k
) -> Result<Instruction> {
2201
1.70k
    builder.pop_operands(&[ValType::I64, ValType::I64]);
2202
1.70k
    builder.push_operands(&[ValType::I64]);
2203
1.70k
    Ok(Instruction::I64Rotr)
2204
1.70k
}
2205
2206
#[inline]
2207
270M
fn f32_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
2208
270M
    builder.types_on_stack(&[ValType::F32])
2209
270M
}
wasm_smith::code_builder::f32_on_stack::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2207
122M
fn f32_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
2208
122M
    builder.types_on_stack(&[ValType::F32])
2209
122M
}
wasm_smith::code_builder::f32_on_stack::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2207
148M
fn f32_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
2208
148M
    builder.types_on_stack(&[ValType::F32])
2209
148M
}
2210
2211
52.6k
fn f32_abs<C: Config>(
2212
52.6k
    _: &mut Unstructured,
2213
52.6k
    _: &ConfiguredModule<C>,
2214
52.6k
    builder: &mut CodeBuilder<C>,
2215
52.6k
) -> Result<Instruction> {
2216
52.6k
    builder.pop_operands(&[ValType::F32]);
2217
52.6k
    builder.push_operands(&[ValType::F32]);
2218
52.6k
    Ok(Instruction::F32Abs)
2219
52.6k
}
wasm_smith::code_builder::f32_abs::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2211
17.0k
fn f32_abs<C: Config>(
2212
17.0k
    _: &mut Unstructured,
2213
17.0k
    _: &ConfiguredModule<C>,
2214
17.0k
    builder: &mut CodeBuilder<C>,
2215
17.0k
) -> Result<Instruction> {
2216
17.0k
    builder.pop_operands(&[ValType::F32]);
2217
17.0k
    builder.push_operands(&[ValType::F32]);
2218
17.0k
    Ok(Instruction::F32Abs)
2219
17.0k
}
wasm_smith::code_builder::f32_abs::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2211
35.5k
fn f32_abs<C: Config>(
2212
35.5k
    _: &mut Unstructured,
2213
35.5k
    _: &ConfiguredModule<C>,
2214
35.5k
    builder: &mut CodeBuilder<C>,
2215
35.5k
) -> Result<Instruction> {
2216
35.5k
    builder.pop_operands(&[ValType::F32]);
2217
35.5k
    builder.push_operands(&[ValType::F32]);
2218
35.5k
    Ok(Instruction::F32Abs)
2219
35.5k
}
2220
2221
36.2k
fn f32_neg<C: Config>(
2222
36.2k
    _: &mut Unstructured,
2223
36.2k
    _: &ConfiguredModule<C>,
2224
36.2k
    builder: &mut CodeBuilder<C>,
2225
36.2k
) -> Result<Instruction> {
2226
36.2k
    builder.pop_operands(&[ValType::F32]);
2227
36.2k
    builder.push_operands(&[ValType::F32]);
2228
36.2k
    Ok(Instruction::F32Neg)
2229
36.2k
}
wasm_smith::code_builder::f32_neg::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2221
26.4k
fn f32_neg<C: Config>(
2222
26.4k
    _: &mut Unstructured,
2223
26.4k
    _: &ConfiguredModule<C>,
2224
26.4k
    builder: &mut CodeBuilder<C>,
2225
26.4k
) -> Result<Instruction> {
2226
26.4k
    builder.pop_operands(&[ValType::F32]);
2227
26.4k
    builder.push_operands(&[ValType::F32]);
2228
26.4k
    Ok(Instruction::F32Neg)
2229
26.4k
}
wasm_smith::code_builder::f32_neg::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2221
9.81k
fn f32_neg<C: Config>(
2222
9.81k
    _: &mut Unstructured,
2223
9.81k
    _: &ConfiguredModule<C>,
2224
9.81k
    builder: &mut CodeBuilder<C>,
2225
9.81k
) -> Result<Instruction> {
2226
9.81k
    builder.pop_operands(&[ValType::F32]);
2227
9.81k
    builder.push_operands(&[ValType::F32]);
2228
9.81k
    Ok(Instruction::F32Neg)
2229
9.81k
}
2230
2231
105k
fn f32_ceil<C: Config>(
2232
105k
    _: &mut Unstructured,
2233
105k
    _: &ConfiguredModule<C>,
2234
105k
    builder: &mut CodeBuilder<C>,
2235
105k
) -> Result<Instruction> {
2236
105k
    builder.pop_operands(&[ValType::F32]);
2237
105k
    builder.push_operands(&[ValType::F32]);
2238
105k
    Ok(Instruction::F32Ceil)
2239
105k
}
wasm_smith::code_builder::f32_ceil::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2231
42.5k
fn f32_ceil<C: Config>(
2232
42.5k
    _: &mut Unstructured,
2233
42.5k
    _: &ConfiguredModule<C>,
2234
42.5k
    builder: &mut CodeBuilder<C>,
2235
42.5k
) -> Result<Instruction> {
2236
42.5k
    builder.pop_operands(&[ValType::F32]);
2237
42.5k
    builder.push_operands(&[ValType::F32]);
2238
42.5k
    Ok(Instruction::F32Ceil)
2239
42.5k
}
wasm_smith::code_builder::f32_ceil::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2231
62.8k
fn f32_ceil<C: Config>(
2232
62.8k
    _: &mut Unstructured,
2233
62.8k
    _: &ConfiguredModule<C>,
2234
62.8k
    builder: &mut CodeBuilder<C>,
2235
62.8k
) -> Result<Instruction> {
2236
62.8k
    builder.pop_operands(&[ValType::F32]);
2237
62.8k
    builder.push_operands(&[ValType::F32]);
2238
62.8k
    Ok(Instruction::F32Ceil)
2239
62.8k
}
2240
2241
63.0k
fn f32_floor<C: Config>(
2242
63.0k
    _: &mut Unstructured,
2243
63.0k
    _: &ConfiguredModule<C>,
2244
63.0k
    builder: &mut CodeBuilder<C>,
2245
63.0k
) -> Result<Instruction> {
2246
63.0k
    builder.pop_operands(&[ValType::F32]);
2247
63.0k
    builder.push_operands(&[ValType::F32]);
2248
63.0k
    Ok(Instruction::F32Floor)
2249
63.0k
}
wasm_smith::code_builder::f32_floor::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2241
30.3k
fn f32_floor<C: Config>(
2242
30.3k
    _: &mut Unstructured,
2243
30.3k
    _: &ConfiguredModule<C>,
2244
30.3k
    builder: &mut CodeBuilder<C>,
2245
30.3k
) -> Result<Instruction> {
2246
30.3k
    builder.pop_operands(&[ValType::F32]);
2247
30.3k
    builder.push_operands(&[ValType::F32]);
2248
30.3k
    Ok(Instruction::F32Floor)
2249
30.3k
}
wasm_smith::code_builder::f32_floor::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2241
32.6k
fn f32_floor<C: Config>(
2242
32.6k
    _: &mut Unstructured,
2243
32.6k
    _: &ConfiguredModule<C>,
2244
32.6k
    builder: &mut CodeBuilder<C>,
2245
32.6k
) -> Result<Instruction> {
2246
32.6k
    builder.pop_operands(&[ValType::F32]);
2247
32.6k
    builder.push_operands(&[ValType::F32]);
2248
32.6k
    Ok(Instruction::F32Floor)
2249
32.6k
}
2250
2251
47.3k
fn f32_trunc<C: Config>(
2252
47.3k
    _: &mut Unstructured,
2253
47.3k
    _: &ConfiguredModule<C>,
2254
47.3k
    builder: &mut CodeBuilder<C>,
2255
47.3k
) -> Result<Instruction> {
2256
47.3k
    builder.pop_operands(&[ValType::F32]);
2257
47.3k
    builder.push_operands(&[ValType::F32]);
2258
47.3k
    Ok(Instruction::F32Trunc)
2259
47.3k
}
wasm_smith::code_builder::f32_trunc::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2251
21.4k
fn f32_trunc<C: Config>(
2252
21.4k
    _: &mut Unstructured,
2253
21.4k
    _: &ConfiguredModule<C>,
2254
21.4k
    builder: &mut CodeBuilder<C>,
2255
21.4k
) -> Result<Instruction> {
2256
21.4k
    builder.pop_operands(&[ValType::F32]);
2257
21.4k
    builder.push_operands(&[ValType::F32]);
2258
21.4k
    Ok(Instruction::F32Trunc)
2259
21.4k
}
wasm_smith::code_builder::f32_trunc::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2251
25.9k
fn f32_trunc<C: Config>(
2252
25.9k
    _: &mut Unstructured,
2253
25.9k
    _: &ConfiguredModule<C>,
2254
25.9k
    builder: &mut CodeBuilder<C>,
2255
25.9k
) -> Result<Instruction> {
2256
25.9k
    builder.pop_operands(&[ValType::F32]);
2257
25.9k
    builder.push_operands(&[ValType::F32]);
2258
25.9k
    Ok(Instruction::F32Trunc)
2259
25.9k
}
2260
2261
31.8k
fn f32_nearest<C: Config>(
2262
31.8k
    _: &mut Unstructured,
2263
31.8k
    _: &ConfiguredModule<C>,
2264
31.8k
    builder: &mut CodeBuilder<C>,
2265
31.8k
) -> Result<Instruction> {
2266
31.8k
    builder.pop_operands(&[ValType::F32]);
2267
31.8k
    builder.push_operands(&[ValType::F32]);
2268
31.8k
    Ok(Instruction::F32Nearest)
2269
31.8k
}
wasm_smith::code_builder::f32_nearest::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2261
15.4k
fn f32_nearest<C: Config>(
2262
15.4k
    _: &mut Unstructured,
2263
15.4k
    _: &ConfiguredModule<C>,
2264
15.4k
    builder: &mut CodeBuilder<C>,
2265
15.4k
) -> Result<Instruction> {
2266
15.4k
    builder.pop_operands(&[ValType::F32]);
2267
15.4k
    builder.push_operands(&[ValType::F32]);
2268
15.4k
    Ok(Instruction::F32Nearest)
2269
15.4k
}
wasm_smith::code_builder::f32_nearest::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2261
16.3k
fn f32_nearest<C: Config>(
2262
16.3k
    _: &mut Unstructured,
2263
16.3k
    _: &ConfiguredModule<C>,
2264
16.3k
    builder: &mut CodeBuilder<C>,
2265
16.3k
) -> Result<Instruction> {
2266
16.3k
    builder.pop_operands(&[ValType::F32]);
2267
16.3k
    builder.push_operands(&[ValType::F32]);
2268
16.3k
    Ok(Instruction::F32Nearest)
2269
16.3k
}
2270
2271
48.7k
fn f32_sqrt<C: Config>(
2272
48.7k
    _: &mut Unstructured,
2273
48.7k
    _: &ConfiguredModule<C>,
2274
48.7k
    builder: &mut CodeBuilder<C>,
2275
48.7k
) -> Result<Instruction> {
2276
48.7k
    builder.pop_operands(&[ValType::F32]);
2277
48.7k
    builder.push_operands(&[ValType::F32]);
2278
48.7k
    Ok(Instruction::F32Sqrt)
2279
48.7k
}
wasm_smith::code_builder::f32_sqrt::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2271
20.6k
fn f32_sqrt<C: Config>(
2272
20.6k
    _: &mut Unstructured,
2273
20.6k
    _: &ConfiguredModule<C>,
2274
20.6k
    builder: &mut CodeBuilder<C>,
2275
20.6k
) -> Result<Instruction> {
2276
20.6k
    builder.pop_operands(&[ValType::F32]);
2277
20.6k
    builder.push_operands(&[ValType::F32]);
2278
20.6k
    Ok(Instruction::F32Sqrt)
2279
20.6k
}
wasm_smith::code_builder::f32_sqrt::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2271
28.1k
fn f32_sqrt<C: Config>(
2272
28.1k
    _: &mut Unstructured,
2273
28.1k
    _: &ConfiguredModule<C>,
2274
28.1k
    builder: &mut CodeBuilder<C>,
2275
28.1k
) -> Result<Instruction> {
2276
28.1k
    builder.pop_operands(&[ValType::F32]);
2277
28.1k
    builder.push_operands(&[ValType::F32]);
2278
28.1k
    Ok(Instruction::F32Sqrt)
2279
28.1k
}
2280
2281
4.37k
fn f32_add<C: Config>(
2282
4.37k
    _: &mut Unstructured,
2283
4.37k
    _: &ConfiguredModule<C>,
2284
4.37k
    builder: &mut CodeBuilder<C>,
2285
4.37k
) -> Result<Instruction> {
2286
4.37k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2287
4.37k
    builder.push_operands(&[ValType::F32]);
2288
4.37k
    Ok(Instruction::F32Add)
2289
4.37k
}
wasm_smith::code_builder::f32_add::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2281
1.48k
fn f32_add<C: Config>(
2282
1.48k
    _: &mut Unstructured,
2283
1.48k
    _: &ConfiguredModule<C>,
2284
1.48k
    builder: &mut CodeBuilder<C>,
2285
1.48k
) -> Result<Instruction> {
2286
1.48k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2287
1.48k
    builder.push_operands(&[ValType::F32]);
2288
1.48k
    Ok(Instruction::F32Add)
2289
1.48k
}
wasm_smith::code_builder::f32_add::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2281
2.89k
fn f32_add<C: Config>(
2282
2.89k
    _: &mut Unstructured,
2283
2.89k
    _: &ConfiguredModule<C>,
2284
2.89k
    builder: &mut CodeBuilder<C>,
2285
2.89k
) -> Result<Instruction> {
2286
2.89k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2287
2.89k
    builder.push_operands(&[ValType::F32]);
2288
2.89k
    Ok(Instruction::F32Add)
2289
2.89k
}
2290
2291
4.64k
fn f32_sub<C: Config>(
2292
4.64k
    _: &mut Unstructured,
2293
4.64k
    _: &ConfiguredModule<C>,
2294
4.64k
    builder: &mut CodeBuilder<C>,
2295
4.64k
) -> Result<Instruction> {
2296
4.64k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2297
4.64k
    builder.push_operands(&[ValType::F32]);
2298
4.64k
    Ok(Instruction::F32Sub)
2299
4.64k
}
wasm_smith::code_builder::f32_sub::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2291
871
fn f32_sub<C: Config>(
2292
871
    _: &mut Unstructured,
2293
871
    _: &ConfiguredModule<C>,
2294
871
    builder: &mut CodeBuilder<C>,
2295
871
) -> Result<Instruction> {
2296
871
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2297
871
    builder.push_operands(&[ValType::F32]);
2298
871
    Ok(Instruction::F32Sub)
2299
871
}
wasm_smith::code_builder::f32_sub::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2291
3.77k
fn f32_sub<C: Config>(
2292
3.77k
    _: &mut Unstructured,
2293
3.77k
    _: &ConfiguredModule<C>,
2294
3.77k
    builder: &mut CodeBuilder<C>,
2295
3.77k
) -> Result<Instruction> {
2296
3.77k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2297
3.77k
    builder.push_operands(&[ValType::F32]);
2298
3.77k
    Ok(Instruction::F32Sub)
2299
3.77k
}
2300
2301
5.44k
fn f32_mul<C: Config>(
2302
5.44k
    _: &mut Unstructured,
2303
5.44k
    _: &ConfiguredModule<C>,
2304
5.44k
    builder: &mut CodeBuilder<C>,
2305
5.44k
) -> Result<Instruction> {
2306
5.44k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2307
5.44k
    builder.push_operands(&[ValType::F32]);
2308
5.44k
    Ok(Instruction::F32Mul)
2309
5.44k
}
wasm_smith::code_builder::f32_mul::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2301
2.94k
fn f32_mul<C: Config>(
2302
2.94k
    _: &mut Unstructured,
2303
2.94k
    _: &ConfiguredModule<C>,
2304
2.94k
    builder: &mut CodeBuilder<C>,
2305
2.94k
) -> Result<Instruction> {
2306
2.94k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2307
2.94k
    builder.push_operands(&[ValType::F32]);
2308
2.94k
    Ok(Instruction::F32Mul)
2309
2.94k
}
wasm_smith::code_builder::f32_mul::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2301
2.49k
fn f32_mul<C: Config>(
2302
2.49k
    _: &mut Unstructured,
2303
2.49k
    _: &ConfiguredModule<C>,
2304
2.49k
    builder: &mut CodeBuilder<C>,
2305
2.49k
) -> Result<Instruction> {
2306
2.49k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2307
2.49k
    builder.push_operands(&[ValType::F32]);
2308
2.49k
    Ok(Instruction::F32Mul)
2309
2.49k
}
2310
2311
4.37k
fn f32_div<C: Config>(
2312
4.37k
    _: &mut Unstructured,
2313
4.37k
    _: &ConfiguredModule<C>,
2314
4.37k
    builder: &mut CodeBuilder<C>,
2315
4.37k
) -> Result<Instruction> {
2316
4.37k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2317
4.37k
    builder.push_operands(&[ValType::F32]);
2318
4.37k
    Ok(Instruction::F32Div)
2319
4.37k
}
wasm_smith::code_builder::f32_div::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2311
2.18k
fn f32_div<C: Config>(
2312
2.18k
    _: &mut Unstructured,
2313
2.18k
    _: &ConfiguredModule<C>,
2314
2.18k
    builder: &mut CodeBuilder<C>,
2315
2.18k
) -> Result<Instruction> {
2316
2.18k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2317
2.18k
    builder.push_operands(&[ValType::F32]);
2318
2.18k
    Ok(Instruction::F32Div)
2319
2.18k
}
wasm_smith::code_builder::f32_div::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2311
2.19k
fn f32_div<C: Config>(
2312
2.19k
    _: &mut Unstructured,
2313
2.19k
    _: &ConfiguredModule<C>,
2314
2.19k
    builder: &mut CodeBuilder<C>,
2315
2.19k
) -> Result<Instruction> {
2316
2.19k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2317
2.19k
    builder.push_operands(&[ValType::F32]);
2318
2.19k
    Ok(Instruction::F32Div)
2319
2.19k
}
2320
2321
3.14k
fn f32_min<C: Config>(
2322
3.14k
    _: &mut Unstructured,
2323
3.14k
    _: &ConfiguredModule<C>,
2324
3.14k
    builder: &mut CodeBuilder<C>,
2325
3.14k
) -> Result<Instruction> {
2326
3.14k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2327
3.14k
    builder.push_operands(&[ValType::F32]);
2328
3.14k
    Ok(Instruction::F32Min)
2329
3.14k
}
wasm_smith::code_builder::f32_min::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2321
919
fn f32_min<C: Config>(
2322
919
    _: &mut Unstructured,
2323
919
    _: &ConfiguredModule<C>,
2324
919
    builder: &mut CodeBuilder<C>,
2325
919
) -> Result<Instruction> {
2326
919
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2327
919
    builder.push_operands(&[ValType::F32]);
2328
919
    Ok(Instruction::F32Min)
2329
919
}
wasm_smith::code_builder::f32_min::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2321
2.23k
fn f32_min<C: Config>(
2322
2.23k
    _: &mut Unstructured,
2323
2.23k
    _: &ConfiguredModule<C>,
2324
2.23k
    builder: &mut CodeBuilder<C>,
2325
2.23k
) -> Result<Instruction> {
2326
2.23k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2327
2.23k
    builder.push_operands(&[ValType::F32]);
2328
2.23k
    Ok(Instruction::F32Min)
2329
2.23k
}
2330
2331
2.21k
fn f32_max<C: Config>(
2332
2.21k
    _: &mut Unstructured,
2333
2.21k
    _: &ConfiguredModule<C>,
2334
2.21k
    builder: &mut CodeBuilder<C>,
2335
2.21k
) -> Result<Instruction> {
2336
2.21k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2337
2.21k
    builder.push_operands(&[ValType::F32]);
2338
2.21k
    Ok(Instruction::F32Max)
2339
2.21k
}
wasm_smith::code_builder::f32_max::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2331
1.10k
fn f32_max<C: Config>(
2332
1.10k
    _: &mut Unstructured,
2333
1.10k
    _: &ConfiguredModule<C>,
2334
1.10k
    builder: &mut CodeBuilder<C>,
2335
1.10k
) -> Result<Instruction> {
2336
1.10k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2337
1.10k
    builder.push_operands(&[ValType::F32]);
2338
1.10k
    Ok(Instruction::F32Max)
2339
1.10k
}
wasm_smith::code_builder::f32_max::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2331
1.11k
fn f32_max<C: Config>(
2332
1.11k
    _: &mut Unstructured,
2333
1.11k
    _: &ConfiguredModule<C>,
2334
1.11k
    builder: &mut CodeBuilder<C>,
2335
1.11k
) -> Result<Instruction> {
2336
1.11k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2337
1.11k
    builder.push_operands(&[ValType::F32]);
2338
1.11k
    Ok(Instruction::F32Max)
2339
1.11k
}
2340
2341
7.67k
fn f32_copysign<C: Config>(
2342
7.67k
    _: &mut Unstructured,
2343
7.67k
    _: &ConfiguredModule<C>,
2344
7.67k
    builder: &mut CodeBuilder<C>,
2345
7.67k
) -> Result<Instruction> {
2346
7.67k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2347
7.67k
    builder.push_operands(&[ValType::F32]);
2348
7.67k
    Ok(Instruction::F32Copysign)
2349
7.67k
}
wasm_smith::code_builder::f32_copysign::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2341
2.27k
fn f32_copysign<C: Config>(
2342
2.27k
    _: &mut Unstructured,
2343
2.27k
    _: &ConfiguredModule<C>,
2344
2.27k
    builder: &mut CodeBuilder<C>,
2345
2.27k
) -> Result<Instruction> {
2346
2.27k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2347
2.27k
    builder.push_operands(&[ValType::F32]);
2348
2.27k
    Ok(Instruction::F32Copysign)
2349
2.27k
}
wasm_smith::code_builder::f32_copysign::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2341
5.40k
fn f32_copysign<C: Config>(
2342
5.40k
    _: &mut Unstructured,
2343
5.40k
    _: &ConfiguredModule<C>,
2344
5.40k
    builder: &mut CodeBuilder<C>,
2345
5.40k
) -> Result<Instruction> {
2346
5.40k
    builder.pop_operands(&[ValType::F32, ValType::F32]);
2347
5.40k
    builder.push_operands(&[ValType::F32]);
2348
5.40k
    Ok(Instruction::F32Copysign)
2349
5.40k
}
2350
2351
#[inline]
2352
270M
fn f64_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
2353
270M
    builder.types_on_stack(&[ValType::F64])
2354
270M
}
wasm_smith::code_builder::f64_on_stack::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2352
122M
fn f64_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
2353
122M
    builder.types_on_stack(&[ValType::F64])
2354
122M
}
wasm_smith::code_builder::f64_on_stack::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2352
148M
fn f64_on_stack<C: Config>(_: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
2353
148M
    builder.types_on_stack(&[ValType::F64])
2354
148M
}
2355
2356
87.3k
fn f64_abs<C: Config>(
2357
87.3k
    _: &mut Unstructured,
2358
87.3k
    _: &ConfiguredModule<C>,
2359
87.3k
    builder: &mut CodeBuilder<C>,
2360
87.3k
) -> Result<Instruction> {
2361
87.3k
    builder.pop_operands(&[ValType::F64]);
2362
87.3k
    builder.push_operands(&[ValType::F64]);
2363
87.3k
    Ok(Instruction::F64Abs)
2364
87.3k
}
wasm_smith::code_builder::f64_abs::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2356
40.2k
fn f64_abs<C: Config>(
2357
40.2k
    _: &mut Unstructured,
2358
40.2k
    _: &ConfiguredModule<C>,
2359
40.2k
    builder: &mut CodeBuilder<C>,
2360
40.2k
) -> Result<Instruction> {
2361
40.2k
    builder.pop_operands(&[ValType::F64]);
2362
40.2k
    builder.push_operands(&[ValType::F64]);
2363
40.2k
    Ok(Instruction::F64Abs)
2364
40.2k
}
wasm_smith::code_builder::f64_abs::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2356
47.0k
fn f64_abs<C: Config>(
2357
47.0k
    _: &mut Unstructured,
2358
47.0k
    _: &ConfiguredModule<C>,
2359
47.0k
    builder: &mut CodeBuilder<C>,
2360
47.0k
) -> Result<Instruction> {
2361
47.0k
    builder.pop_operands(&[ValType::F64]);
2362
47.0k
    builder.push_operands(&[ValType::F64]);
2363
47.0k
    Ok(Instruction::F64Abs)
2364
47.0k
}
2365
2366
25.7k
fn f64_neg<C: Config>(
2367
25.7k
    _: &mut Unstructured,
2368
25.7k
    _: &ConfiguredModule<C>,
2369
25.7k
    builder: &mut CodeBuilder<C>,
2370
25.7k
) -> Result<Instruction> {
2371
25.7k
    builder.pop_operands(&[ValType::F64]);
2372
25.7k
    builder.push_operands(&[ValType::F64]);
2373
25.7k
    Ok(Instruction::F64Neg)
2374
25.7k
}
wasm_smith::code_builder::f64_neg::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2366
17.6k
fn f64_neg<C: Config>(
2367
17.6k
    _: &mut Unstructured,
2368
17.6k
    _: &ConfiguredModule<C>,
2369
17.6k
    builder: &mut CodeBuilder<C>,
2370
17.6k
) -> Result<Instruction> {
2371
17.6k
    builder.pop_operands(&[ValType::F64]);
2372
17.6k
    builder.push_operands(&[ValType::F64]);
2373
17.6k
    Ok(Instruction::F64Neg)
2374
17.6k
}
wasm_smith::code_builder::f64_neg::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2366
8.14k
fn f64_neg<C: Config>(
2367
8.14k
    _: &mut Unstructured,
2368
8.14k
    _: &ConfiguredModule<C>,
2369
8.14k
    builder: &mut CodeBuilder<C>,
2370
8.14k
) -> Result<Instruction> {
2371
8.14k
    builder.pop_operands(&[ValType::F64]);
2372
8.14k
    builder.push_operands(&[ValType::F64]);
2373
8.14k
    Ok(Instruction::F64Neg)
2374
8.14k
}
2375
2376
75.1k
fn f64_ceil<C: Config>(
2377
75.1k
    _: &mut Unstructured,
2378
75.1k
    _: &ConfiguredModule<C>,
2379
75.1k
    builder: &mut CodeBuilder<C>,
2380
75.1k
) -> Result<Instruction> {
2381
75.1k
    builder.pop_operands(&[ValType::F64]);
2382
75.1k
    builder.push_operands(&[ValType::F64]);
2383
75.1k
    Ok(Instruction::F64Ceil)
2384
75.1k
}
wasm_smith::code_builder::f64_ceil::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2376
24.1k
fn f64_ceil<C: Config>(
2377
24.1k
    _: &mut Unstructured,
2378
24.1k
    _: &ConfiguredModule<C>,
2379
24.1k
    builder: &mut CodeBuilder<C>,
2380
24.1k
) -> Result<Instruction> {
2381
24.1k
    builder.pop_operands(&[ValType::F64]);
2382
24.1k
    builder.push_operands(&[ValType::F64]);
2383
24.1k
    Ok(Instruction::F64Ceil)
2384
24.1k
}
wasm_smith::code_builder::f64_ceil::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2376
51.0k
fn f64_ceil<C: Config>(
2377
51.0k
    _: &mut Unstructured,
2378
51.0k
    _: &ConfiguredModule<C>,
2379
51.0k
    builder: &mut CodeBuilder<C>,
2380
51.0k
) -> Result<Instruction> {
2381
51.0k
    builder.pop_operands(&[ValType::F64]);
2382
51.0k
    builder.push_operands(&[ValType::F64]);
2383
51.0k
    Ok(Instruction::F64Ceil)
2384
51.0k
}
2385
2386
48.5k
fn f64_floor<C: Config>(
2387
48.5k
    _: &mut Unstructured,
2388
48.5k
    _: &ConfiguredModule<C>,
2389
48.5k
    builder: &mut CodeBuilder<C>,
2390
48.5k
) -> Result<Instruction> {
2391
48.5k
    builder.pop_operands(&[ValType::F64]);
2392
48.5k
    builder.push_operands(&[ValType::F64]);
2393
48.5k
    Ok(Instruction::F64Floor)
2394
48.5k
}
wasm_smith::code_builder::f64_floor::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2386
19.3k
fn f64_floor<C: Config>(
2387
19.3k
    _: &mut Unstructured,
2388
19.3k
    _: &ConfiguredModule<C>,
2389
19.3k
    builder: &mut CodeBuilder<C>,
2390
19.3k
) -> Result<Instruction> {
2391
19.3k
    builder.pop_operands(&[ValType::F64]);
2392
19.3k
    builder.push_operands(&[ValType::F64]);
2393
19.3k
    Ok(Instruction::F64Floor)
2394
19.3k
}
wasm_smith::code_builder::f64_floor::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2386
29.1k
fn f64_floor<C: Config>(
2387
29.1k
    _: &mut Unstructured,
2388
29.1k
    _: &ConfiguredModule<C>,
2389
29.1k
    builder: &mut CodeBuilder<C>,
2390
29.1k
) -> Result<Instruction> {
2391
29.1k
    builder.pop_operands(&[ValType::F64]);
2392
29.1k
    builder.push_operands(&[ValType::F64]);
2393
29.1k
    Ok(Instruction::F64Floor)
2394
29.1k
}
2395
2396
57.3k
fn f64_trunc<C: Config>(
2397
57.3k
    _: &mut Unstructured,
2398
57.3k
    _: &ConfiguredModule<C>,
2399
57.3k
    builder: &mut CodeBuilder<C>,
2400
57.3k
) -> Result<Instruction> {
2401
57.3k
    builder.pop_operands(&[ValType::F64]);
2402
57.3k
    builder.push_operands(&[ValType::F64]);
2403
57.3k
    Ok(Instruction::F64Trunc)
2404
57.3k
}
wasm_smith::code_builder::f64_trunc::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2396
30.0k
fn f64_trunc<C: Config>(
2397
30.0k
    _: &mut Unstructured,
2398
30.0k
    _: &ConfiguredModule<C>,
2399
30.0k
    builder: &mut CodeBuilder<C>,
2400
30.0k
) -> Result<Instruction> {
2401
30.0k
    builder.pop_operands(&[ValType::F64]);
2402
30.0k
    builder.push_operands(&[ValType::F64]);
2403
30.0k
    Ok(Instruction::F64Trunc)
2404
30.0k
}
wasm_smith::code_builder::f64_trunc::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2396
27.2k
fn f64_trunc<C: Config>(
2397
27.2k
    _: &mut Unstructured,
2398
27.2k
    _: &ConfiguredModule<C>,
2399
27.2k
    builder: &mut CodeBuilder<C>,
2400
27.2k
) -> Result<Instruction> {
2401
27.2k
    builder.pop_operands(&[ValType::F64]);
2402
27.2k
    builder.push_operands(&[ValType::F64]);
2403
27.2k
    Ok(Instruction::F64Trunc)
2404
27.2k
}
2405
2406
37.8k
fn f64_nearest<C: Config>(
2407
37.8k
    _: &mut Unstructured,
2408
37.8k
    _: &ConfiguredModule<C>,
2409
37.8k
    builder: &mut CodeBuilder<C>,
2410
37.8k
) -> Result<Instruction> {
2411
37.8k
    builder.pop_operands(&[ValType::F64]);
2412
37.8k
    builder.push_operands(&[ValType::F64]);
2413
37.8k
    Ok(Instruction::F64Nearest)
2414
37.8k
}
wasm_smith::code_builder::f64_nearest::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2406
18.2k
fn f64_nearest<C: Config>(
2407
18.2k
    _: &mut Unstructured,
2408
18.2k
    _: &ConfiguredModule<C>,
2409
18.2k
    builder: &mut CodeBuilder<C>,
2410
18.2k
) -> Result<Instruction> {
2411
18.2k
    builder.pop_operands(&[ValType::F64]);
2412
18.2k
    builder.push_operands(&[ValType::F64]);
2413
18.2k
    Ok(Instruction::F64Nearest)
2414
18.2k
}
wasm_smith::code_builder::f64_nearest::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2406
19.5k
fn f64_nearest<C: Config>(
2407
19.5k
    _: &mut Unstructured,
2408
19.5k
    _: &ConfiguredModule<C>,
2409
19.5k
    builder: &mut CodeBuilder<C>,
2410
19.5k
) -> Result<Instruction> {
2411
19.5k
    builder.pop_operands(&[ValType::F64]);
2412
19.5k
    builder.push_operands(&[ValType::F64]);
2413
19.5k
    Ok(Instruction::F64Nearest)
2414
19.5k
}
2415
2416
159k
fn f64_sqrt<C: Config>(
2417
159k
    _: &mut Unstructured,
2418
159k
    _: &ConfiguredModule<C>,
2419
159k
    builder: &mut CodeBuilder<C>,
2420
159k
) -> Result<Instruction> {
2421
159k
    builder.pop_operands(&[ValType::F64]);
2422
159k
    builder.push_operands(&[ValType::F64]);
2423
159k
    Ok(Instruction::F64Sqrt)
2424
159k
}
wasm_smith::code_builder::f64_sqrt::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2416
33.3k
fn f64_sqrt<C: Config>(
2417
33.3k
    _: &mut Unstructured,
2418
33.3k
    _: &ConfiguredModule<C>,
2419
33.3k
    builder: &mut CodeBuilder<C>,
2420
33.3k
) -> Result<Instruction> {
2421
33.3k
    builder.pop_operands(&[ValType::F64]);
2422
33.3k
    builder.push_operands(&[ValType::F64]);
2423
33.3k
    Ok(Instruction::F64Sqrt)
2424
33.3k
}
wasm_smith::code_builder::f64_sqrt::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2416
126k
fn f64_sqrt<C: Config>(
2417
126k
    _: &mut Unstructured,
2418
126k
    _: &ConfiguredModule<C>,
2419
126k
    builder: &mut CodeBuilder<C>,
2420
126k
) -> Result<Instruction> {
2421
126k
    builder.pop_operands(&[ValType::F64]);
2422
126k
    builder.push_operands(&[ValType::F64]);
2423
126k
    Ok(Instruction::F64Sqrt)
2424
126k
}
2425
2426
18.9k
fn f64_add<C: Config>(
2427
18.9k
    _: &mut Unstructured,
2428
18.9k
    _: &ConfiguredModule<C>,
2429
18.9k
    builder: &mut CodeBuilder<C>,
2430
18.9k
) -> Result<Instruction> {
2431
18.9k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2432
18.9k
    builder.push_operands(&[ValType::F64]);
2433
18.9k
    Ok(Instruction::F64Add)
2434
18.9k
}
wasm_smith::code_builder::f64_add::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2426
7.91k
fn f64_add<C: Config>(
2427
7.91k
    _: &mut Unstructured,
2428
7.91k
    _: &ConfiguredModule<C>,
2429
7.91k
    builder: &mut CodeBuilder<C>,
2430
7.91k
) -> Result<Instruction> {
2431
7.91k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2432
7.91k
    builder.push_operands(&[ValType::F64]);
2433
7.91k
    Ok(Instruction::F64Add)
2434
7.91k
}
wasm_smith::code_builder::f64_add::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2426
10.9k
fn f64_add<C: Config>(
2427
10.9k
    _: &mut Unstructured,
2428
10.9k
    _: &ConfiguredModule<C>,
2429
10.9k
    builder: &mut CodeBuilder<C>,
2430
10.9k
) -> Result<Instruction> {
2431
10.9k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2432
10.9k
    builder.push_operands(&[ValType::F64]);
2433
10.9k
    Ok(Instruction::F64Add)
2434
10.9k
}
2435
2436
5.35k
fn f64_sub<C: Config>(
2437
5.35k
    _: &mut Unstructured,
2438
5.35k
    _: &ConfiguredModule<C>,
2439
5.35k
    builder: &mut CodeBuilder<C>,
2440
5.35k
) -> Result<Instruction> {
2441
5.35k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2442
5.35k
    builder.push_operands(&[ValType::F64]);
2443
5.35k
    Ok(Instruction::F64Sub)
2444
5.35k
}
wasm_smith::code_builder::f64_sub::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2436
2.75k
fn f64_sub<C: Config>(
2437
2.75k
    _: &mut Unstructured,
2438
2.75k
    _: &ConfiguredModule<C>,
2439
2.75k
    builder: &mut CodeBuilder<C>,
2440
2.75k
) -> Result<Instruction> {
2441
2.75k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2442
2.75k
    builder.push_operands(&[ValType::F64]);
2443
2.75k
    Ok(Instruction::F64Sub)
2444
2.75k
}
wasm_smith::code_builder::f64_sub::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2436
2.60k
fn f64_sub<C: Config>(
2437
2.60k
    _: &mut Unstructured,
2438
2.60k
    _: &ConfiguredModule<C>,
2439
2.60k
    builder: &mut CodeBuilder<C>,
2440
2.60k
) -> Result<Instruction> {
2441
2.60k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2442
2.60k
    builder.push_operands(&[ValType::F64]);
2443
2.60k
    Ok(Instruction::F64Sub)
2444
2.60k
}
2445
2446
12.9k
fn f64_mul<C: Config>(
2447
12.9k
    _: &mut Unstructured,
2448
12.9k
    _: &ConfiguredModule<C>,
2449
12.9k
    builder: &mut CodeBuilder<C>,
2450
12.9k
) -> Result<Instruction> {
2451
12.9k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2452
12.9k
    builder.push_operands(&[ValType::F64]);
2453
12.9k
    Ok(Instruction::F64Mul)
2454
12.9k
}
wasm_smith::code_builder::f64_mul::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2446
5.33k
fn f64_mul<C: Config>(
2447
5.33k
    _: &mut Unstructured,
2448
5.33k
    _: &ConfiguredModule<C>,
2449
5.33k
    builder: &mut CodeBuilder<C>,
2450
5.33k
) -> Result<Instruction> {
2451
5.33k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2452
5.33k
    builder.push_operands(&[ValType::F64]);
2453
5.33k
    Ok(Instruction::F64Mul)
2454
5.33k
}
wasm_smith::code_builder::f64_mul::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2446
7.63k
fn f64_mul<C: Config>(
2447
7.63k
    _: &mut Unstructured,
2448
7.63k
    _: &ConfiguredModule<C>,
2449
7.63k
    builder: &mut CodeBuilder<C>,
2450
7.63k
) -> Result<Instruction> {
2451
7.63k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2452
7.63k
    builder.push_operands(&[ValType::F64]);
2453
7.63k
    Ok(Instruction::F64Mul)
2454
7.63k
}
2455
2456
15.9k
fn f64_div<C: Config>(
2457
15.9k
    _: &mut Unstructured,
2458
15.9k
    _: &ConfiguredModule<C>,
2459
15.9k
    builder: &mut CodeBuilder<C>,
2460
15.9k
) -> Result<Instruction> {
2461
15.9k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2462
15.9k
    builder.push_operands(&[ValType::F64]);
2463
15.9k
    Ok(Instruction::F64Div)
2464
15.9k
}
wasm_smith::code_builder::f64_div::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2456
14.8k
fn f64_div<C: Config>(
2457
14.8k
    _: &mut Unstructured,
2458
14.8k
    _: &ConfiguredModule<C>,
2459
14.8k
    builder: &mut CodeBuilder<C>,
2460
14.8k
) -> Result<Instruction> {
2461
14.8k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2462
14.8k
    builder.push_operands(&[ValType::F64]);
2463
14.8k
    Ok(Instruction::F64Div)
2464
14.8k
}
wasm_smith::code_builder::f64_div::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2456
1.11k
fn f64_div<C: Config>(
2457
1.11k
    _: &mut Unstructured,
2458
1.11k
    _: &ConfiguredModule<C>,
2459
1.11k
    builder: &mut CodeBuilder<C>,
2460
1.11k
) -> Result<Instruction> {
2461
1.11k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2462
1.11k
    builder.push_operands(&[ValType::F64]);
2463
1.11k
    Ok(Instruction::F64Div)
2464
1.11k
}
2465
2466
5.54k
fn f64_min<C: Config>(
2467
5.54k
    _: &mut Unstructured,
2468
5.54k
    _: &ConfiguredModule<C>,
2469
5.54k
    builder: &mut CodeBuilder<C>,
2470
5.54k
) -> Result<Instruction> {
2471
5.54k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2472
5.54k
    builder.push_operands(&[ValType::F64]);
2473
5.54k
    Ok(Instruction::F64Min)
2474
5.54k
}
wasm_smith::code_builder::f64_min::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2466
2.91k
fn f64_min<C: Config>(
2467
2.91k
    _: &mut Unstructured,
2468
2.91k
    _: &ConfiguredModule<C>,
2469
2.91k
    builder: &mut CodeBuilder<C>,
2470
2.91k
) -> Result<Instruction> {
2471
2.91k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2472
2.91k
    builder.push_operands(&[ValType::F64]);
2473
2.91k
    Ok(Instruction::F64Min)
2474
2.91k
}
wasm_smith::code_builder::f64_min::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2466
2.62k
fn f64_min<C: Config>(
2467
2.62k
    _: &mut Unstructured,
2468
2.62k
    _: &ConfiguredModule<C>,
2469
2.62k
    builder: &mut CodeBuilder<C>,
2470
2.62k
) -> Result<Instruction> {
2471
2.62k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2472
2.62k
    builder.push_operands(&[ValType::F64]);
2473
2.62k
    Ok(Instruction::F64Min)
2474
2.62k
}
2475
2476
3.00k
fn f64_max<C: Config>(
2477
3.00k
    _: &mut Unstructured,
2478
3.00k
    _: &ConfiguredModule<C>,
2479
3.00k
    builder: &mut CodeBuilder<C>,
2480
3.00k
) -> Result<Instruction> {
2481
3.00k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2482
3.00k
    builder.push_operands(&[ValType::F64]);
2483
3.00k
    Ok(Instruction::F64Max)
2484
3.00k
}
wasm_smith::code_builder::f64_max::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2476
1.32k
fn f64_max<C: Config>(
2477
1.32k
    _: &mut Unstructured,
2478
1.32k
    _: &ConfiguredModule<C>,
2479
1.32k
    builder: &mut CodeBuilder<C>,
2480
1.32k
) -> Result<Instruction> {
2481
1.32k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2482
1.32k
    builder.push_operands(&[ValType::F64]);
2483
1.32k
    Ok(Instruction::F64Max)
2484
1.32k
}
wasm_smith::code_builder::f64_max::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2476
1.67k
fn f64_max<C: Config>(
2477
1.67k
    _: &mut Unstructured,
2478
1.67k
    _: &ConfiguredModule<C>,
2479
1.67k
    builder: &mut CodeBuilder<C>,
2480
1.67k
) -> Result<Instruction> {
2481
1.67k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2482
1.67k
    builder.push_operands(&[ValType::F64]);
2483
1.67k
    Ok(Instruction::F64Max)
2484
1.67k
}
2485
2486
12.7k
fn f64_copysign<C: Config>(
2487
12.7k
    _: &mut Unstructured,
2488
12.7k
    _: &ConfiguredModule<C>,
2489
12.7k
    builder: &mut CodeBuilder<C>,
2490
12.7k
) -> Result<Instruction> {
2491
12.7k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2492
12.7k
    builder.push_operands(&[ValType::F64]);
2493
12.7k
    Ok(Instruction::F64Copysign)
2494
12.7k
}
wasm_smith::code_builder::f64_copysign::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2486
4.22k
fn f64_copysign<C: Config>(
2487
4.22k
    _: &mut Unstructured,
2488
4.22k
    _: &ConfiguredModule<C>,
2489
4.22k
    builder: &mut CodeBuilder<C>,
2490
4.22k
) -> Result<Instruction> {
2491
4.22k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2492
4.22k
    builder.push_operands(&[ValType::F64]);
2493
4.22k
    Ok(Instruction::F64Copysign)
2494
4.22k
}
wasm_smith::code_builder::f64_copysign::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2486
8.50k
fn f64_copysign<C: Config>(
2487
8.50k
    _: &mut Unstructured,
2488
8.50k
    _: &ConfiguredModule<C>,
2489
8.50k
    builder: &mut CodeBuilder<C>,
2490
8.50k
) -> Result<Instruction> {
2491
8.50k
    builder.pop_operands(&[ValType::F64, ValType::F64]);
2492
8.50k
    builder.push_operands(&[ValType::F64]);
2493
8.50k
    Ok(Instruction::F64Copysign)
2494
8.50k
}
2495
2496
81.2k
fn i32_wrap_i64<C: Config>(
2497
81.2k
    _: &mut Unstructured,
2498
81.2k
    _: &ConfiguredModule<C>,
2499
81.2k
    builder: &mut CodeBuilder<C>,
2500
81.2k
) -> Result<Instruction> {
2501
81.2k
    builder.pop_operands(&[ValType::I64]);
2502
81.2k
    builder.push_operands(&[ValType::I32]);
2503
81.2k
    Ok(Instruction::I32WrapI64)
2504
81.2k
}
wasm_smith::code_builder::i32_wrap_i64::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2496
30.1k
fn i32_wrap_i64<C: Config>(
2497
30.1k
    _: &mut Unstructured,
2498
30.1k
    _: &ConfiguredModule<C>,
2499
30.1k
    builder: &mut CodeBuilder<C>,
2500
30.1k
) -> Result<Instruction> {
2501
30.1k
    builder.pop_operands(&[ValType::I64]);
2502
30.1k
    builder.push_operands(&[ValType::I32]);
2503
30.1k
    Ok(Instruction::I32WrapI64)
2504
30.1k
}
wasm_smith::code_builder::i32_wrap_i64::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2496
51.0k
fn i32_wrap_i64<C: Config>(
2497
51.0k
    _: &mut Unstructured,
2498
51.0k
    _: &ConfiguredModule<C>,
2499
51.0k
    builder: &mut CodeBuilder<C>,
2500
51.0k
) -> Result<Instruction> {
2501
51.0k
    builder.pop_operands(&[ValType::I64]);
2502
51.0k
    builder.push_operands(&[ValType::I32]);
2503
51.0k
    Ok(Instruction::I32WrapI64)
2504
51.0k
}
2505
2506
30.6k
fn i32_trunc_f32_s<C: Config>(
2507
30.6k
    _: &mut Unstructured,
2508
30.6k
    _: &ConfiguredModule<C>,
2509
30.6k
    builder: &mut CodeBuilder<C>,
2510
30.6k
) -> Result<Instruction> {
2511
30.6k
    builder.pop_operands(&[ValType::F32]);
2512
30.6k
    builder.push_operands(&[ValType::I32]);
2513
30.6k
    Ok(Instruction::I32TruncF32S)
2514
30.6k
}
wasm_smith::code_builder::i32_trunc_f32_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2506
11.6k
fn i32_trunc_f32_s<C: Config>(
2507
11.6k
    _: &mut Unstructured,
2508
11.6k
    _: &ConfiguredModule<C>,
2509
11.6k
    builder: &mut CodeBuilder<C>,
2510
11.6k
) -> Result<Instruction> {
2511
11.6k
    builder.pop_operands(&[ValType::F32]);
2512
11.6k
    builder.push_operands(&[ValType::I32]);
2513
11.6k
    Ok(Instruction::I32TruncF32S)
2514
11.6k
}
wasm_smith::code_builder::i32_trunc_f32_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2506
18.9k
fn i32_trunc_f32_s<C: Config>(
2507
18.9k
    _: &mut Unstructured,
2508
18.9k
    _: &ConfiguredModule<C>,
2509
18.9k
    builder: &mut CodeBuilder<C>,
2510
18.9k
) -> Result<Instruction> {
2511
18.9k
    builder.pop_operands(&[ValType::F32]);
2512
18.9k
    builder.push_operands(&[ValType::I32]);
2513
18.9k
    Ok(Instruction::I32TruncF32S)
2514
18.9k
}
2515
2516
52.1k
fn i32_trunc_f32_u<C: Config>(
2517
52.1k
    _: &mut Unstructured,
2518
52.1k
    _: &ConfiguredModule<C>,
2519
52.1k
    builder: &mut CodeBuilder<C>,
2520
52.1k
) -> Result<Instruction> {
2521
52.1k
    builder.pop_operands(&[ValType::F32]);
2522
52.1k
    builder.push_operands(&[ValType::I32]);
2523
52.1k
    Ok(Instruction::I32TruncF32U)
2524
52.1k
}
wasm_smith::code_builder::i32_trunc_f32_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2516
21.6k
fn i32_trunc_f32_u<C: Config>(
2517
21.6k
    _: &mut Unstructured,
2518
21.6k
    _: &ConfiguredModule<C>,
2519
21.6k
    builder: &mut CodeBuilder<C>,
2520
21.6k
) -> Result<Instruction> {
2521
21.6k
    builder.pop_operands(&[ValType::F32]);
2522
21.6k
    builder.push_operands(&[ValType::I32]);
2523
21.6k
    Ok(Instruction::I32TruncF32U)
2524
21.6k
}
wasm_smith::code_builder::i32_trunc_f32_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2516
30.5k
fn i32_trunc_f32_u<C: Config>(
2517
30.5k
    _: &mut Unstructured,
2518
30.5k
    _: &ConfiguredModule<C>,
2519
30.5k
    builder: &mut CodeBuilder<C>,
2520
30.5k
) -> Result<Instruction> {
2521
30.5k
    builder.pop_operands(&[ValType::F32]);
2522
30.5k
    builder.push_operands(&[ValType::I32]);
2523
30.5k
    Ok(Instruction::I32TruncF32U)
2524
30.5k
}
2525
2526
26.3k
fn i32_trunc_f64_s<C: Config>(
2527
26.3k
    _: &mut Unstructured,
2528
26.3k
    _: &ConfiguredModule<C>,
2529
26.3k
    builder: &mut CodeBuilder<C>,
2530
26.3k
) -> Result<Instruction> {
2531
26.3k
    builder.pop_operands(&[ValType::F64]);
2532
26.3k
    builder.push_operands(&[ValType::I32]);
2533
26.3k
    Ok(Instruction::I32TruncF64S)
2534
26.3k
}
wasm_smith::code_builder::i32_trunc_f64_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2526
16.9k
fn i32_trunc_f64_s<C: Config>(
2527
16.9k
    _: &mut Unstructured,
2528
16.9k
    _: &ConfiguredModule<C>,
2529
16.9k
    builder: &mut CodeBuilder<C>,
2530
16.9k
) -> Result<Instruction> {
2531
16.9k
    builder.pop_operands(&[ValType::F64]);
2532
16.9k
    builder.push_operands(&[ValType::I32]);
2533
16.9k
    Ok(Instruction::I32TruncF64S)
2534
16.9k
}
wasm_smith::code_builder::i32_trunc_f64_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2526
9.33k
fn i32_trunc_f64_s<C: Config>(
2527
9.33k
    _: &mut Unstructured,
2528
9.33k
    _: &ConfiguredModule<C>,
2529
9.33k
    builder: &mut CodeBuilder<C>,
2530
9.33k
) -> Result<Instruction> {
2531
9.33k
    builder.pop_operands(&[ValType::F64]);
2532
9.33k
    builder.push_operands(&[ValType::I32]);
2533
9.33k
    Ok(Instruction::I32TruncF64S)
2534
9.33k
}
2535
2536
86.3k
fn i32_trunc_f64_u<C: Config>(
2537
86.3k
    _: &mut Unstructured,
2538
86.3k
    _: &ConfiguredModule<C>,
2539
86.3k
    builder: &mut CodeBuilder<C>,
2540
86.3k
) -> Result<Instruction> {
2541
86.3k
    builder.pop_operands(&[ValType::F64]);
2542
86.3k
    builder.push_operands(&[ValType::I32]);
2543
86.3k
    Ok(Instruction::I32TruncF64U)
2544
86.3k
}
wasm_smith::code_builder::i32_trunc_f64_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2536
20.0k
fn i32_trunc_f64_u<C: Config>(
2537
20.0k
    _: &mut Unstructured,
2538
20.0k
    _: &ConfiguredModule<C>,
2539
20.0k
    builder: &mut CodeBuilder<C>,
2540
20.0k
) -> Result<Instruction> {
2541
20.0k
    builder.pop_operands(&[ValType::F64]);
2542
20.0k
    builder.push_operands(&[ValType::I32]);
2543
20.0k
    Ok(Instruction::I32TruncF64U)
2544
20.0k
}
wasm_smith::code_builder::i32_trunc_f64_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2536
66.2k
fn i32_trunc_f64_u<C: Config>(
2537
66.2k
    _: &mut Unstructured,
2538
66.2k
    _: &ConfiguredModule<C>,
2539
66.2k
    builder: &mut CodeBuilder<C>,
2540
66.2k
) -> Result<Instruction> {
2541
66.2k
    builder.pop_operands(&[ValType::F64]);
2542
66.2k
    builder.push_operands(&[ValType::I32]);
2543
66.2k
    Ok(Instruction::I32TruncF64U)
2544
66.2k
}
2545
2546
79.3k
fn i64_extend_i32_s<C: Config>(
2547
79.3k
    _: &mut Unstructured,
2548
79.3k
    _: &ConfiguredModule<C>,
2549
79.3k
    builder: &mut CodeBuilder<C>,
2550
79.3k
) -> Result<Instruction> {
2551
79.3k
    builder.pop_operands(&[ValType::I32]);
2552
79.3k
    builder.push_operands(&[ValType::I64]);
2553
79.3k
    Ok(Instruction::I64ExtendI32S)
2554
79.3k
}
wasm_smith::code_builder::i64_extend_i32_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2546
36.3k
fn i64_extend_i32_s<C: Config>(
2547
36.3k
    _: &mut Unstructured,
2548
36.3k
    _: &ConfiguredModule<C>,
2549
36.3k
    builder: &mut CodeBuilder<C>,
2550
36.3k
) -> Result<Instruction> {
2551
36.3k
    builder.pop_operands(&[ValType::I32]);
2552
36.3k
    builder.push_operands(&[ValType::I64]);
2553
36.3k
    Ok(Instruction::I64ExtendI32S)
2554
36.3k
}
wasm_smith::code_builder::i64_extend_i32_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2546
42.9k
fn i64_extend_i32_s<C: Config>(
2547
42.9k
    _: &mut Unstructured,
2548
42.9k
    _: &ConfiguredModule<C>,
2549
42.9k
    builder: &mut CodeBuilder<C>,
2550
42.9k
) -> Result<Instruction> {
2551
42.9k
    builder.pop_operands(&[ValType::I32]);
2552
42.9k
    builder.push_operands(&[ValType::I64]);
2553
42.9k
    Ok(Instruction::I64ExtendI32S)
2554
42.9k
}
2555
2556
47.1k
fn i64_extend_i32_u<C: Config>(
2557
47.1k
    _: &mut Unstructured,
2558
47.1k
    _: &ConfiguredModule<C>,
2559
47.1k
    builder: &mut CodeBuilder<C>,
2560
47.1k
) -> Result<Instruction> {
2561
47.1k
    builder.pop_operands(&[ValType::I32]);
2562
47.1k
    builder.push_operands(&[ValType::I64]);
2563
47.1k
    Ok(Instruction::I64ExtendI32U)
2564
47.1k
}
wasm_smith::code_builder::i64_extend_i32_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2556
28.0k
fn i64_extend_i32_u<C: Config>(
2557
28.0k
    _: &mut Unstructured,
2558
28.0k
    _: &ConfiguredModule<C>,
2559
28.0k
    builder: &mut CodeBuilder<C>,
2560
28.0k
) -> Result<Instruction> {
2561
28.0k
    builder.pop_operands(&[ValType::I32]);
2562
28.0k
    builder.push_operands(&[ValType::I64]);
2563
28.0k
    Ok(Instruction::I64ExtendI32U)
2564
28.0k
}
wasm_smith::code_builder::i64_extend_i32_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2556
19.0k
fn i64_extend_i32_u<C: Config>(
2557
19.0k
    _: &mut Unstructured,
2558
19.0k
    _: &ConfiguredModule<C>,
2559
19.0k
    builder: &mut CodeBuilder<C>,
2560
19.0k
) -> Result<Instruction> {
2561
19.0k
    builder.pop_operands(&[ValType::I32]);
2562
19.0k
    builder.push_operands(&[ValType::I64]);
2563
19.0k
    Ok(Instruction::I64ExtendI32U)
2564
19.0k
}
2565
2566
22.4k
fn i64_trunc_f32_s<C: Config>(
2567
22.4k
    _: &mut Unstructured,
2568
22.4k
    _: &ConfiguredModule<C>,
2569
22.4k
    builder: &mut CodeBuilder<C>,
2570
22.4k
) -> Result<Instruction> {
2571
22.4k
    builder.pop_operands(&[ValType::F32]);
2572
22.4k
    builder.push_operands(&[ValType::I64]);
2573
22.4k
    Ok(Instruction::I64TruncF32S)
2574
22.4k
}
wasm_smith::code_builder::i64_trunc_f32_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2566
16.2k
fn i64_trunc_f32_s<C: Config>(
2567
16.2k
    _: &mut Unstructured,
2568
16.2k
    _: &ConfiguredModule<C>,
2569
16.2k
    builder: &mut CodeBuilder<C>,
2570
16.2k
) -> Result<Instruction> {
2571
16.2k
    builder.pop_operands(&[ValType::F32]);
2572
16.2k
    builder.push_operands(&[ValType::I64]);
2573
16.2k
    Ok(Instruction::I64TruncF32S)
2574
16.2k
}
wasm_smith::code_builder::i64_trunc_f32_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2566
6.19k
fn i64_trunc_f32_s<C: Config>(
2567
6.19k
    _: &mut Unstructured,
2568
6.19k
    _: &ConfiguredModule<C>,
2569
6.19k
    builder: &mut CodeBuilder<C>,
2570
6.19k
) -> Result<Instruction> {
2571
6.19k
    builder.pop_operands(&[ValType::F32]);
2572
6.19k
    builder.push_operands(&[ValType::I64]);
2573
6.19k
    Ok(Instruction::I64TruncF32S)
2574
6.19k
}
2575
2576
31.8k
fn i64_trunc_f32_u<C: Config>(
2577
31.8k
    _: &mut Unstructured,
2578
31.8k
    _: &ConfiguredModule<C>,
2579
31.8k
    builder: &mut CodeBuilder<C>,
2580
31.8k
) -> Result<Instruction> {
2581
31.8k
    builder.pop_operands(&[ValType::F32]);
2582
31.8k
    builder.push_operands(&[ValType::I64]);
2583
31.8k
    Ok(Instruction::I64TruncF32U)
2584
31.8k
}
wasm_smith::code_builder::i64_trunc_f32_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2576
16.7k
fn i64_trunc_f32_u<C: Config>(
2577
16.7k
    _: &mut Unstructured,
2578
16.7k
    _: &ConfiguredModule<C>,
2579
16.7k
    builder: &mut CodeBuilder<C>,
2580
16.7k
) -> Result<Instruction> {
2581
16.7k
    builder.pop_operands(&[ValType::F32]);
2582
16.7k
    builder.push_operands(&[ValType::I64]);
2583
16.7k
    Ok(Instruction::I64TruncF32U)
2584
16.7k
}
wasm_smith::code_builder::i64_trunc_f32_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2576
15.0k
fn i64_trunc_f32_u<C: Config>(
2577
15.0k
    _: &mut Unstructured,
2578
15.0k
    _: &ConfiguredModule<C>,
2579
15.0k
    builder: &mut CodeBuilder<C>,
2580
15.0k
) -> Result<Instruction> {
2581
15.0k
    builder.pop_operands(&[ValType::F32]);
2582
15.0k
    builder.push_operands(&[ValType::I64]);
2583
15.0k
    Ok(Instruction::I64TruncF32U)
2584
15.0k
}
2585
2586
19.8k
fn i64_trunc_f64_s<C: Config>(
2587
19.8k
    _: &mut Unstructured,
2588
19.8k
    _: &ConfiguredModule<C>,
2589
19.8k
    builder: &mut CodeBuilder<C>,
2590
19.8k
) -> Result<Instruction> {
2591
19.8k
    builder.pop_operands(&[ValType::F64]);
2592
19.8k
    builder.push_operands(&[ValType::I64]);
2593
19.8k
    Ok(Instruction::I64TruncF64S)
2594
19.8k
}
wasm_smith::code_builder::i64_trunc_f64_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2586
11.2k
fn i64_trunc_f64_s<C: Config>(
2587
11.2k
    _: &mut Unstructured,
2588
11.2k
    _: &ConfiguredModule<C>,
2589
11.2k
    builder: &mut CodeBuilder<C>,
2590
11.2k
) -> Result<Instruction> {
2591
11.2k
    builder.pop_operands(&[ValType::F64]);
2592
11.2k
    builder.push_operands(&[ValType::I64]);
2593
11.2k
    Ok(Instruction::I64TruncF64S)
2594
11.2k
}
wasm_smith::code_builder::i64_trunc_f64_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2586
8.60k
fn i64_trunc_f64_s<C: Config>(
2587
8.60k
    _: &mut Unstructured,
2588
8.60k
    _: &ConfiguredModule<C>,
2589
8.60k
    builder: &mut CodeBuilder<C>,
2590
8.60k
) -> Result<Instruction> {
2591
8.60k
    builder.pop_operands(&[ValType::F64]);
2592
8.60k
    builder.push_operands(&[ValType::I64]);
2593
8.60k
    Ok(Instruction::I64TruncF64S)
2594
8.60k
}
2595
2596
29.8k
fn i64_trunc_f64_u<C: Config>(
2597
29.8k
    _: &mut Unstructured,
2598
29.8k
    _: &ConfiguredModule<C>,
2599
29.8k
    builder: &mut CodeBuilder<C>,
2600
29.8k
) -> Result<Instruction> {
2601
29.8k
    builder.pop_operands(&[ValType::F64]);
2602
29.8k
    builder.push_operands(&[ValType::I64]);
2603
29.8k
    Ok(Instruction::I64TruncF64U)
2604
29.8k
}
wasm_smith::code_builder::i64_trunc_f64_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2596
16.2k
fn i64_trunc_f64_u<C: Config>(
2597
16.2k
    _: &mut Unstructured,
2598
16.2k
    _: &ConfiguredModule<C>,
2599
16.2k
    builder: &mut CodeBuilder<C>,
2600
16.2k
) -> Result<Instruction> {
2601
16.2k
    builder.pop_operands(&[ValType::F64]);
2602
16.2k
    builder.push_operands(&[ValType::I64]);
2603
16.2k
    Ok(Instruction::I64TruncF64U)
2604
16.2k
}
wasm_smith::code_builder::i64_trunc_f64_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2596
13.6k
fn i64_trunc_f64_u<C: Config>(
2597
13.6k
    _: &mut Unstructured,
2598
13.6k
    _: &ConfiguredModule<C>,
2599
13.6k
    builder: &mut CodeBuilder<C>,
2600
13.6k
) -> Result<Instruction> {
2601
13.6k
    builder.pop_operands(&[ValType::F64]);
2602
13.6k
    builder.push_operands(&[ValType::I64]);
2603
13.6k
    Ok(Instruction::I64TruncF64U)
2604
13.6k
}
2605
2606
48.1k
fn f32_convert_i32_s<C: Config>(
2607
48.1k
    _: &mut Unstructured,
2608
48.1k
    _: &ConfiguredModule<C>,
2609
48.1k
    builder: &mut CodeBuilder<C>,
2610
48.1k
) -> Result<Instruction> {
2611
48.1k
    builder.pop_operands(&[ValType::I32]);
2612
48.1k
    builder.push_operands(&[ValType::F32]);
2613
48.1k
    Ok(Instruction::F32ConvertI32S)
2614
48.1k
}
wasm_smith::code_builder::f32_convert_i32_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2606
25.6k
fn f32_convert_i32_s<C: Config>(
2607
25.6k
    _: &mut Unstructured,
2608
25.6k
    _: &ConfiguredModule<C>,
2609
25.6k
    builder: &mut CodeBuilder<C>,
2610
25.6k
) -> Result<Instruction> {
2611
25.6k
    builder.pop_operands(&[ValType::I32]);
2612
25.6k
    builder.push_operands(&[ValType::F32]);
2613
25.6k
    Ok(Instruction::F32ConvertI32S)
2614
25.6k
}
wasm_smith::code_builder::f32_convert_i32_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2606
22.4k
fn f32_convert_i32_s<C: Config>(
2607
22.4k
    _: &mut Unstructured,
2608
22.4k
    _: &ConfiguredModule<C>,
2609
22.4k
    builder: &mut CodeBuilder<C>,
2610
22.4k
) -> Result<Instruction> {
2611
22.4k
    builder.pop_operands(&[ValType::I32]);
2612
22.4k
    builder.push_operands(&[ValType::F32]);
2613
22.4k
    Ok(Instruction::F32ConvertI32S)
2614
22.4k
}
2615
2616
93.4k
fn f32_convert_i32_u<C: Config>(
2617
93.4k
    _: &mut Unstructured,
2618
93.4k
    _: &ConfiguredModule<C>,
2619
93.4k
    builder: &mut CodeBuilder<C>,
2620
93.4k
) -> Result<Instruction> {
2621
93.4k
    builder.pop_operands(&[ValType::I32]);
2622
93.4k
    builder.push_operands(&[ValType::F32]);
2623
93.4k
    Ok(Instruction::F32ConvertI32U)
2624
93.4k
}
wasm_smith::code_builder::f32_convert_i32_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2616
63.7k
fn f32_convert_i32_u<C: Config>(
2617
63.7k
    _: &mut Unstructured,
2618
63.7k
    _: &ConfiguredModule<C>,
2619
63.7k
    builder: &mut CodeBuilder<C>,
2620
63.7k
) -> Result<Instruction> {
2621
63.7k
    builder.pop_operands(&[ValType::I32]);
2622
63.7k
    builder.push_operands(&[ValType::F32]);
2623
63.7k
    Ok(Instruction::F32ConvertI32U)
2624
63.7k
}
wasm_smith::code_builder::f32_convert_i32_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2616
29.6k
fn f32_convert_i32_u<C: Config>(
2617
29.6k
    _: &mut Unstructured,
2618
29.6k
    _: &ConfiguredModule<C>,
2619
29.6k
    builder: &mut CodeBuilder<C>,
2620
29.6k
) -> Result<Instruction> {
2621
29.6k
    builder.pop_operands(&[ValType::I32]);
2622
29.6k
    builder.push_operands(&[ValType::F32]);
2623
29.6k
    Ok(Instruction::F32ConvertI32U)
2624
29.6k
}
2625
2626
31.2k
fn f32_convert_i64_s<C: Config>(
2627
31.2k
    _: &mut Unstructured,
2628
31.2k
    _: &ConfiguredModule<C>,
2629
31.2k
    builder: &mut CodeBuilder<C>,
2630
31.2k
) -> Result<Instruction> {
2631
31.2k
    builder.pop_operands(&[ValType::I64]);
2632
31.2k
    builder.push_operands(&[ValType::F32]);
2633
31.2k
    Ok(Instruction::F32ConvertI64S)
2634
31.2k
}
wasm_smith::code_builder::f32_convert_i64_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2626
15.3k
fn f32_convert_i64_s<C: Config>(
2627
15.3k
    _: &mut Unstructured,
2628
15.3k
    _: &ConfiguredModule<C>,
2629
15.3k
    builder: &mut CodeBuilder<C>,
2630
15.3k
) -> Result<Instruction> {
2631
15.3k
    builder.pop_operands(&[ValType::I64]);
2632
15.3k
    builder.push_operands(&[ValType::F32]);
2633
15.3k
    Ok(Instruction::F32ConvertI64S)
2634
15.3k
}
wasm_smith::code_builder::f32_convert_i64_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2626
15.9k
fn f32_convert_i64_s<C: Config>(
2627
15.9k
    _: &mut Unstructured,
2628
15.9k
    _: &ConfiguredModule<C>,
2629
15.9k
    builder: &mut CodeBuilder<C>,
2630
15.9k
) -> Result<Instruction> {
2631
15.9k
    builder.pop_operands(&[ValType::I64]);
2632
15.9k
    builder.push_operands(&[ValType::F32]);
2633
15.9k
    Ok(Instruction::F32ConvertI64S)
2634
15.9k
}
2635
2636
74.8k
fn f32_convert_i64_u<C: Config>(
2637
74.8k
    _: &mut Unstructured,
2638
74.8k
    _: &ConfiguredModule<C>,
2639
74.8k
    builder: &mut CodeBuilder<C>,
2640
74.8k
) -> Result<Instruction> {
2641
74.8k
    builder.pop_operands(&[ValType::I64]);
2642
74.8k
    builder.push_operands(&[ValType::F32]);
2643
74.8k
    Ok(Instruction::F32ConvertI64U)
2644
74.8k
}
wasm_smith::code_builder::f32_convert_i64_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2636
38.9k
fn f32_convert_i64_u<C: Config>(
2637
38.9k
    _: &mut Unstructured,
2638
38.9k
    _: &ConfiguredModule<C>,
2639
38.9k
    builder: &mut CodeBuilder<C>,
2640
38.9k
) -> Result<Instruction> {
2641
38.9k
    builder.pop_operands(&[ValType::I64]);
2642
38.9k
    builder.push_operands(&[ValType::F32]);
2643
38.9k
    Ok(Instruction::F32ConvertI64U)
2644
38.9k
}
wasm_smith::code_builder::f32_convert_i64_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2636
35.8k
fn f32_convert_i64_u<C: Config>(
2637
35.8k
    _: &mut Unstructured,
2638
35.8k
    _: &ConfiguredModule<C>,
2639
35.8k
    builder: &mut CodeBuilder<C>,
2640
35.8k
) -> Result<Instruction> {
2641
35.8k
    builder.pop_operands(&[ValType::I64]);
2642
35.8k
    builder.push_operands(&[ValType::F32]);
2643
35.8k
    Ok(Instruction::F32ConvertI64U)
2644
35.8k
}
2645
2646
37.0k
fn f32_demote_f64<C: Config>(
2647
37.0k
    _: &mut Unstructured,
2648
37.0k
    _: &ConfiguredModule<C>,
2649
37.0k
    builder: &mut CodeBuilder<C>,
2650
37.0k
) -> Result<Instruction> {
2651
37.0k
    builder.pop_operands(&[ValType::F64]);
2652
37.0k
    builder.push_operands(&[ValType::F32]);
2653
37.0k
    Ok(Instruction::F32DemoteF64)
2654
37.0k
}
wasm_smith::code_builder::f32_demote_f64::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2646
20.7k
fn f32_demote_f64<C: Config>(
2647
20.7k
    _: &mut Unstructured,
2648
20.7k
    _: &ConfiguredModule<C>,
2649
20.7k
    builder: &mut CodeBuilder<C>,
2650
20.7k
) -> Result<Instruction> {
2651
20.7k
    builder.pop_operands(&[ValType::F64]);
2652
20.7k
    builder.push_operands(&[ValType::F32]);
2653
20.7k
    Ok(Instruction::F32DemoteF64)
2654
20.7k
}
wasm_smith::code_builder::f32_demote_f64::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2646
16.2k
fn f32_demote_f64<C: Config>(
2647
16.2k
    _: &mut Unstructured,
2648
16.2k
    _: &ConfiguredModule<C>,
2649
16.2k
    builder: &mut CodeBuilder<C>,
2650
16.2k
) -> Result<Instruction> {
2651
16.2k
    builder.pop_operands(&[ValType::F64]);
2652
16.2k
    builder.push_operands(&[ValType::F32]);
2653
16.2k
    Ok(Instruction::F32DemoteF64)
2654
16.2k
}
2655
2656
88.7k
fn f64_convert_i32_s<C: Config>(
2657
88.7k
    _: &mut Unstructured,
2658
88.7k
    _: &ConfiguredModule<C>,
2659
88.7k
    builder: &mut CodeBuilder<C>,
2660
88.7k
) -> Result<Instruction> {
2661
88.7k
    builder.pop_operands(&[ValType::I32]);
2662
88.7k
    builder.push_operands(&[ValType::F64]);
2663
88.7k
    Ok(Instruction::F64ConvertI32S)
2664
88.7k
}
wasm_smith::code_builder::f64_convert_i32_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2656
58.7k
fn f64_convert_i32_s<C: Config>(
2657
58.7k
    _: &mut Unstructured,
2658
58.7k
    _: &ConfiguredModule<C>,
2659
58.7k
    builder: &mut CodeBuilder<C>,
2660
58.7k
) -> Result<Instruction> {
2661
58.7k
    builder.pop_operands(&[ValType::I32]);
2662
58.7k
    builder.push_operands(&[ValType::F64]);
2663
58.7k
    Ok(Instruction::F64ConvertI32S)
2664
58.7k
}
wasm_smith::code_builder::f64_convert_i32_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2656
30.0k
fn f64_convert_i32_s<C: Config>(
2657
30.0k
    _: &mut Unstructured,
2658
30.0k
    _: &ConfiguredModule<C>,
2659
30.0k
    builder: &mut CodeBuilder<C>,
2660
30.0k
) -> Result<Instruction> {
2661
30.0k
    builder.pop_operands(&[ValType::I32]);
2662
30.0k
    builder.push_operands(&[ValType::F64]);
2663
30.0k
    Ok(Instruction::F64ConvertI32S)
2664
30.0k
}
2665
2666
49.6k
fn f64_convert_i32_u<C: Config>(
2667
49.6k
    _: &mut Unstructured,
2668
49.6k
    _: &ConfiguredModule<C>,
2669
49.6k
    builder: &mut CodeBuilder<C>,
2670
49.6k
) -> Result<Instruction> {
2671
49.6k
    builder.pop_operands(&[ValType::I32]);
2672
49.6k
    builder.push_operands(&[ValType::F64]);
2673
49.6k
    Ok(Instruction::F64ConvertI32U)
2674
49.6k
}
wasm_smith::code_builder::f64_convert_i32_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2666
21.5k
fn f64_convert_i32_u<C: Config>(
2667
21.5k
    _: &mut Unstructured,
2668
21.5k
    _: &ConfiguredModule<C>,
2669
21.5k
    builder: &mut CodeBuilder<C>,
2670
21.5k
) -> Result<Instruction> {
2671
21.5k
    builder.pop_operands(&[ValType::I32]);
2672
21.5k
    builder.push_operands(&[ValType::F64]);
2673
21.5k
    Ok(Instruction::F64ConvertI32U)
2674
21.5k
}
wasm_smith::code_builder::f64_convert_i32_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2666
28.0k
fn f64_convert_i32_u<C: Config>(
2667
28.0k
    _: &mut Unstructured,
2668
28.0k
    _: &ConfiguredModule<C>,
2669
28.0k
    builder: &mut CodeBuilder<C>,
2670
28.0k
) -> Result<Instruction> {
2671
28.0k
    builder.pop_operands(&[ValType::I32]);
2672
28.0k
    builder.push_operands(&[ValType::F64]);
2673
28.0k
    Ok(Instruction::F64ConvertI32U)
2674
28.0k
}
2675
2676
63.4k
fn f64_convert_i64_s<C: Config>(
2677
63.4k
    _: &mut Unstructured,
2678
63.4k
    _: &ConfiguredModule<C>,
2679
63.4k
    builder: &mut CodeBuilder<C>,
2680
63.4k
) -> Result<Instruction> {
2681
63.4k
    builder.pop_operands(&[ValType::I64]);
2682
63.4k
    builder.push_operands(&[ValType::F64]);
2683
63.4k
    Ok(Instruction::F64ConvertI64S)
2684
63.4k
}
wasm_smith::code_builder::f64_convert_i64_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2676
27.8k
fn f64_convert_i64_s<C: Config>(
2677
27.8k
    _: &mut Unstructured,
2678
27.8k
    _: &ConfiguredModule<C>,
2679
27.8k
    builder: &mut CodeBuilder<C>,
2680
27.8k
) -> Result<Instruction> {
2681
27.8k
    builder.pop_operands(&[ValType::I64]);
2682
27.8k
    builder.push_operands(&[ValType::F64]);
2683
27.8k
    Ok(Instruction::F64ConvertI64S)
2684
27.8k
}
wasm_smith::code_builder::f64_convert_i64_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2676
35.6k
fn f64_convert_i64_s<C: Config>(
2677
35.6k
    _: &mut Unstructured,
2678
35.6k
    _: &ConfiguredModule<C>,
2679
35.6k
    builder: &mut CodeBuilder<C>,
2680
35.6k
) -> Result<Instruction> {
2681
35.6k
    builder.pop_operands(&[ValType::I64]);
2682
35.6k
    builder.push_operands(&[ValType::F64]);
2683
35.6k
    Ok(Instruction::F64ConvertI64S)
2684
35.6k
}
2685
2686
119k
fn f64_convert_i64_u<C: Config>(
2687
119k
    _: &mut Unstructured,
2688
119k
    _: &ConfiguredModule<C>,
2689
119k
    builder: &mut CodeBuilder<C>,
2690
119k
) -> Result<Instruction> {
2691
119k
    builder.pop_operands(&[ValType::I64]);
2692
119k
    builder.push_operands(&[ValType::F64]);
2693
119k
    Ok(Instruction::F64ConvertI64U)
2694
119k
}
wasm_smith::code_builder::f64_convert_i64_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2686
37.3k
fn f64_convert_i64_u<C: Config>(
2687
37.3k
    _: &mut Unstructured,
2688
37.3k
    _: &ConfiguredModule<C>,
2689
37.3k
    builder: &mut CodeBuilder<C>,
2690
37.3k
) -> Result<Instruction> {
2691
37.3k
    builder.pop_operands(&[ValType::I64]);
2692
37.3k
    builder.push_operands(&[ValType::F64]);
2693
37.3k
    Ok(Instruction::F64ConvertI64U)
2694
37.3k
}
wasm_smith::code_builder::f64_convert_i64_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2686
82.6k
fn f64_convert_i64_u<C: Config>(
2687
82.6k
    _: &mut Unstructured,
2688
82.6k
    _: &ConfiguredModule<C>,
2689
82.6k
    builder: &mut CodeBuilder<C>,
2690
82.6k
) -> Result<Instruction> {
2691
82.6k
    builder.pop_operands(&[ValType::I64]);
2692
82.6k
    builder.push_operands(&[ValType::F64]);
2693
82.6k
    Ok(Instruction::F64ConvertI64U)
2694
82.6k
}
2695
2696
45.6k
fn f64_promote_f32<C: Config>(
2697
45.6k
    _: &mut Unstructured,
2698
45.6k
    _: &ConfiguredModule<C>,
2699
45.6k
    builder: &mut CodeBuilder<C>,
2700
45.6k
) -> Result<Instruction> {
2701
45.6k
    builder.pop_operands(&[ValType::F32]);
2702
45.6k
    builder.push_operands(&[ValType::F64]);
2703
45.6k
    Ok(Instruction::F64PromoteF32)
2704
45.6k
}
wasm_smith::code_builder::f64_promote_f32::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2696
34.1k
fn f64_promote_f32<C: Config>(
2697
34.1k
    _: &mut Unstructured,
2698
34.1k
    _: &ConfiguredModule<C>,
2699
34.1k
    builder: &mut CodeBuilder<C>,
2700
34.1k
) -> Result<Instruction> {
2701
34.1k
    builder.pop_operands(&[ValType::F32]);
2702
34.1k
    builder.push_operands(&[ValType::F64]);
2703
34.1k
    Ok(Instruction::F64PromoteF32)
2704
34.1k
}
wasm_smith::code_builder::f64_promote_f32::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2696
11.4k
fn f64_promote_f32<C: Config>(
2697
11.4k
    _: &mut Unstructured,
2698
11.4k
    _: &ConfiguredModule<C>,
2699
11.4k
    builder: &mut CodeBuilder<C>,
2700
11.4k
) -> Result<Instruction> {
2701
11.4k
    builder.pop_operands(&[ValType::F32]);
2702
11.4k
    builder.push_operands(&[ValType::F64]);
2703
11.4k
    Ok(Instruction::F64PromoteF32)
2704
11.4k
}
2705
2706
48.3k
fn i32_reinterpret_f32<C: Config>(
2707
48.3k
    _: &mut Unstructured,
2708
48.3k
    _: &ConfiguredModule<C>,
2709
48.3k
    builder: &mut CodeBuilder<C>,
2710
48.3k
) -> Result<Instruction> {
2711
48.3k
    builder.pop_operands(&[ValType::F32]);
2712
48.3k
    builder.push_operands(&[ValType::I32]);
2713
48.3k
    Ok(Instruction::I32ReinterpretF32)
2714
48.3k
}
wasm_smith::code_builder::i32_reinterpret_f32::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2706
14.5k
fn i32_reinterpret_f32<C: Config>(
2707
14.5k
    _: &mut Unstructured,
2708
14.5k
    _: &ConfiguredModule<C>,
2709
14.5k
    builder: &mut CodeBuilder<C>,
2710
14.5k
) -> Result<Instruction> {
2711
14.5k
    builder.pop_operands(&[ValType::F32]);
2712
14.5k
    builder.push_operands(&[ValType::I32]);
2713
14.5k
    Ok(Instruction::I32ReinterpretF32)
2714
14.5k
}
wasm_smith::code_builder::i32_reinterpret_f32::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2706
33.7k
fn i32_reinterpret_f32<C: Config>(
2707
33.7k
    _: &mut Unstructured,
2708
33.7k
    _: &ConfiguredModule<C>,
2709
33.7k
    builder: &mut CodeBuilder<C>,
2710
33.7k
) -> Result<Instruction> {
2711
33.7k
    builder.pop_operands(&[ValType::F32]);
2712
33.7k
    builder.push_operands(&[ValType::I32]);
2713
33.7k
    Ok(Instruction::I32ReinterpretF32)
2714
33.7k
}
2715
2716
104k
fn i64_reinterpret_f64<C: Config>(
2717
104k
    _: &mut Unstructured,
2718
104k
    _: &ConfiguredModule<C>,
2719
104k
    builder: &mut CodeBuilder<C>,
2720
104k
) -> Result<Instruction> {
2721
104k
    builder.pop_operands(&[ValType::F64]);
2722
104k
    builder.push_operands(&[ValType::I64]);
2723
104k
    Ok(Instruction::I64ReinterpretF64)
2724
104k
}
wasm_smith::code_builder::i64_reinterpret_f64::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2716
13.9k
fn i64_reinterpret_f64<C: Config>(
2717
13.9k
    _: &mut Unstructured,
2718
13.9k
    _: &ConfiguredModule<C>,
2719
13.9k
    builder: &mut CodeBuilder<C>,
2720
13.9k
) -> Result<Instruction> {
2721
13.9k
    builder.pop_operands(&[ValType::F64]);
2722
13.9k
    builder.push_operands(&[ValType::I64]);
2723
13.9k
    Ok(Instruction::I64ReinterpretF64)
2724
13.9k
}
wasm_smith::code_builder::i64_reinterpret_f64::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2716
90.7k
fn i64_reinterpret_f64<C: Config>(
2717
90.7k
    _: &mut Unstructured,
2718
90.7k
    _: &ConfiguredModule<C>,
2719
90.7k
    builder: &mut CodeBuilder<C>,
2720
90.7k
) -> Result<Instruction> {
2721
90.7k
    builder.pop_operands(&[ValType::F64]);
2722
90.7k
    builder.push_operands(&[ValType::I64]);
2723
90.7k
    Ok(Instruction::I64ReinterpretF64)
2724
90.7k
}
2725
2726
77.9k
fn f32_reinterpret_i32<C: Config>(
2727
77.9k
    _: &mut Unstructured,
2728
77.9k
    _: &ConfiguredModule<C>,
2729
77.9k
    builder: &mut CodeBuilder<C>,
2730
77.9k
) -> Result<Instruction> {
2731
77.9k
    builder.pop_operands(&[ValType::I32]);
2732
77.9k
    builder.push_operands(&[ValType::F32]);
2733
77.9k
    Ok(Instruction::F32ReinterpretI32)
2734
77.9k
}
wasm_smith::code_builder::f32_reinterpret_i32::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2726
23.4k
fn f32_reinterpret_i32<C: Config>(
2727
23.4k
    _: &mut Unstructured,
2728
23.4k
    _: &ConfiguredModule<C>,
2729
23.4k
    builder: &mut CodeBuilder<C>,
2730
23.4k
) -> Result<Instruction> {
2731
23.4k
    builder.pop_operands(&[ValType::I32]);
2732
23.4k
    builder.push_operands(&[ValType::F32]);
2733
23.4k
    Ok(Instruction::F32ReinterpretI32)
2734
23.4k
}
wasm_smith::code_builder::f32_reinterpret_i32::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2726
54.4k
fn f32_reinterpret_i32<C: Config>(
2727
54.4k
    _: &mut Unstructured,
2728
54.4k
    _: &ConfiguredModule<C>,
2729
54.4k
    builder: &mut CodeBuilder<C>,
2730
54.4k
) -> Result<Instruction> {
2731
54.4k
    builder.pop_operands(&[ValType::I32]);
2732
54.4k
    builder.push_operands(&[ValType::F32]);
2733
54.4k
    Ok(Instruction::F32ReinterpretI32)
2734
54.4k
}
2735
2736
35.7k
fn f64_reinterpret_i64<C: Config>(
2737
35.7k
    _: &mut Unstructured,
2738
35.7k
    _: &ConfiguredModule<C>,
2739
35.7k
    builder: &mut CodeBuilder<C>,
2740
35.7k
) -> Result<Instruction> {
2741
35.7k
    builder.pop_operands(&[ValType::I64]);
2742
35.7k
    builder.push_operands(&[ValType::F64]);
2743
35.7k
    Ok(Instruction::F64ReinterpretI64)
2744
35.7k
}
wasm_smith::code_builder::f64_reinterpret_i64::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2736
15.0k
fn f64_reinterpret_i64<C: Config>(
2737
15.0k
    _: &mut Unstructured,
2738
15.0k
    _: &ConfiguredModule<C>,
2739
15.0k
    builder: &mut CodeBuilder<C>,
2740
15.0k
) -> Result<Instruction> {
2741
15.0k
    builder.pop_operands(&[ValType::I64]);
2742
15.0k
    builder.push_operands(&[ValType::F64]);
2743
15.0k
    Ok(Instruction::F64ReinterpretI64)
2744
15.0k
}
wasm_smith::code_builder::f64_reinterpret_i64::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2736
20.6k
fn f64_reinterpret_i64<C: Config>(
2737
20.6k
    _: &mut Unstructured,
2738
20.6k
    _: &ConfiguredModule<C>,
2739
20.6k
    builder: &mut CodeBuilder<C>,
2740
20.6k
) -> Result<Instruction> {
2741
20.6k
    builder.pop_operands(&[ValType::I64]);
2742
20.6k
    builder.push_operands(&[ValType::F64]);
2743
20.6k
    Ok(Instruction::F64ReinterpretI64)
2744
20.6k
}
2745
2746
59.4k
fn i32_extend_8_s<C: Config>(
2747
59.4k
    _: &mut Unstructured,
2748
59.4k
    _: &ConfiguredModule<C>,
2749
59.4k
    builder: &mut CodeBuilder<C>,
2750
59.4k
) -> Result<Instruction> {
2751
59.4k
    builder.pop_operands(&[ValType::I32]);
2752
59.4k
    builder.push_operands(&[ValType::I32]);
2753
59.4k
    Ok(Instruction::I32Extend8S)
2754
59.4k
}
wasm_smith::code_builder::i32_extend_8_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2746
28.4k
fn i32_extend_8_s<C: Config>(
2747
28.4k
    _: &mut Unstructured,
2748
28.4k
    _: &ConfiguredModule<C>,
2749
28.4k
    builder: &mut CodeBuilder<C>,
2750
28.4k
) -> Result<Instruction> {
2751
28.4k
    builder.pop_operands(&[ValType::I32]);
2752
28.4k
    builder.push_operands(&[ValType::I32]);
2753
28.4k
    Ok(Instruction::I32Extend8S)
2754
28.4k
}
wasm_smith::code_builder::i32_extend_8_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2746
30.9k
fn i32_extend_8_s<C: Config>(
2747
30.9k
    _: &mut Unstructured,
2748
30.9k
    _: &ConfiguredModule<C>,
2749
30.9k
    builder: &mut CodeBuilder<C>,
2750
30.9k
) -> Result<Instruction> {
2751
30.9k
    builder.pop_operands(&[ValType::I32]);
2752
30.9k
    builder.push_operands(&[ValType::I32]);
2753
30.9k
    Ok(Instruction::I32Extend8S)
2754
30.9k
}
2755
2756
85.8k
fn i32_extend_16_s<C: Config>(
2757
85.8k
    _: &mut Unstructured,
2758
85.8k
    _: &ConfiguredModule<C>,
2759
85.8k
    builder: &mut CodeBuilder<C>,
2760
85.8k
) -> Result<Instruction> {
2761
85.8k
    builder.pop_operands(&[ValType::I32]);
2762
85.8k
    builder.push_operands(&[ValType::I32]);
2763
85.8k
    Ok(Instruction::I32Extend16S)
2764
85.8k
}
wasm_smith::code_builder::i32_extend_16_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2756
29.1k
fn i32_extend_16_s<C: Config>(
2757
29.1k
    _: &mut Unstructured,
2758
29.1k
    _: &ConfiguredModule<C>,
2759
29.1k
    builder: &mut CodeBuilder<C>,
2760
29.1k
) -> Result<Instruction> {
2761
29.1k
    builder.pop_operands(&[ValType::I32]);
2762
29.1k
    builder.push_operands(&[ValType::I32]);
2763
29.1k
    Ok(Instruction::I32Extend16S)
2764
29.1k
}
wasm_smith::code_builder::i32_extend_16_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2756
56.6k
fn i32_extend_16_s<C: Config>(
2757
56.6k
    _: &mut Unstructured,
2758
56.6k
    _: &ConfiguredModule<C>,
2759
56.6k
    builder: &mut CodeBuilder<C>,
2760
56.6k
) -> Result<Instruction> {
2761
56.6k
    builder.pop_operands(&[ValType::I32]);
2762
56.6k
    builder.push_operands(&[ValType::I32]);
2763
56.6k
    Ok(Instruction::I32Extend16S)
2764
56.6k
}
2765
2766
165k
fn i64_extend_8_s<C: Config>(
2767
165k
    _: &mut Unstructured,
2768
165k
    _: &ConfiguredModule<C>,
2769
165k
    builder: &mut CodeBuilder<C>,
2770
165k
) -> Result<Instruction> {
2771
165k
    builder.pop_operands(&[ValType::I64]);
2772
165k
    builder.push_operands(&[ValType::I64]);
2773
165k
    Ok(Instruction::I64Extend8S)
2774
165k
}
wasm_smith::code_builder::i64_extend_8_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2766
96.1k
fn i64_extend_8_s<C: Config>(
2767
96.1k
    _: &mut Unstructured,
2768
96.1k
    _: &ConfiguredModule<C>,
2769
96.1k
    builder: &mut CodeBuilder<C>,
2770
96.1k
) -> Result<Instruction> {
2771
96.1k
    builder.pop_operands(&[ValType::I64]);
2772
96.1k
    builder.push_operands(&[ValType::I64]);
2773
96.1k
    Ok(Instruction::I64Extend8S)
2774
96.1k
}
wasm_smith::code_builder::i64_extend_8_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2766
69.5k
fn i64_extend_8_s<C: Config>(
2767
69.5k
    _: &mut Unstructured,
2768
69.5k
    _: &ConfiguredModule<C>,
2769
69.5k
    builder: &mut CodeBuilder<C>,
2770
69.5k
) -> Result<Instruction> {
2771
69.5k
    builder.pop_operands(&[ValType::I64]);
2772
69.5k
    builder.push_operands(&[ValType::I64]);
2773
69.5k
    Ok(Instruction::I64Extend8S)
2774
69.5k
}
2775
2776
99.2k
fn i64_extend_16_s<C: Config>(
2777
99.2k
    _: &mut Unstructured,
2778
99.2k
    _: &ConfiguredModule<C>,
2779
99.2k
    builder: &mut CodeBuilder<C>,
2780
99.2k
) -> Result<Instruction> {
2781
99.2k
    builder.pop_operands(&[ValType::I64]);
2782
99.2k
    builder.push_operands(&[ValType::I64]);
2783
99.2k
    Ok(Instruction::I64Extend16S)
2784
99.2k
}
wasm_smith::code_builder::i64_extend_16_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2776
65.3k
fn i64_extend_16_s<C: Config>(
2777
65.3k
    _: &mut Unstructured,
2778
65.3k
    _: &ConfiguredModule<C>,
2779
65.3k
    builder: &mut CodeBuilder<C>,
2780
65.3k
) -> Result<Instruction> {
2781
65.3k
    builder.pop_operands(&[ValType::I64]);
2782
65.3k
    builder.push_operands(&[ValType::I64]);
2783
65.3k
    Ok(Instruction::I64Extend16S)
2784
65.3k
}
wasm_smith::code_builder::i64_extend_16_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2776
33.9k
fn i64_extend_16_s<C: Config>(
2777
33.9k
    _: &mut Unstructured,
2778
33.9k
    _: &ConfiguredModule<C>,
2779
33.9k
    builder: &mut CodeBuilder<C>,
2780
33.9k
) -> Result<Instruction> {
2781
33.9k
    builder.pop_operands(&[ValType::I64]);
2782
33.9k
    builder.push_operands(&[ValType::I64]);
2783
33.9k
    Ok(Instruction::I64Extend16S)
2784
33.9k
}
2785
2786
153k
fn i64_extend_32_s<C: Config>(
2787
153k
    _: &mut Unstructured,
2788
153k
    _: &ConfiguredModule<C>,
2789
153k
    builder: &mut CodeBuilder<C>,
2790
153k
) -> Result<Instruction> {
2791
153k
    builder.pop_operands(&[ValType::I64]);
2792
153k
    builder.push_operands(&[ValType::I64]);
2793
153k
    Ok(Instruction::I64Extend32S)
2794
153k
}
wasm_smith::code_builder::i64_extend_32_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2786
72.2k
fn i64_extend_32_s<C: Config>(
2787
72.2k
    _: &mut Unstructured,
2788
72.2k
    _: &ConfiguredModule<C>,
2789
72.2k
    builder: &mut CodeBuilder<C>,
2790
72.2k
) -> Result<Instruction> {
2791
72.2k
    builder.pop_operands(&[ValType::I64]);
2792
72.2k
    builder.push_operands(&[ValType::I64]);
2793
72.2k
    Ok(Instruction::I64Extend32S)
2794
72.2k
}
wasm_smith::code_builder::i64_extend_32_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2786
81.4k
fn i64_extend_32_s<C: Config>(
2787
81.4k
    _: &mut Unstructured,
2788
81.4k
    _: &ConfiguredModule<C>,
2789
81.4k
    builder: &mut CodeBuilder<C>,
2790
81.4k
) -> Result<Instruction> {
2791
81.4k
    builder.pop_operands(&[ValType::I64]);
2792
81.4k
    builder.push_operands(&[ValType::I64]);
2793
81.4k
    Ok(Instruction::I64Extend32S)
2794
81.4k
}
2795
2796
20.5k
fn i32_trunc_sat_f32_s<C: Config>(
2797
20.5k
    _: &mut Unstructured,
2798
20.5k
    _: &ConfiguredModule<C>,
2799
20.5k
    builder: &mut CodeBuilder<C>,
2800
20.5k
) -> Result<Instruction> {
2801
20.5k
    builder.pop_operands(&[ValType::F32]);
2802
20.5k
    builder.push_operands(&[ValType::I32]);
2803
20.5k
    Ok(Instruction::I32TruncSatF32S)
2804
20.5k
}
wasm_smith::code_builder::i32_trunc_sat_f32_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2796
7.94k
fn i32_trunc_sat_f32_s<C: Config>(
2797
7.94k
    _: &mut Unstructured,
2798
7.94k
    _: &ConfiguredModule<C>,
2799
7.94k
    builder: &mut CodeBuilder<C>,
2800
7.94k
) -> Result<Instruction> {
2801
7.94k
    builder.pop_operands(&[ValType::F32]);
2802
7.94k
    builder.push_operands(&[ValType::I32]);
2803
7.94k
    Ok(Instruction::I32TruncSatF32S)
2804
7.94k
}
wasm_smith::code_builder::i32_trunc_sat_f32_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2796
12.5k
fn i32_trunc_sat_f32_s<C: Config>(
2797
12.5k
    _: &mut Unstructured,
2798
12.5k
    _: &ConfiguredModule<C>,
2799
12.5k
    builder: &mut CodeBuilder<C>,
2800
12.5k
) -> Result<Instruction> {
2801
12.5k
    builder.pop_operands(&[ValType::F32]);
2802
12.5k
    builder.push_operands(&[ValType::I32]);
2803
12.5k
    Ok(Instruction::I32TruncSatF32S)
2804
12.5k
}
2805
2806
47.0k
fn i32_trunc_sat_f32_u<C: Config>(
2807
47.0k
    _: &mut Unstructured,
2808
47.0k
    _: &ConfiguredModule<C>,
2809
47.0k
    builder: &mut CodeBuilder<C>,
2810
47.0k
) -> Result<Instruction> {
2811
47.0k
    builder.pop_operands(&[ValType::F32]);
2812
47.0k
    builder.push_operands(&[ValType::I32]);
2813
47.0k
    Ok(Instruction::I32TruncSatF32U)
2814
47.0k
}
wasm_smith::code_builder::i32_trunc_sat_f32_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2806
15.8k
fn i32_trunc_sat_f32_u<C: Config>(
2807
15.8k
    _: &mut Unstructured,
2808
15.8k
    _: &ConfiguredModule<C>,
2809
15.8k
    builder: &mut CodeBuilder<C>,
2810
15.8k
) -> Result<Instruction> {
2811
15.8k
    builder.pop_operands(&[ValType::F32]);
2812
15.8k
    builder.push_operands(&[ValType::I32]);
2813
15.8k
    Ok(Instruction::I32TruncSatF32U)
2814
15.8k
}
wasm_smith::code_builder::i32_trunc_sat_f32_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2806
31.1k
fn i32_trunc_sat_f32_u<C: Config>(
2807
31.1k
    _: &mut Unstructured,
2808
31.1k
    _: &ConfiguredModule<C>,
2809
31.1k
    builder: &mut CodeBuilder<C>,
2810
31.1k
) -> Result<Instruction> {
2811
31.1k
    builder.pop_operands(&[ValType::F32]);
2812
31.1k
    builder.push_operands(&[ValType::I32]);
2813
31.1k
    Ok(Instruction::I32TruncSatF32U)
2814
31.1k
}
2815
2816
30.3k
fn i32_trunc_sat_f64_s<C: Config>(
2817
30.3k
    _: &mut Unstructured,
2818
30.3k
    _: &ConfiguredModule<C>,
2819
30.3k
    builder: &mut CodeBuilder<C>,
2820
30.3k
) -> Result<Instruction> {
2821
30.3k
    builder.pop_operands(&[ValType::F64]);
2822
30.3k
    builder.push_operands(&[ValType::I32]);
2823
30.3k
    Ok(Instruction::I32TruncSatF64S)
2824
30.3k
}
wasm_smith::code_builder::i32_trunc_sat_f64_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2816
14.7k
fn i32_trunc_sat_f64_s<C: Config>(
2817
14.7k
    _: &mut Unstructured,
2818
14.7k
    _: &ConfiguredModule<C>,
2819
14.7k
    builder: &mut CodeBuilder<C>,
2820
14.7k
) -> Result<Instruction> {
2821
14.7k
    builder.pop_operands(&[ValType::F64]);
2822
14.7k
    builder.push_operands(&[ValType::I32]);
2823
14.7k
    Ok(Instruction::I32TruncSatF64S)
2824
14.7k
}
wasm_smith::code_builder::i32_trunc_sat_f64_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2816
15.6k
fn i32_trunc_sat_f64_s<C: Config>(
2817
15.6k
    _: &mut Unstructured,
2818
15.6k
    _: &ConfiguredModule<C>,
2819
15.6k
    builder: &mut CodeBuilder<C>,
2820
15.6k
) -> Result<Instruction> {
2821
15.6k
    builder.pop_operands(&[ValType::F64]);
2822
15.6k
    builder.push_operands(&[ValType::I32]);
2823
15.6k
    Ok(Instruction::I32TruncSatF64S)
2824
15.6k
}
2825
2826
82.7k
fn i32_trunc_sat_f64_u<C: Config>(
2827
82.7k
    _: &mut Unstructured,
2828
82.7k
    _: &ConfiguredModule<C>,
2829
82.7k
    builder: &mut CodeBuilder<C>,
2830
82.7k
) -> Result<Instruction> {
2831
82.7k
    builder.pop_operands(&[ValType::F64]);
2832
82.7k
    builder.push_operands(&[ValType::I32]);
2833
82.7k
    Ok(Instruction::I32TruncSatF64U)
2834
82.7k
}
wasm_smith::code_builder::i32_trunc_sat_f64_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2826
27.1k
fn i32_trunc_sat_f64_u<C: Config>(
2827
27.1k
    _: &mut Unstructured,
2828
27.1k
    _: &ConfiguredModule<C>,
2829
27.1k
    builder: &mut CodeBuilder<C>,
2830
27.1k
) -> Result<Instruction> {
2831
27.1k
    builder.pop_operands(&[ValType::F64]);
2832
27.1k
    builder.push_operands(&[ValType::I32]);
2833
27.1k
    Ok(Instruction::I32TruncSatF64U)
2834
27.1k
}
wasm_smith::code_builder::i32_trunc_sat_f64_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2826
55.6k
fn i32_trunc_sat_f64_u<C: Config>(
2827
55.6k
    _: &mut Unstructured,
2828
55.6k
    _: &ConfiguredModule<C>,
2829
55.6k
    builder: &mut CodeBuilder<C>,
2830
55.6k
) -> Result<Instruction> {
2831
55.6k
    builder.pop_operands(&[ValType::F64]);
2832
55.6k
    builder.push_operands(&[ValType::I32]);
2833
55.6k
    Ok(Instruction::I32TruncSatF64U)
2834
55.6k
}
2835
2836
18.0k
fn i64_trunc_sat_f32_s<C: Config>(
2837
18.0k
    _: &mut Unstructured,
2838
18.0k
    _: &ConfiguredModule<C>,
2839
18.0k
    builder: &mut CodeBuilder<C>,
2840
18.0k
) -> Result<Instruction> {
2841
18.0k
    builder.pop_operands(&[ValType::F32]);
2842
18.0k
    builder.push_operands(&[ValType::I64]);
2843
18.0k
    Ok(Instruction::I64TruncSatF32S)
2844
18.0k
}
wasm_smith::code_builder::i64_trunc_sat_f32_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2836
8.95k
fn i64_trunc_sat_f32_s<C: Config>(
2837
8.95k
    _: &mut Unstructured,
2838
8.95k
    _: &ConfiguredModule<C>,
2839
8.95k
    builder: &mut CodeBuilder<C>,
2840
8.95k
) -> Result<Instruction> {
2841
8.95k
    builder.pop_operands(&[ValType::F32]);
2842
8.95k
    builder.push_operands(&[ValType::I64]);
2843
8.95k
    Ok(Instruction::I64TruncSatF32S)
2844
8.95k
}
wasm_smith::code_builder::i64_trunc_sat_f32_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2836
9.14k
fn i64_trunc_sat_f32_s<C: Config>(
2837
9.14k
    _: &mut Unstructured,
2838
9.14k
    _: &ConfiguredModule<C>,
2839
9.14k
    builder: &mut CodeBuilder<C>,
2840
9.14k
) -> Result<Instruction> {
2841
9.14k
    builder.pop_operands(&[ValType::F32]);
2842
9.14k
    builder.push_operands(&[ValType::I64]);
2843
9.14k
    Ok(Instruction::I64TruncSatF32S)
2844
9.14k
}
2845
2846
96.9k
fn i64_trunc_sat_f32_u<C: Config>(
2847
96.9k
    _: &mut Unstructured,
2848
96.9k
    _: &ConfiguredModule<C>,
2849
96.9k
    builder: &mut CodeBuilder<C>,
2850
96.9k
) -> Result<Instruction> {
2851
96.9k
    builder.pop_operands(&[ValType::F32]);
2852
96.9k
    builder.push_operands(&[ValType::I64]);
2853
96.9k
    Ok(Instruction::I64TruncSatF32U)
2854
96.9k
}
wasm_smith::code_builder::i64_trunc_sat_f32_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2846
51.4k
fn i64_trunc_sat_f32_u<C: Config>(
2847
51.4k
    _: &mut Unstructured,
2848
51.4k
    _: &ConfiguredModule<C>,
2849
51.4k
    builder: &mut CodeBuilder<C>,
2850
51.4k
) -> Result<Instruction> {
2851
51.4k
    builder.pop_operands(&[ValType::F32]);
2852
51.4k
    builder.push_operands(&[ValType::I64]);
2853
51.4k
    Ok(Instruction::I64TruncSatF32U)
2854
51.4k
}
wasm_smith::code_builder::i64_trunc_sat_f32_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2846
45.5k
fn i64_trunc_sat_f32_u<C: Config>(
2847
45.5k
    _: &mut Unstructured,
2848
45.5k
    _: &ConfiguredModule<C>,
2849
45.5k
    builder: &mut CodeBuilder<C>,
2850
45.5k
) -> Result<Instruction> {
2851
45.5k
    builder.pop_operands(&[ValType::F32]);
2852
45.5k
    builder.push_operands(&[ValType::I64]);
2853
45.5k
    Ok(Instruction::I64TruncSatF32U)
2854
45.5k
}
2855
2856
27.8k
fn i64_trunc_sat_f64_s<C: Config>(
2857
27.8k
    _: &mut Unstructured,
2858
27.8k
    _: &ConfiguredModule<C>,
2859
27.8k
    builder: &mut CodeBuilder<C>,
2860
27.8k
) -> Result<Instruction> {
2861
27.8k
    builder.pop_operands(&[ValType::F64]);
2862
27.8k
    builder.push_operands(&[ValType::I64]);
2863
27.8k
    Ok(Instruction::I64TruncSatF64S)
2864
27.8k
}
wasm_smith::code_builder::i64_trunc_sat_f64_s::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2856
20.1k
fn i64_trunc_sat_f64_s<C: Config>(
2857
20.1k
    _: &mut Unstructured,
2858
20.1k
    _: &ConfiguredModule<C>,
2859
20.1k
    builder: &mut CodeBuilder<C>,
2860
20.1k
) -> Result<Instruction> {
2861
20.1k
    builder.pop_operands(&[ValType::F64]);
2862
20.1k
    builder.push_operands(&[ValType::I64]);
2863
20.1k
    Ok(Instruction::I64TruncSatF64S)
2864
20.1k
}
wasm_smith::code_builder::i64_trunc_sat_f64_s::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2856
7.67k
fn i64_trunc_sat_f64_s<C: Config>(
2857
7.67k
    _: &mut Unstructured,
2858
7.67k
    _: &ConfiguredModule<C>,
2859
7.67k
    builder: &mut CodeBuilder<C>,
2860
7.67k
) -> Result<Instruction> {
2861
7.67k
    builder.pop_operands(&[ValType::F64]);
2862
7.67k
    builder.push_operands(&[ValType::I64]);
2863
7.67k
    Ok(Instruction::I64TruncSatF64S)
2864
7.67k
}
2865
2866
92.8k
fn i64_trunc_sat_f64_u<C: Config>(
2867
92.8k
    _: &mut Unstructured,
2868
92.8k
    _: &ConfiguredModule<C>,
2869
92.8k
    builder: &mut CodeBuilder<C>,
2870
92.8k
) -> Result<Instruction> {
2871
92.8k
    builder.pop_operands(&[ValType::F64]);
2872
92.8k
    builder.push_operands(&[ValType::I64]);
2873
92.8k
    Ok(Instruction::I64TruncSatF64U)
2874
92.8k
}
wasm_smith::code_builder::i64_trunc_sat_f64_u::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2866
25.4k
fn i64_trunc_sat_f64_u<C: Config>(
2867
25.4k
    _: &mut Unstructured,
2868
25.4k
    _: &ConfiguredModule<C>,
2869
25.4k
    builder: &mut CodeBuilder<C>,
2870
25.4k
) -> Result<Instruction> {
2871
25.4k
    builder.pop_operands(&[ValType::F64]);
2872
25.4k
    builder.push_operands(&[ValType::I64]);
2873
25.4k
    Ok(Instruction::I64TruncSatF64U)
2874
25.4k
}
wasm_smith::code_builder::i64_trunc_sat_f64_u::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2866
67.4k
fn i64_trunc_sat_f64_u<C: Config>(
2867
67.4k
    _: &mut Unstructured,
2868
67.4k
    _: &ConfiguredModule<C>,
2869
67.4k
    builder: &mut CodeBuilder<C>,
2870
67.4k
) -> Result<Instruction> {
2871
67.4k
    builder.pop_operands(&[ValType::F64]);
2872
67.4k
    builder.push_operands(&[ValType::I64]);
2873
67.4k
    Ok(Instruction::I64TruncSatF64U)
2874
67.4k
}
2875
2876
639k
fn memory_offset<C: Config>(
2877
639k
    u: &mut Unstructured,
2878
639k
    module: &ConfiguredModule<C>,
2879
639k
    memory_index: u32,
2880
639k
) -> Result<u32> {
2881
639k
    let (a, b, c) = module.config.memory_offset_choices();
2882
639k
    assert!(a + b + c != 0);
2883
2884
639k
    let memory_type = &module.memories[memory_index as usize];
2885
639k
    let min = memory_type.limits.min.saturating_mul(65536);
2886
639k
    let max = memory_type
2887
639k
        .limits
2888
639k
        .max
2889
639k
        .map_or(u32::MAX, |max| max.saturating_mul(65536));
wasm_smith::code_builder::memory_offset::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
2889
224k
        .map_or(u32::MAX, |max| max.saturating_mul(65536));
wasm_smith::code_builder::memory_offset::<wasm_smith::config::DefaultConfig>::{closure#0}
Line
Count
Source
2889
336k
        .map_or(u32::MAX, |max| max.saturating_mul(65536));
2890
2891
639k
    let choice = u.int_in_range(0..=a + b + c - 1)?;
2892
638k
    if choice < a {
2893
451k
        u.int_in_range(0..=min)
2894
187k
    } else if choice < a + b {
2895
130k
        u.int_in_range(min..=max)
2896
    } else {
2897
57.2k
        u.int_in_range(max..=u32::MAX)
2898
    }
2899
639k
}
wasm_smith::code_builder::memory_offset::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2876
264k
fn memory_offset<C: Config>(
2877
264k
    u: &mut Unstructured,
2878
264k
    module: &ConfiguredModule<C>,
2879
264k
    memory_index: u32,
2880
264k
) -> Result<u32> {
2881
264k
    let (a, b, c) = module.config.memory_offset_choices();
2882
264k
    assert!(a + b + c != 0);
2883
2884
264k
    let memory_type = &module.memories[memory_index as usize];
2885
264k
    let min = memory_type.limits.min.saturating_mul(65536);
2886
264k
    let max = memory_type
2887
264k
        .limits
2888
264k
        .max
2889
264k
        .map_or(u32::MAX, |max| max.saturating_mul(65536));
2890
2891
264k
    let choice = u.int_in_range(0..=a + b + c - 1)?;
2892
264k
    if choice < a {
2893
181k
        u.int_in_range(0..=min)
2894
82.7k
    } else if choice < a + b {
2895
48.9k
        u.int_in_range(min..=max)
2896
    } else {
2897
33.8k
        u.int_in_range(max..=u32::MAX)
2898
    }
2899
264k
}
wasm_smith::code_builder::memory_offset::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2876
374k
fn memory_offset<C: Config>(
2877
374k
    u: &mut Unstructured,
2878
374k
    module: &ConfiguredModule<C>,
2879
374k
    memory_index: u32,
2880
374k
) -> Result<u32> {
2881
374k
    let (a, b, c) = module.config.memory_offset_choices();
2882
374k
    assert!(a + b + c != 0);
2883
2884
374k
    let memory_type = &module.memories[memory_index as usize];
2885
374k
    let min = memory_type.limits.min.saturating_mul(65536);
2886
374k
    let max = memory_type
2887
374k
        .limits
2888
374k
        .max
2889
374k
        .map_or(u32::MAX, |max| max.saturating_mul(65536));
2890
2891
374k
    let choice = u.int_in_range(0..=a + b + c - 1)?;
2892
374k
    if choice < a {
2893
270k
        u.int_in_range(0..=min)
2894
104k
    } else if choice < a + b {
2895
81.1k
        u.int_in_range(min..=max)
2896
    } else {
2897
23.4k
        u.int_in_range(max..=u32::MAX)
2898
    }
2899
374k
}
Unexecuted instantiation: wasm_smith::code_builder::memory_offset::<wasm_smith::config::SwarmConfig>
2900
2901
639k
fn mem_arg<C: Config>(
2902
639k
    u: &mut Unstructured,
2903
639k
    module: &ConfiguredModule<C>,
2904
639k
    alignments: &[u32],
2905
639k
) -> Result<MemArg> {
2906
639k
    let memory_index = memory_index(u, module)?;
2907
639k
    let offset = memory_offset(u, module, memory_index)?;
2908
638k
    let align = *u.choose(alignments)?;
2909
638k
    Ok(MemArg {
2910
638k
        memory_index,
2911
638k
        offset,
2912
638k
        align,
2913
638k
    })
2914
639k
}
wasm_smith::code_builder::mem_arg::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2901
264k
fn mem_arg<C: Config>(
2902
264k
    u: &mut Unstructured,
2903
264k
    module: &ConfiguredModule<C>,
2904
264k
    alignments: &[u32],
2905
264k
) -> Result<MemArg> {
2906
264k
    let memory_index = memory_index(u, module)?;
2907
264k
    let offset = memory_offset(u, module, memory_index)?;
2908
264k
    let align = *u.choose(alignments)?;
2909
264k
    Ok(MemArg {
2910
264k
        memory_index,
2911
264k
        offset,
2912
264k
        align,
2913
264k
    })
2914
264k
}
wasm_smith::code_builder::mem_arg::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2901
374k
fn mem_arg<C: Config>(
2902
374k
    u: &mut Unstructured,
2903
374k
    module: &ConfiguredModule<C>,
2904
374k
    alignments: &[u32],
2905
374k
) -> Result<MemArg> {
2906
374k
    let memory_index = memory_index(u, module)?;
2907
374k
    let offset = memory_offset(u, module, memory_index)?;
2908
374k
    let align = *u.choose(alignments)?;
2909
374k
    Ok(MemArg {
2910
374k
        memory_index,
2911
374k
        offset,
2912
374k
        align,
2913
374k
    })
2914
374k
}
Unexecuted instantiation: wasm_smith::code_builder::mem_arg::<wasm_smith::config::SwarmConfig>
2915
2916
994k
fn memory_index<C: Config>(u: &mut Unstructured, module: &ConfiguredModule<C>) -> Result<u32> {
2917
994k
    u.int_in_range(0..=module.memories.len() as u32 - 1)
2918
994k
}
wasm_smith::code_builder::memory_index::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2916
409k
fn memory_index<C: Config>(u: &mut Unstructured, module: &ConfiguredModule<C>) -> Result<u32> {
2917
409k
    u.int_in_range(0..=module.memories.len() as u32 - 1)
2918
409k
}
wasm_smith::code_builder::memory_index::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2916
585k
fn memory_index<C: Config>(u: &mut Unstructured, module: &ConfiguredModule<C>) -> Result<u32> {
2917
585k
    u.int_in_range(0..=module.memories.len() as u32 - 1)
2918
585k
}
2919
2920
122k
fn data_index<C: Config>(u: &mut Unstructured, module: &ConfiguredModule<C>) -> Result<u32> {
2921
122k
    let data = module.data.len() as u32;
2922
122k
    assert!(data > 0);
2923
122k
    if data == 1 {
2924
26.7k
        Ok(0)
2925
    } else {
2926
95.9k
        u.int_in_range(0..=data - 1)
2927
    }
2928
122k
}
wasm_smith::code_builder::data_index::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2920
122k
fn data_index<C: Config>(u: &mut Unstructured, module: &ConfiguredModule<C>) -> Result<u32> {
2921
122k
    let data = module.data.len() as u32;
2922
122k
    assert!(data > 0);
2923
122k
    if data == 1 {
2924
26.7k
        Ok(0)
2925
    } else {
2926
95.9k
        u.int_in_range(0..=data - 1)
2927
    }
2928
122k
}
Unexecuted instantiation: wasm_smith::code_builder::data_index::<wasm_smith::config::DefaultConfig>
Unexecuted instantiation: wasm_smith::code_builder::data_index::<wasm_smith::config::SwarmConfig>
2929
2930
#[inline]
2931
15.9M
fn ref_null_valid<C: Config>(module: &ConfiguredModule<C>, _: &mut CodeBuilder<C>) -> bool {
2932
15.9M
    module.config.reference_types_enabled()
2933
15.9M
}
wasm_smith::code_builder::ref_null_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2931
7.19M
fn ref_null_valid<C: Config>(module: &ConfiguredModule<C>, _: &mut CodeBuilder<C>) -> bool {
2932
7.19M
    module.config.reference_types_enabled()
2933
7.19M
}
wasm_smith::code_builder::ref_null_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2931
8.74M
fn ref_null_valid<C: Config>(module: &ConfiguredModule<C>, _: &mut CodeBuilder<C>) -> bool {
2932
8.74M
    module.config.reference_types_enabled()
2933
8.74M
}
2934
2935
191k
fn ref_null<C: Config>(
2936
191k
    u: &mut Unstructured,
2937
191k
    _: &ConfiguredModule<C>,
2938
191k
    builder: &mut CodeBuilder<C>,
2939
191k
) -> Result<Instruction> {
2940
191k
    let ty = *u.choose(&[ValType::ExternRef, ValType::FuncRef])?;
2941
191k
    builder.push_operands(&[ty]);
2942
191k
    Ok(Instruction::RefNull(ty))
2943
191k
}
wasm_smith::code_builder::ref_null::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2935
191k
fn ref_null<C: Config>(
2936
191k
    u: &mut Unstructured,
2937
191k
    _: &ConfiguredModule<C>,
2938
191k
    builder: &mut CodeBuilder<C>,
2939
191k
) -> Result<Instruction> {
2940
191k
    let ty = *u.choose(&[ValType::ExternRef, ValType::FuncRef])?;
2941
191k
    builder.push_operands(&[ty]);
2942
191k
    Ok(Instruction::RefNull(ty))
2943
191k
}
Unexecuted instantiation: wasm_smith::code_builder::ref_null::<wasm_smith::config::DefaultConfig>
Unexecuted instantiation: wasm_smith::code_builder::ref_null::<wasm_smith::config::SwarmConfig>
2944
2945
#[inline]
2946
15.9M
fn ref_func_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
2947
15.9M
    module.config.reference_types_enabled() && builder.allocs.referenced_functions.len() > 0
2948
15.9M
}
wasm_smith::code_builder::ref_func_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2946
7.19M
fn ref_func_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
2947
7.19M
    module.config.reference_types_enabled() && builder.allocs.referenced_functions.len() > 0
2948
7.19M
}
wasm_smith::code_builder::ref_func_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2946
8.74M
fn ref_func_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
2947
8.74M
    module.config.reference_types_enabled() && builder.allocs.referenced_functions.len() > 0
2948
8.74M
}
2949
2950
92.0k
fn ref_func<C: Config>(
2951
92.0k
    u: &mut Unstructured,
2952
92.0k
    _: &ConfiguredModule<C>,
2953
92.0k
    builder: &mut CodeBuilder<C>,
2954
92.0k
) -> Result<Instruction> {
2955
92.0k
    let i = *u.choose(&builder.allocs.referenced_functions)?;
2956
92.0k
    builder.push_operands(&[ValType::FuncRef]);
2957
92.0k
    Ok(Instruction::RefFunc(i))
2958
92.0k
}
wasm_smith::code_builder::ref_func::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2950
92.0k
fn ref_func<C: Config>(
2951
92.0k
    u: &mut Unstructured,
2952
92.0k
    _: &ConfiguredModule<C>,
2953
92.0k
    builder: &mut CodeBuilder<C>,
2954
92.0k
) -> Result<Instruction> {
2955
92.0k
    let i = *u.choose(&builder.allocs.referenced_functions)?;
2956
92.0k
    builder.push_operands(&[ValType::FuncRef]);
2957
92.0k
    Ok(Instruction::RefFunc(i))
2958
92.0k
}
Unexecuted instantiation: wasm_smith::code_builder::ref_func::<wasm_smith::config::DefaultConfig>
Unexecuted instantiation: wasm_smith::code_builder::ref_func::<wasm_smith::config::SwarmConfig>
2959
2960
#[inline]
2961
15.9M
fn ref_is_null_valid<C: Config>(
2962
15.9M
    module: &ConfiguredModule<C>,
2963
15.9M
    builder: &mut CodeBuilder<C>,
2964
15.9M
) -> bool {
2965
15.9M
    module.config.reference_types_enabled()
2966
5.40M
        && (builder.type_on_stack(ValType::ExternRef) || builder.type_on_stack(ValType::FuncRef))
2967
15.9M
}
wasm_smith::code_builder::ref_is_null_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2961
7.19M
fn ref_is_null_valid<C: Config>(
2962
7.19M
    module: &ConfiguredModule<C>,
2963
7.19M
    builder: &mut CodeBuilder<C>,
2964
7.19M
) -> bool {
2965
7.19M
    module.config.reference_types_enabled()
2966
5.40M
        && (builder.type_on_stack(ValType::ExternRef) || builder.type_on_stack(ValType::FuncRef))
2967
7.19M
}
wasm_smith::code_builder::ref_is_null_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2961
8.74M
fn ref_is_null_valid<C: Config>(
2962
8.74M
    module: &ConfiguredModule<C>,
2963
8.74M
    builder: &mut CodeBuilder<C>,
2964
8.74M
) -> bool {
2965
8.74M
    module.config.reference_types_enabled()
2966
0
        && (builder.type_on_stack(ValType::ExternRef) || builder.type_on_stack(ValType::FuncRef))
2967
8.74M
}
2968
2969
81.7k
fn ref_is_null<C: Config>(
2970
81.7k
    _: &mut Unstructured,
2971
81.7k
    _: &ConfiguredModule<C>,
2972
81.7k
    builder: &mut CodeBuilder<C>,
2973
81.7k
) -> Result<Instruction> {
2974
81.7k
    pop_reference_type(builder);
2975
81.7k
    builder.push_operands(&[ValType::I32]);
2976
81.7k
    Ok(Instruction::RefIsNull)
2977
81.7k
}
2978
2979
#[inline]
2980
15.9M
fn table_fill_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
2981
15.9M
    module.config.reference_types_enabled()
2982
5.40M
        && module.config.bulk_memory_enabled()
2983
9.57M
        && [ValType::ExternRef, ValType::FuncRef].iter().any(|ty| {
2984
9.57M
            builder.types_on_stack(&[ValType::I32, *ty, ValType::I32])
2985
1.83M
                && module.tables.iter().any(|t| t.elem_ty == *ty)
2986
9.57M
        })
wasm_smith::code_builder::table_fill_valid::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
2983
9.57M
        && [ValType::ExternRef, ValType::FuncRef].iter().any(|ty| {
2984
9.57M
            builder.types_on_stack(&[ValType::I32, *ty, ValType::I32])
2985
54.2k
                && module.tables.iter().any(|t| t.elem_ty == *ty)
2986
9.57M
        })
Unexecuted instantiation: wasm_smith::code_builder::table_fill_valid::<wasm_smith::config::DefaultConfig>::{closure#0}
Unexecuted instantiation: wasm_smith::code_builder::table_fill_valid::<wasm_smith::config::SwarmConfig>::{closure#0}
2987
15.9M
}
wasm_smith::code_builder::table_fill_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2980
7.19M
fn table_fill_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
2981
7.19M
    module.config.reference_types_enabled()
2982
5.40M
        && module.config.bulk_memory_enabled()
2983
4.79M
        && [ValType::ExternRef, ValType::FuncRef].iter().any(|ty| {
2984
            builder.types_on_stack(&[ValType::I32, *ty, ValType::I32])
2985
                && module.tables.iter().any(|t| t.elem_ty == *ty)
2986
4.79M
        })
2987
7.19M
}
wasm_smith::code_builder::table_fill_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
2980
8.74M
fn table_fill_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
2981
8.74M
    module.config.reference_types_enabled()
2982
0
        && module.config.bulk_memory_enabled()
2983
0
        && [ValType::ExternRef, ValType::FuncRef].iter().any(|ty| {
2984
            builder.types_on_stack(&[ValType::I32, *ty, ValType::I32])
2985
                && module.tables.iter().any(|t| t.elem_ty == *ty)
2986
0
        })
2987
8.74M
}
2988
2989
3.48k
fn table_fill<C: Config>(
2990
3.48k
    u: &mut Unstructured,
2991
3.48k
    module: &ConfiguredModule<C>,
2992
3.48k
    builder: &mut CodeBuilder<C>,
2993
3.48k
) -> Result<Instruction> {
2994
3.48k
    builder.pop_operands(&[ValType::I32]);
2995
3.48k
    let ty = pop_reference_type(builder);
2996
3.48k
    builder.pop_operands(&[ValType::I32]);
2997
3.48k
    let table = table_index(ty, u, module)?;
2998
3.48k
    Ok(Instruction::TableFill { table })
2999
3.48k
}
wasm_smith::code_builder::table_fill::<wasm_smith::config::SwarmConfig>
Line
Count
Source
2989
3.48k
fn table_fill<C: Config>(
2990
3.48k
    u: &mut Unstructured,
2991
3.48k
    module: &ConfiguredModule<C>,
2992
3.48k
    builder: &mut CodeBuilder<C>,
2993
3.48k
) -> Result<Instruction> {
2994
3.48k
    builder.pop_operands(&[ValType::I32]);
2995
3.48k
    let ty = pop_reference_type(builder);
2996
3.48k
    builder.pop_operands(&[ValType::I32]);
2997
3.48k
    let table = table_index(ty, u, module)?;
2998
3.48k
    Ok(Instruction::TableFill { table })
2999
3.48k
}
Unexecuted instantiation: wasm_smith::code_builder::table_fill::<wasm_smith::config::DefaultConfig>
Unexecuted instantiation: wasm_smith::code_builder::table_fill::<wasm_smith::config::SwarmConfig>
3000
3001
#[inline]
3002
15.9M
fn table_set_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
3003
15.9M
    module.config.reference_types_enabled()
3004
10.7M
        && [ValType::ExternRef, ValType::FuncRef].iter().any(|ty| {
3005
10.7M
            builder.types_on_stack(&[ValType::I32, *ty])
3006
2.48M
                && module.tables.iter().any(|t| t.elem_ty == *ty)
3007
10.7M
        })
wasm_smith::code_builder::table_set_valid::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
3004
10.7M
        && [ValType::ExternRef, ValType::FuncRef].iter().any(|ty| {
3005
10.7M
            builder.types_on_stack(&[ValType::I32, *ty])
3006
163k
                && module.tables.iter().any(|t| t.elem_ty == *ty)
3007
10.7M
        })
Unexecuted instantiation: wasm_smith::code_builder::table_set_valid::<wasm_smith::config::DefaultConfig>::{closure#0}
Unexecuted instantiation: wasm_smith::code_builder::table_set_valid::<wasm_smith::config::SwarmConfig>::{closure#0}
3008
15.9M
}
wasm_smith::code_builder::table_set_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
3002
7.19M
fn table_set_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
3003
7.19M
    module.config.reference_types_enabled()
3004
5.40M
        && [ValType::ExternRef, ValType::FuncRef].iter().any(|ty| {
3005
            builder.types_on_stack(&[ValType::I32, *ty])
3006
                && module.tables.iter().any(|t| t.elem_ty == *ty)
3007
5.40M
        })
3008
7.19M
}
wasm_smith::code_builder::table_set_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
3002
8.74M
fn table_set_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
3003
8.74M
    module.config.reference_types_enabled()
3004
0
        && [ValType::ExternRef, ValType::FuncRef].iter().any(|ty| {
3005
            builder.types_on_stack(&[ValType::I32, *ty])
3006
                && module.tables.iter().any(|t| t.elem_ty == *ty)
3007
0
        })
3008
8.74M
}
Unexecuted instantiation: wasm_smith::code_builder::table_set_valid::<wasm_smith::config::SwarmConfig>
3009
3010
2.06k
fn table_set<C: Config>(
3011
2.06k
    u: &mut Unstructured,
3012
2.06k
    module: &ConfiguredModule<C>,
3013
2.06k
    builder: &mut CodeBuilder<C>,
3014
2.06k
) -> Result<Instruction> {
3015
2.06k
    let ty = pop_reference_type(builder);
3016
2.06k
    builder.pop_operands(&[ValType::I32]);
3017
2.06k
    let table = table_index(ty, u, module)?;
3018
2.05k
    Ok(Instruction::TableSet { table })
3019
2.06k
}
wasm_smith::code_builder::table_set::<wasm_smith::config::SwarmConfig>
Line
Count
Source
3010
2.06k
fn table_set<C: Config>(
3011
2.06k
    u: &mut Unstructured,
3012
2.06k
    module: &ConfiguredModule<C>,
3013
2.06k
    builder: &mut CodeBuilder<C>,
3014
2.06k
) -> Result<Instruction> {
3015
2.06k
    let ty = pop_reference_type(builder);
3016
2.06k
    builder.pop_operands(&[ValType::I32]);
3017
2.06k
    let table = table_index(ty, u, module)?;
3018
2.05k
    Ok(Instruction::TableSet { table })
3019
2.06k
}
Unexecuted instantiation: wasm_smith::code_builder::table_set::<wasm_smith::config::DefaultConfig>
Unexecuted instantiation: wasm_smith::code_builder::table_set::<wasm_smith::config::SwarmConfig>
3020
3021
#[inline]
3022
15.9M
fn table_get_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
3023
15.9M
    module.config.reference_types_enabled()
3024
5.40M
        && builder.type_on_stack(ValType::I32)
3025
1.36M
        && module.tables.len() > 0
3026
15.9M
}
wasm_smith::code_builder::table_get_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
3022
7.19M
fn table_get_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
3023
7.19M
    module.config.reference_types_enabled()
3024
5.40M
        && builder.type_on_stack(ValType::I32)
3025
1.36M
        && module.tables.len() > 0
3026
7.19M
}
wasm_smith::code_builder::table_get_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
3022
8.74M
fn table_get_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
3023
8.74M
    module.config.reference_types_enabled()
3024
0
        && builder.type_on_stack(ValType::I32)
3025
0
        && module.tables.len() > 0
3026
8.74M
}
3027
3028
11.1k
fn table_get<C: Config>(
3029
11.1k
    u: &mut Unstructured,
3030
11.1k
    module: &ConfiguredModule<C>,
3031
11.1k
    builder: &mut CodeBuilder<C>,
3032
11.1k
) -> Result<Instruction> {
3033
11.1k
    builder.pop_operands(&[ValType::I32]);
3034
11.1k
    let idx = u.int_in_range(0..=module.tables.len() - 1)?;
3035
11.1k
    let ty = module.tables[idx].elem_ty;
3036
11.1k
    builder.push_operands(&[ty]);
3037
11.1k
    Ok(Instruction::TableGet { table: idx as u32 })
3038
11.1k
}
wasm_smith::code_builder::table_get::<wasm_smith::config::SwarmConfig>
Line
Count
Source
3028
11.1k
fn table_get<C: Config>(
3029
11.1k
    u: &mut Unstructured,
3030
11.1k
    module: &ConfiguredModule<C>,
3031
11.1k
    builder: &mut CodeBuilder<C>,
3032
11.1k
) -> Result<Instruction> {
3033
11.1k
    builder.pop_operands(&[ValType::I32]);
3034
11.1k
    let idx = u.int_in_range(0..=module.tables.len() - 1)?;
3035
11.1k
    let ty = module.tables[idx].elem_ty;
3036
11.1k
    builder.push_operands(&[ty]);
3037
11.1k
    Ok(Instruction::TableGet { table: idx as u32 })
3038
11.1k
}
Unexecuted instantiation: wasm_smith::code_builder::table_get::<wasm_smith::config::DefaultConfig>
Unexecuted instantiation: wasm_smith::code_builder::table_get::<wasm_smith::config::SwarmConfig>
3039
3040
#[inline]
3041
15.9M
fn table_size_valid<C: Config>(module: &ConfiguredModule<C>, _: &mut CodeBuilder<C>) -> bool {
3042
15.9M
    module.config.reference_types_enabled() && module.tables.len() > 0
3043
15.9M
}
wasm_smith::code_builder::table_size_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
3041
7.19M
fn table_size_valid<C: Config>(module: &ConfiguredModule<C>, _: &mut CodeBuilder<C>) -> bool {
3042
7.19M
    module.config.reference_types_enabled() && module.tables.len() > 0
3043
7.19M
}
wasm_smith::code_builder::table_size_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
3041
8.74M
fn table_size_valid<C: Config>(module: &ConfiguredModule<C>, _: &mut CodeBuilder<C>) -> bool {
3042
8.74M
    module.config.reference_types_enabled() && module.tables.len() > 0
3043
8.74M
}
3044
3045
289k
fn table_size<C: Config>(
3046
289k
    u: &mut Unstructured,
3047
289k
    module: &ConfiguredModule<C>,
3048
289k
    builder: &mut CodeBuilder<C>,
3049
289k
) -> Result<Instruction> {
3050
289k
    let table = u.int_in_range(0..=module.tables.len() - 1)? as u32;
3051
289k
    builder.push_operands(&[ValType::I32]);
3052
289k
    Ok(Instruction::TableSize { table })
3053
289k
}
wasm_smith::code_builder::table_size::<wasm_smith::config::SwarmConfig>
Line
Count
Source
3045
289k
fn table_size<C: Config>(
3046
289k
    u: &mut Unstructured,
3047
289k
    module: &ConfiguredModule<C>,
3048
289k
    builder: &mut CodeBuilder<C>,
3049
289k
) -> Result<Instruction> {
3050
289k
    let table = u.int_in_range(0..=module.tables.len() - 1)? as u32;
3051
289k
    builder.push_operands(&[ValType::I32]);
3052
289k
    Ok(Instruction::TableSize { table })
3053
289k
}
Unexecuted instantiation: wasm_smith::code_builder::table_size::<wasm_smith::config::DefaultConfig>
Unexecuted instantiation: wasm_smith::code_builder::table_size::<wasm_smith::config::SwarmConfig>
3054
3055
#[inline]
3056
15.9M
fn table_grow_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
3057
15.9M
    module.config.reference_types_enabled()
3058
10.7M
        && [ValType::ExternRef, ValType::FuncRef].iter().any(|ty| {
3059
10.7M
            builder.types_on_stack(&[*ty, ValType::I32])
3060
4.22M
                && module.tables.iter().any(|t| t.elem_ty == *ty)
3061
10.7M
        })
wasm_smith::code_builder::table_grow_valid::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
3058
10.7M
        && [ValType::ExternRef, ValType::FuncRef].iter().any(|ty| {
3059
10.7M
            builder.types_on_stack(&[*ty, ValType::I32])
3060
197k
                && module.tables.iter().any(|t| t.elem_ty == *ty)
3061
10.7M
        })
Unexecuted instantiation: wasm_smith::code_builder::table_grow_valid::<wasm_smith::config::DefaultConfig>::{closure#0}
Unexecuted instantiation: wasm_smith::code_builder::table_grow_valid::<wasm_smith::config::SwarmConfig>::{closure#0}
3062
15.9M
}
wasm_smith::code_builder::table_grow_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
3056
7.19M
fn table_grow_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
3057
7.19M
    module.config.reference_types_enabled()
3058
5.40M
        && [ValType::ExternRef, ValType::FuncRef].iter().any(|ty| {
3059
            builder.types_on_stack(&[*ty, ValType::I32])
3060
                && module.tables.iter().any(|t| t.elem_ty == *ty)
3061
5.40M
        })
3062
7.19M
}
wasm_smith::code_builder::table_grow_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
3056
8.74M
fn table_grow_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
3057
8.74M
    module.config.reference_types_enabled()
3058
0
        && [ValType::ExternRef, ValType::FuncRef].iter().any(|ty| {
3059
            builder.types_on_stack(&[*ty, ValType::I32])
3060
                && module.tables.iter().any(|t| t.elem_ty == *ty)
3061
0
        })
3062
8.74M
}
Unexecuted instantiation: wasm_smith::code_builder::table_grow_valid::<wasm_smith::config::SwarmConfig>
3063
3064
4.38k
fn table_grow<C: Config>(
3065
4.38k
    u: &mut Unstructured,
3066
4.38k
    module: &ConfiguredModule<C>,
3067
4.38k
    builder: &mut CodeBuilder<C>,
3068
4.38k
) -> Result<Instruction> {
3069
4.38k
    builder.pop_operands(&[ValType::I32]);
3070
4.38k
    let ty = pop_reference_type(builder);
3071
4.38k
    let table = table_index(ty, u, module)?;
3072
4.38k
    builder.push_operands(&[ValType::I32]);
3073
4.38k
    Ok(Instruction::TableGrow { table })
3074
4.38k
}
wasm_smith::code_builder::table_grow::<wasm_smith::config::SwarmConfig>
Line
Count
Source
3064
4.38k
fn table_grow<C: Config>(
3065
4.38k
    u: &mut Unstructured,
3066
4.38k
    module: &ConfiguredModule<C>,
3067
4.38k
    builder: &mut CodeBuilder<C>,
3068
4.38k
) -> Result<Instruction> {
3069
4.38k
    builder.pop_operands(&[ValType::I32]);
3070
4.38k
    let ty = pop_reference_type(builder);
3071
4.38k
    let table = table_index(ty, u, module)?;
3072
4.38k
    builder.push_operands(&[ValType::I32]);
3073
4.38k
    Ok(Instruction::TableGrow { table })
3074
4.38k
}
Unexecuted instantiation: wasm_smith::code_builder::table_grow::<wasm_smith::config::DefaultConfig>
Unexecuted instantiation: wasm_smith::code_builder::table_grow::<wasm_smith::config::SwarmConfig>
3075
3076
#[inline]
3077
15.9M
fn table_copy_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
3078
15.9M
    module.config.reference_types_enabled()
3079
5.40M
        && module.tables.len() > 0
3080
4.08M
        && builder.types_on_stack(&[ValType::I32, ValType::I32, ValType::I32])
3081
15.9M
}
wasm_smith::code_builder::table_copy_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
3077
7.19M
fn table_copy_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
3078
7.19M
    module.config.reference_types_enabled()
3079
5.40M
        && module.tables.len() > 0
3080
4.08M
        && builder.types_on_stack(&[ValType::I32, ValType::I32, ValType::I32])
3081
7.19M
}
wasm_smith::code_builder::table_copy_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
3077
8.74M
fn table_copy_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
3078
8.74M
    module.config.reference_types_enabled()
3079
0
        && module.tables.len() > 0
3080
0
        && builder.types_on_stack(&[ValType::I32, ValType::I32, ValType::I32])
3081
8.74M
}
3082
3083
1.20k
fn table_copy<C: Config>(
3084
1.20k
    u: &mut Unstructured,
3085
1.20k
    module: &ConfiguredModule<C>,
3086
1.20k
    builder: &mut CodeBuilder<C>,
3087
1.20k
) -> Result<Instruction> {
3088
1.20k
    builder.pop_operands(&[ValType::I32, ValType::I32, ValType::I32]);
3089
1.20k
    let src = u.int_in_range(0..=module.tables.len() - 1)? as u32;
3090
1.20k
    let dst = table_index(module.tables[src as usize].elem_ty, u, module)?;
3091
1.20k
    Ok(Instruction::TableCopy { src, dst })
3092
1.20k
}
wasm_smith::code_builder::table_copy::<wasm_smith::config::SwarmConfig>
Line
Count
Source
3083
1.20k
fn table_copy<C: Config>(
3084
1.20k
    u: &mut Unstructured,
3085
1.20k
    module: &ConfiguredModule<C>,
3086
1.20k
    builder: &mut CodeBuilder<C>,
3087
1.20k
) -> Result<Instruction> {
3088
1.20k
    builder.pop_operands(&[ValType::I32, ValType::I32, ValType::I32]);
3089
1.20k
    let src = u.int_in_range(0..=module.tables.len() - 1)? as u32;
3090
1.20k
    let dst = table_index(module.tables[src as usize].elem_ty, u, module)?;
3091
1.20k
    Ok(Instruction::TableCopy { src, dst })
3092
1.20k
}
Unexecuted instantiation: wasm_smith::code_builder::table_copy::<wasm_smith::config::DefaultConfig>
Unexecuted instantiation: wasm_smith::code_builder::table_copy::<wasm_smith::config::SwarmConfig>
3093
3094
#[inline]
3095
15.9M
fn table_init_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
3096
15.9M
    module.config.reference_types_enabled()
3097
5.40M
        && builder.allocs.table_init_possible
3098
1.54M
        && builder.types_on_stack(&[ValType::I32, ValType::I32, ValType::I32])
3099
15.9M
}
wasm_smith::code_builder::table_init_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
3095
7.19M
fn table_init_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
3096
7.19M
    module.config.reference_types_enabled()
3097
5.40M
        && builder.allocs.table_init_possible
3098
1.54M
        && builder.types_on_stack(&[ValType::I32, ValType::I32, ValType::I32])
3099
7.19M
}
wasm_smith::code_builder::table_init_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
3095
8.74M
fn table_init_valid<C: Config>(module: &ConfiguredModule<C>, builder: &mut CodeBuilder<C>) -> bool {
3096
8.74M
    module.config.reference_types_enabled()
3097
0
        && builder.allocs.table_init_possible
3098
0
        && builder.types_on_stack(&[ValType::I32, ValType::I32, ValType::I32])
3099
8.74M
}
3100
3101
1.05k
fn table_init<C: Config>(
3102
1.05k
    u: &mut Unstructured,
3103
1.05k
    module: &ConfiguredModule<C>,
3104
1.05k
    builder: &mut CodeBuilder<C>,
3105
1.05k
) -> Result<Instruction> {
3106
1.05k
    builder.pop_operands(&[ValType::I32, ValType::I32, ValType::I32]);
3107
1.05k
    let segments = module
3108
1.05k
        .elems
3109
1.05k
        .iter()
3110
1.05k
        .enumerate()
3111
32.9k
        .filter(|(_, e)| module.tables.iter().any(|t| t.elem_ty == e.ty))
wasm_smith::code_builder::table_init::<wasm_smith::config::SwarmConfig>::{closure#0}
Line
Count
Source
3111
15.0k
        .filter(|(_, e)| module.tables.iter().any(|t| t.elem_ty == e.ty))
Unexecuted instantiation: wasm_smith::code_builder::table_init::<wasm_smith::config::DefaultConfig>::{closure#0}
Unexecuted instantiation: wasm_smith::code_builder::table_init::<wasm_smith::config::SwarmConfig>::{closure#0}
3112
12.8k
        .map(|(i, _)| i)
3113
1.05k
        .collect::<Vec<_>>();
3114
1.05k
    let segment = *u.choose(&segments)?;
3115
1.05k
    let table = table_index(module.elems[segment].ty, u, module)?;
3116
1.05k
    Ok(Instruction::TableInit {
3117
1.05k
        segment: segment as u32,
3118
1.05k
        table,
3119
1.05k
    })
3120
1.05k
}
wasm_smith::code_builder::table_init::<wasm_smith::config::SwarmConfig>
Line
Count
Source
3101
1.05k
fn table_init<C: Config>(
3102
1.05k
    u: &mut Unstructured,
3103
1.05k
    module: &ConfiguredModule<C>,
3104
1.05k
    builder: &mut CodeBuilder<C>,
3105
1.05k
) -> Result<Instruction> {
3106
1.05k
    builder.pop_operands(&[ValType::I32, ValType::I32, ValType::I32]);
3107
1.05k
    let segments = module
3108
1.05k
        .elems
3109
1.05k
        .iter()
3110
1.05k
        .enumerate()
3111
1.05k
        .filter(|(_, e)| module.tables.iter().any(|t| t.elem_ty == e.ty))
3112
1.05k
        .map(|(i, _)| i)
3113
1.05k
        .collect::<Vec<_>>();
3114
1.05k
    let segment = *u.choose(&segments)?;
3115
1.05k
    let table = table_index(module.elems[segment].ty, u, module)?;
3116
1.05k
    Ok(Instruction::TableInit {
3117
1.05k
        segment: segment as u32,
3118
1.05k
        table,
3119
1.05k
    })
3120
1.05k
}
Unexecuted instantiation: wasm_smith::code_builder::table_init::<wasm_smith::config::DefaultConfig>
Unexecuted instantiation: wasm_smith::code_builder::table_init::<wasm_smith::config::SwarmConfig>
3121
3122
#[inline]
3123
15.9M
fn elem_drop_valid<C: Config>(module: &ConfiguredModule<C>, _builder: &mut CodeBuilder<C>) -> bool {
3124
15.9M
    module.config.reference_types_enabled() && module.elems.len() > 0
3125
15.9M
}
wasm_smith::code_builder::elem_drop_valid::<wasm_smith::config::SwarmConfig>
Line
Count
Source
3123
7.19M
fn elem_drop_valid<C: Config>(module: &ConfiguredModule<C>, _builder: &mut CodeBuilder<C>) -> bool {
3124
7.19M
    module.config.reference_types_enabled() && module.elems.len() > 0
3125
7.19M
}
wasm_smith::code_builder::elem_drop_valid::<wasm_smith::config::DefaultConfig>
Line
Count
Source
3123
8.74M
fn elem_drop_valid<C: Config>(module: &ConfiguredModule<C>, _builder: &mut CodeBuilder<C>) -> bool {
3124
8.74M
    module.config.reference_types_enabled() && module.elems.len() > 0
3125
8.74M
}
3126
3127
346k
fn elem_drop<C: Config>(
3128
346k
    u: &mut Unstructured,
3129
346k
    module: &ConfiguredModule<C>,
3130
346k
    _builder: &mut CodeBuilder<C>,
3131
346k
) -> Result<Instruction> {
3132
346k
    let segment = u.int_in_range(0..=module.elems.len() - 1)? as u32;
3133
346k
    Ok(Instruction::ElemDrop { segment })
3134
346k
}
wasm_smith::code_builder::elem_drop::<wasm_smith::config::SwarmConfig>
Line
Count
Source
3127
346k
fn elem_drop<C: Config>(
3128
346k
    u: &mut Unstructured,
3129
346k
    module: &ConfiguredModule<C>,
3130
346k
    _builder: &mut CodeBuilder<C>,
3131
346k
) -> Result<Instruction> {
3132
346k
    let segment = u.int_in_range(0..=module.elems.len() - 1)? as u32;
3133
346k
    Ok(Instruction::ElemDrop { segment })
3134
346k
}
Unexecuted instantiation: wasm_smith::code_builder::elem_drop::<wasm_smith::config::DefaultConfig>
Unexecuted instantiation: wasm_smith::code_builder::elem_drop::<wasm_smith::config::SwarmConfig>
3135
3136
91.6k
fn pop_reference_type<C: Config>(builder: &mut CodeBuilder<C>) -> ValType {
3137
91.6k
    if builder.type_on_stack(ValType::ExternRef) {
3138
10.3k
        builder.pop_operands(&[ValType::ExternRef]);
3139
10.3k
        ValType::ExternRef
3140
    } else {
3141
81.2k
        builder.pop_operands(&[ValType::FuncRef]);
3142
81.2k
        ValType::FuncRef
3143
    }
3144
91.6k
}
wasm_smith::code_builder::pop_reference_type::<wasm_smith::config::SwarmConfig>
Line
Count
Source
3136
91.6k
fn pop_reference_type<C: Config>(builder: &mut CodeBuilder<C>) -> ValType {
3137
91.6k
    if builder.type_on_stack(ValType::ExternRef) {
3138
10.3k
        builder.pop_operands(&[ValType::ExternRef]);
3139
10.3k
        ValType::ExternRef
3140
    } else {
3141
81.2k
        builder.pop_operands(&[ValType::FuncRef]);
3142
81.2k
        ValType::FuncRef
3143
    }
3144
91.6k
}
Unexecuted instantiation: wasm_smith::code_builder::pop_reference_type::<wasm_smith::config::DefaultConfig>
Unexecuted instantiation: wasm_smith::code_builder::pop_reference_type::<wasm_smith::config::SwarmConfig>
3145
3146
12.1k
fn table_index<C: Config>(
3147
12.1k
    ty: ValType,
3148
12.1k
    u: &mut Unstructured,
3149
12.1k
    module: &ConfiguredModule<C>,
3150
12.1k
) -> Result<u32> {
3151
12.1k
    let tables = module
3152
12.1k
        .tables
3153
12.1k
        .iter()
3154
12.1k
        .enumerate()
3155
295k
        .filter(|(_, t)| t.elem_ty == ty)
3156
183k
        .map(|t| t.0 as u32)
3157
12.1k
        .collect::<Vec<_>>();
3158
12.1k
    Ok(*u.choose(&tables)?)
3159
12.1k
}
wasm_smith::code_builder::table_index::<wasm_smith::config::SwarmConfig>
Line
Count
Source
3146
12.1k
fn table_index<C: Config>(
3147
12.1k
    ty: ValType,
3148
12.1k
    u: &mut Unstructured,
3149
12.1k
    module: &ConfiguredModule<C>,
3150
12.1k
) -> Result<u32> {
3151
12.1k
    let tables = module
3152
12.1k
        .tables
3153
12.1k
        .iter()
3154
12.1k
        .enumerate()
3155
12.1k
        .filter(|(_, t)| t.elem_ty == ty)
3156
12.1k
        .map(|t| t.0 as u32)
3157
12.1k
        .collect::<Vec<_>>();
3158
12.1k
    Ok(*u.choose(&tables)?)
3159
12.1k
}
Unexecuted instantiation: wasm_smith::code_builder::table_index::<wasm_smith::config::DefaultConfig>
Unexecuted instantiation: wasm_smith::code_builder::table_index::<wasm_smith::config::SwarmConfig>