Nikolay Korovaiko 9 rokov pred
rodič
commit
79c541ba68

+ 374 - 0
test/wasm.simd/binaryArithmeticTests.js

@@ -0,0 +1,374 @@
+//-------------------------------------------------------------------------------------------------------
+// Copyright (C) Microsoft Corporation and contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
+//-------------------------------------------------------------------------------------------------------
+let passed = true;
+
+function check(expected, funName, args) {
+    checkInternal(expected, (a, b) => a == b, funName, args);
+}
+
+function checkNaN(funName, args) {
+    checkInternal(Number.NaN, (a, b) => Number.isNaN(a), funName, args);
+}
+
+function checkInternal(expected, eq, funName, args) {
+    let fun = eval(funName);
+    var result;
+    try {
+        result = fun(...args);
+    } catch (e) {
+        print(e);
+        result = e.message;
+    }
+
+    if (!eq(result, expected)) {
+        passed = false;
+        print(`${funName}(${[...args]}) produced ${result}, expected ${expected}`);
+    }
+}
+
+let ffi = {};
+var ii;
+var mod;
+var exports;
+
+mod = new WebAssembly.Module(readbuffer('binaryArithmeticTests.wasm'));
+exports = new WebAssembly.Instance(mod, ffi).exports;
+
+tests = [
+    //func_i32x4_add_3  
+    {
+        func: "func_i32x4_add_3",
+        args: [128, 128, 128, 128, 2, 2, 2, 2],
+        expected: 130
+    },
+    {
+        func: "func_i32x4_add_3",
+        args: [-1, -1, -1, -1, 2, 2, 2, 2],
+        expected: 1
+    },
+    //func_i32x4_sub_3  
+    {
+        func: "func_i32x4_sub_3",
+        args: [128, 128, 128, 128, 28, 28, 28, 28],
+        expected: 100
+    },
+    {
+        func: "func_i32x4_sub_3",
+        args: [-2147483648, -2147483648, -2147483648, -2147483648, 1, 1, 1, 1],
+        expected: 2147483647
+    },
+    //func_i32x4_mul_3  
+    {
+        func: "func_i32x4_mul_3",
+        args: [55, 55, 55, 55, 2, 2, 2, 2],
+        expected: 110
+    },
+    {
+        func: "func_i32x4_mul_3",
+        args: [2147483647, 2147483647, 2147483647, 2147483647, 2, 2, 2, 2],
+        expected: -2
+    },
+    //func_i32x4_shl_3  
+    {
+        func: "func_i32x4_shl_3",
+        args: [1, 1, 1, 1, 31, 31, 31, 31],
+        expected: -2147483648
+    },
+    {
+        func: "func_i32x4_shl_3",
+        args: [1, 1, 1, 1, 32, 32, 32, 32],
+        expected: 1
+    },
+    //func_i32x4_shr_3_u  
+    {
+        func: "func_i32x4_shr_3_u",
+        args: [-2147483648, -2147483648, -2147483648, -2147483648, 31, 31, 31, 31],
+        expected: 1
+    },
+    {
+        func: "func_i32x4_shr_3_u",
+        args: [-2147483648, -2147483648, -2147483648, -2147483648, 32, 32, 32, 32],
+        expected: -2147483648
+    },
+    //func_i32x4_shr_3_s  
+    {
+        func: "func_i32x4_shr_3_s",
+        args: [-2147483648, -2147483648, -2147483648, -2147483648, 1, 1, 1, 1],
+        expected: -1073741824
+    },
+    {
+        func: "func_i32x4_shr_3_s",
+        args: [-2147483648, -2147483648, -2147483648, -2147483648, 31, 31, 31, 31],
+        expected: -1
+    },
+    //func_i16x8_add_3_u  
+    {
+        func: "func_i16x8_add_3_u",
+        args: [128, 128, 128, 128, 128, 128, 128, 128, 2, 2, 2, 2, 2, 2, 2, 2],
+        expected: 130
+    },
+    {
+        func: "func_i16x8_add_3_u",
+        args: [65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 2, 2, 2, 2, 2, 2, 2, 2],
+        expected: 1
+    },
+    // (export  "func_i16x8_addsaturate_3_s_u") 
+    {
+        func: "func_i16x8_addsaturate_3_s_u",
+        args: [128, 128, 128, 128, 128, 128, 128, 128, 2, 2, 2, 2, 2, 2, 2, 2],
+        expected: 130
+    },
+    {
+        func: "func_i16x8_addsaturate_3_s_u",
+        args: [32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2, 2, 2, 2, 2, 2, 2, 2],
+        expected: 32767
+    },
+    //func_i16x8_sub_3_u  
+    {
+        func: "func_i16x8_sub_3_u",
+        args: [128, 128, 128, 128, 128, 128, 128, 128, 28, 28, 28, 28, 28, 28, 28, 28],
+        expected: 100
+    },
+    {
+        func: "func_i16x8_sub_3_u",
+        args: [-32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, 1, 1, 1, 1, 1, 1, 1, 1],
+        expected: 32767
+    },
+    //func_i16x8_subsaturate_3_s_u  
+    {
+        func: "func_i16x8_subsaturate_3_s_u",
+        args: [128, 128, 128, 128, 128, 128, 128, 128, 28, 28, 28, 28, 28, 28, 28, 28],
+        expected: 100
+    },
+    {
+        func: "func_i16x8_subsaturate_3_s_u",
+        args: [-32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, 1, 1, 1, 1, 1, 1, 1, 1],
+        expected: 32768
+    },
+    //func_i16x8_mul_3_u
+    {
+        func: "func_i16x8_mul_3_u",
+        args: [55, 55, 55, 55, 55, 55, 55, 55, 2, 2, 2, 2, 2, 2, 2, 2],
+        expected: 110
+    },
+    {
+        func: "func_i16x8_mul_3_u",
+        args: [32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2, 2, 2, 2, 2, 2, 2, 2],
+        expected: 65534
+    },
+    //func_i16x8_shl_3  
+    {
+        func: "func_i16x8_shl_3_u",
+        args: [1, 1, 1, 1, 1, 1, 1, 1, 15, 15, 15, 15, 15, 15, 15, 15],
+        expected: 32768
+    },
+    {
+        func: "func_i16x8_shl_3_u",
+        args: [1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16, 16, 16, 16],
+        expected: 1
+    },
+    //func_i16x8_shr_3_u  
+    {
+        func: "func_i16x8_shr_3_u_u",
+        args: [-32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, 15, 15, 15, 15, 15, 15, 15, 15],
+        expected: 1
+    },
+    {
+        func: "func_i16x8_shr_3_u_u",
+        args: [-32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, 16, 16, 16, 16, 16, 16, 16, 16],
+        expected: 32768
+    },
+    //func_i16x8_shr_3_s  
+    {
+        func: "func_i16x8_shr_3_s_u",
+        args: [-32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, 1, 1, 1, 1, 1, 1, 1, 1],
+        expected: 49152
+    },
+    {
+        func: "func_i16x8_shr_3_s_u",
+        args: [-32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, 15, 15, 15, 15, 15, 15, 15, 15],
+        expected: 65535
+    },
+    //func_i8x16_add_3_u  
+    {
+        func: "func_i8x16_add_3_u",
+        args: [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
+        expected: 130
+    },
+    {
+        func: "func_i8x16_add_3_u",
+        args: [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
+        expected: 1
+    },
+    //func_i8x16_addsaturate_3_s_u
+    {
+        func: "func_i8x16_addsaturate_3_s_u",
+        args: [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
+        expected: 130
+    },
+    {
+        func: "func_i8x16_addsaturate_3_s_u",
+        args: [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
+        expected: 1
+    },
+    //func_i8x16_sub_3_u  
+    {
+        func: "func_i8x16_sub_3_u",
+        args: [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28],
+        expected: 100
+    },
+    {
+        func: "func_i8x16_sub_3_u",
+        args: [-128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+        expected: 127
+    },
+    //func_i8x16_subsaturate_3_s_u  
+    {
+        func: "func_i8x16_subsaturate_3_s_u",
+        args: [118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28],
+        expected: 90
+    },
+    {
+        func: "func_i8x16_subsaturate_3_s_u",
+        args: [-128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+        expected: 128
+    },
+    //func_i8x16_mul_3_u
+    {
+        func: "func_i8x16_mul_3_u",
+        args: [55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
+        expected: 110
+    },
+    {
+        func: "func_i8x16_mul_3_u",
+        args: [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
+        expected: 254
+    },
+    //func_i8x16_shl_3  
+    {
+        func: "func_i8x16_shl_3_u",
+        args: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7],
+        expected: 128
+    },
+    {
+        func: "func_i8x16_shl_3_u",
+        args: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8],
+        expected: 1
+    },
+    //func_i8x16_shr_3_u  
+    {
+        func: "func_i8x16_shr_3_u_u",
+        args: [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7],
+        expected: 1
+    },
+    {
+        func: "func_i8x16_shr_3_u_u",
+        args: [-128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8],
+        expected: 128
+    },
+    //func_i8x16_shr_3_s  
+    {
+        func: "func_i8x16_shr_3_s_u",
+        args: [-128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+        expected: 192
+    },
+    {
+        func: "func_i8x16_shr_3_s_u",
+        args: [-128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7],
+        expected: 255
+    },
+    //func_f32x4_add_3  
+    {
+        func: "func_f32x4_add_3",
+        args: [128, 128, 128, 128, 2, 2, 2, 2],
+        expected: 130
+    },
+    {
+        func: "func_f32x4_add_3",
+        args: [1073741824, 1073741824, 1073741824, 1073741824, 2, 2, 2, 2],
+        expected: 1073741824
+    },
+    //func_f32x4_sub_3  
+    {
+        func: "func_f32x4_sub_3",
+        args: [128, 128, 128, 128, 28, 28, 28, 28],
+        expected: 100
+    },
+    {
+        func: "func_f32x4_sub_3",
+        args: [-1073741824, -1073741824, -1073741824, -1073741824, 1, 1, 1, 1],
+        expected: -1073741824
+    },
+    //func_f32x4_mul_3  
+    {
+        func: "func_f32x4_mul_3",
+        args: [55, 55, 55, 55, 2, 2, 2, 2],
+        expected: 110
+    },
+    {
+        func: "func_f32x4_mul_3",
+        args: [1073741824, 1073741824, 1073741824, 1073741824, 16, 16, 16, 16],
+        expected: 17179869184
+    },
+    //func_f32x4_div_3  
+    {
+        func: "func_f32x4_div_3",
+        args: [110, 110, 110, 110, 2, 2, 2, 2],
+        expected: 55
+    },
+    {
+        func: "func_f32x4_div_3",
+        args: [1073741824, 1073741824, 1073741824, 1073741824, 16, 16, 16, 16],
+        expected: 67108864
+    },
+    //func_f32x4_min_3  
+    {
+        func: "func_f32x4_min_3",
+        args: [-10, -10, -10, -10, 5, 5, 5, 5],
+        expected: -10
+    },
+    //func_f32x4_max_3 
+    {
+        func: "func_f32x4_max_3",
+        args: [-10, -10, -10, -10, 5, 5, 5, 5],
+        expected: 5
+    },
+];
+
+for (let t of tests) {
+    check(t.expected, "exports." + t.func, t.args);
+}
+
+//NaN Tests
+nanTests = [
+    //func_f32x4_min_3  
+    {
+        func: "func_f32x4_min_3",
+        args: [Number.NaN, Number.NaN, Number.NaN, Number.NaN, 2, 2, 2, 2]
+    },
+    {
+        func: "func_f32x4_min_3",
+        args: [2, 2, 2, 2, Number.NaN, Number.NaN, Number.NaN, Number.NaN]
+    },
+    //func_f32x4_max_3  
+    {
+        func: "func_f32x4_max_3",
+        args: [Number.NaN, Number.NaN, Number.NaN, Number.NaN, 2, 2, 2, 2]
+    },
+    {
+        func: "func_f32x4_max_3",
+        args: [2, 2, 2, 2, Number.NaN, Number.NaN, Number.NaN, Number.NaN]
+    },
+
+];
+
+for (let t of nanTests) {
+    checkNaN("exports." + t.func, t.args);
+}
+
+
+if (passed) {
+    print("Passed");
+}

BIN
test/wasm.simd/binaryArithmeticTests.wasm


+ 1318 - 0
test/wasm.simd/binaryArithmeticTests.wast

@@ -0,0 +1,1318 @@
+;;-------------------------------------------------------------------------------------------------------
+;; Copyright (C) Microsoft Corporation and contributors. All rights reserved.
+;; Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
+;;-------------------------------------------------------------------------------------------------------
+ 
+(module 
+    (func 
+        (export  "func_i32x4_add_3")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i32x4  i32x4  i32x4)  
+        (set_local 
+            8 
+            (i32x4.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+            ) 
+        ) 
+        (set_local 
+            9 
+            (i32x4.build 
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            10 
+            (i32x4.add 
+                (get_local  8)  
+                (get_local  9)  
+            ) 
+        ) 
+        (i32x4.extractLane 
+            (get_local  10)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i32x4_sub_3")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i32x4  i32x4  i32x4)  
+        (set_local 
+            8 
+            (i32x4.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+            ) 
+        ) 
+        (set_local 
+            9 
+            (i32x4.build 
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            10 
+            (i32x4.sub 
+                (get_local  8)  
+                (get_local  9)  
+            ) 
+        ) 
+        (i32x4.extractLane 
+            (get_local  10)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i32x4_mul_3")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i32x4  i32x4  i32x4)  
+        (set_local 
+            8 
+            (i32x4.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+            ) 
+        ) 
+        (set_local 
+            9 
+            (i32x4.build 
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            10 
+            (i32x4.mul 
+                (get_local  8)  
+                (get_local  9)  
+            ) 
+        ) 
+        (i32x4.extractLane 
+            (get_local  10)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i32x4_shl_3")  
+        (param  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i32x4)  
+        (set_local 
+            5 
+            (i32x4.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+            ) 
+        ) 
+        (set_local 
+            5 
+            (i32x4.shl 
+                (get_local  5)  
+                (get_local  4)  
+            ) 
+        ) 
+        (i32x4.extractLane 
+            (get_local  5)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i32x4_shr_3_s")  
+        (param  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i32x4)  
+        (set_local 
+            5 
+            (i32x4.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+            ) 
+        ) 
+        (set_local 
+            5 
+            (i32x4.shr_s 
+                (get_local  5)  
+                (get_local  4)  
+            ) 
+        ) 
+        (i32x4.extractLane 
+            (get_local  5)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i32x4_shr_3_u")  
+        (param  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i32x4)  
+        (set_local 
+            5 
+            (i32x4.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+            ) 
+        ) 
+        (set_local 
+            5 
+            (i32x4.shr_u 
+                (get_local  5)  
+                (get_local  4)  
+            ) 
+        ) 
+        (i32x4.extractLane 
+            (get_local  5)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i16x8_add_3_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i16x8  i16x8  i16x8)  
+        (set_local 
+            16 
+            (i16x8.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            17 
+            (i16x8.build 
+                (get_local  8)  
+                (get_local  9)  
+                (get_local  10)  
+                (get_local  11)  
+                (get_local  12)  
+                (get_local  13)  
+                (get_local  14)  
+                (get_local  15)  
+            ) 
+        ) 
+        (set_local 
+            18 
+            (i16x8.add 
+                (get_local  16)  
+                (get_local  17)  
+            ) 
+        ) 
+        (i16x8.extractLane_u 
+            (get_local  18)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i16x8_addsaturate_3_s_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i16x8  i16x8  i16x8)  
+        (set_local 
+            16 
+            (i16x8.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            17 
+            (i16x8.build 
+                (get_local  8)  
+                (get_local  9)  
+                (get_local  10)  
+                (get_local  11)  
+                (get_local  12)  
+                (get_local  13)  
+                (get_local  14)  
+                (get_local  15)  
+            ) 
+        ) 
+        (set_local 
+            18 
+            (i16x8.addsaturate_s 
+                (get_local  16)  
+                (get_local  17)  
+            ) 
+        ) 
+        (i16x8.extractLane_u 
+            (get_local  18)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i16x8_addsaturate_3_u_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i16x8  i16x8  i16x8)  
+        (set_local 
+            16 
+            (i16x8.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            17 
+            (i16x8.build 
+                (get_local  8)  
+                (get_local  9)  
+                (get_local  10)  
+                (get_local  11)  
+                (get_local  12)  
+                (get_local  13)  
+                (get_local  14)  
+                (get_local  15)  
+            ) 
+        ) 
+        (set_local 
+            18 
+            (i16x8.addsaturate_u 
+                (get_local  16)  
+                (get_local  17)  
+            ) 
+        ) 
+        (i16x8.extractLane_u 
+            (get_local  18)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i16x8_sub_3_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i16x8  i16x8  i16x8)  
+        (set_local 
+            16 
+            (i16x8.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            17 
+            (i16x8.build 
+                (get_local  8)  
+                (get_local  9)  
+                (get_local  10)  
+                (get_local  11)  
+                (get_local  12)  
+                (get_local  13)  
+                (get_local  14)  
+                (get_local  15)  
+            ) 
+        ) 
+        (set_local 
+            18 
+            (i16x8.sub 
+                (get_local  16)  
+                (get_local  17)  
+            ) 
+        ) 
+        (i16x8.extractLane_u 
+            (get_local  18)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i16x8_subsaturate_3_s_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i16x8  i16x8  i16x8)  
+        (set_local 
+            16 
+            (i16x8.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            17 
+            (i16x8.build 
+                (get_local  8)  
+                (get_local  9)  
+                (get_local  10)  
+                (get_local  11)  
+                (get_local  12)  
+                (get_local  13)  
+                (get_local  14)  
+                (get_local  15)  
+            ) 
+        ) 
+        (set_local 
+            18 
+            (i16x8.subsaturate_s 
+                (get_local  16)  
+                (get_local  17)  
+            ) 
+        ) 
+        (i16x8.extractLane_u 
+            (get_local  18)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i16x8_subsaturate_3_u_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i16x8  i16x8  i16x8)  
+        (set_local 
+            16 
+            (i16x8.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            17 
+            (i16x8.build 
+                (get_local  8)  
+                (get_local  9)  
+                (get_local  10)  
+                (get_local  11)  
+                (get_local  12)  
+                (get_local  13)  
+                (get_local  14)  
+                (get_local  15)  
+            ) 
+        ) 
+        (set_local 
+            18 
+            (i16x8.subsaturate_u 
+                (get_local  16)  
+                (get_local  17)  
+            ) 
+        ) 
+        (i16x8.extractLane_u 
+            (get_local  18)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i16x8_mul_3_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i16x8  i16x8  i16x8)  
+        (set_local 
+            16 
+            (i16x8.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            17 
+            (i16x8.build 
+                (get_local  8)  
+                (get_local  9)  
+                (get_local  10)  
+                (get_local  11)  
+                (get_local  12)  
+                (get_local  13)  
+                (get_local  14)  
+                (get_local  15)  
+            ) 
+        ) 
+        (set_local 
+            18 
+            (i16x8.mul 
+                (get_local  16)  
+                (get_local  17)  
+            ) 
+        ) 
+        (i16x8.extractLane_u 
+            (get_local  18)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i16x8_shl_3_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i16x8)  
+        (set_local 
+            9 
+            (i16x8.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            9 
+            (i16x8.shl 
+                (get_local  9)  
+                (get_local  8)  
+            ) 
+        ) 
+        (i16x8.extractLane_u 
+            (get_local  9)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i16x8_shr_3_s_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i16x8)  
+        (set_local 
+            9 
+            (i16x8.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            9 
+            (i16x8.shr_s 
+                (get_local  9)  
+                (get_local  8)  
+            ) 
+        ) 
+        (i16x8.extractLane_u 
+            (get_local  9)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i16x8_shr_3_u_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i16x8)  
+        (set_local 
+            9 
+            (i16x8.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            9 
+            (i16x8.shr_u 
+                (get_local  9)  
+                (get_local  8)  
+            ) 
+        ) 
+        (i16x8.extractLane_u 
+            (get_local  9)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i8x16_add_3_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i8x16  i8x16  i8x16)  
+        (set_local 
+            32 
+            (i8x16.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+                (get_local  8)  
+                (get_local  9)  
+                (get_local  10)  
+                (get_local  11)  
+                (get_local  12)  
+                (get_local  13)  
+                (get_local  14)  
+                (get_local  15)  
+            ) 
+        ) 
+        (set_local 
+            33 
+            (i8x16.build 
+                (get_local  16)  
+                (get_local  17)  
+                (get_local  18)  
+                (get_local  19)  
+                (get_local  20)  
+                (get_local  21)  
+                (get_local  22)  
+                (get_local  23)  
+                (get_local  24)  
+                (get_local  25)  
+                (get_local  26)  
+                (get_local  27)  
+                (get_local  28)  
+                (get_local  29)  
+                (get_local  30)  
+                (get_local  31)  
+            ) 
+        ) 
+        (set_local 
+            34 
+            (i8x16.add 
+                (get_local  32)  
+                (get_local  33)  
+            ) 
+        ) 
+        (i8x16.extractLane_u 
+            (get_local  34)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i8x16_addsaturate_3_s_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i8x16  i8x16  i8x16)  
+        (set_local 
+            32 
+            (i8x16.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+                (get_local  8)  
+                (get_local  9)  
+                (get_local  10)  
+                (get_local  11)  
+                (get_local  12)  
+                (get_local  13)  
+                (get_local  14)  
+                (get_local  15)  
+            ) 
+        ) 
+        (set_local 
+            33 
+            (i8x16.build 
+                (get_local  16)  
+                (get_local  17)  
+                (get_local  18)  
+                (get_local  19)  
+                (get_local  20)  
+                (get_local  21)  
+                (get_local  22)  
+                (get_local  23)  
+                (get_local  24)  
+                (get_local  25)  
+                (get_local  26)  
+                (get_local  27)  
+                (get_local  28)  
+                (get_local  29)  
+                (get_local  30)  
+                (get_local  31)  
+            ) 
+        ) 
+        (set_local 
+            34 
+            (i8x16.addsaturate_s 
+                (get_local  32)  
+                (get_local  33)  
+            ) 
+        ) 
+        (i8x16.extractLane_u 
+            (get_local  34)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i8x16_addsaturate_3_u_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i8x16  i8x16  i8x16)  
+        (set_local 
+            32 
+            (i8x16.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+                (get_local  8)  
+                (get_local  9)  
+                (get_local  10)  
+                (get_local  11)  
+                (get_local  12)  
+                (get_local  13)  
+                (get_local  14)  
+                (get_local  15)  
+            ) 
+        ) 
+        (set_local 
+            33 
+            (i8x16.build 
+                (get_local  16)  
+                (get_local  17)  
+                (get_local  18)  
+                (get_local  19)  
+                (get_local  20)  
+                (get_local  21)  
+                (get_local  22)  
+                (get_local  23)  
+                (get_local  24)  
+                (get_local  25)  
+                (get_local  26)  
+                (get_local  27)  
+                (get_local  28)  
+                (get_local  29)  
+                (get_local  30)  
+                (get_local  31)  
+            ) 
+        ) 
+        (set_local 
+            34 
+            (i8x16.addsaturate_u 
+                (get_local  32)  
+                (get_local  33)  
+            ) 
+        ) 
+        (i8x16.extractLane_u 
+            (get_local  34)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i8x16_sub_3_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i8x16  i8x16  i8x16)  
+        (set_local 
+            32 
+            (i8x16.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+                (get_local  8)  
+                (get_local  9)  
+                (get_local  10)  
+                (get_local  11)  
+                (get_local  12)  
+                (get_local  13)  
+                (get_local  14)  
+                (get_local  15)  
+            ) 
+        ) 
+        (set_local 
+            33 
+            (i8x16.build 
+                (get_local  16)  
+                (get_local  17)  
+                (get_local  18)  
+                (get_local  19)  
+                (get_local  20)  
+                (get_local  21)  
+                (get_local  22)  
+                (get_local  23)  
+                (get_local  24)  
+                (get_local  25)  
+                (get_local  26)  
+                (get_local  27)  
+                (get_local  28)  
+                (get_local  29)  
+                (get_local  30)  
+                (get_local  31)  
+            ) 
+        ) 
+        (set_local 
+            34 
+            (i8x16.sub 
+                (get_local  32)  
+                (get_local  33)  
+            ) 
+        ) 
+        (i8x16.extractLane_u 
+            (get_local  34)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i8x16_subsaturate_3_s_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i8x16  i8x16  i8x16)  
+        (set_local 
+            32 
+            (i8x16.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+                (get_local  8)  
+                (get_local  9)  
+                (get_local  10)  
+                (get_local  11)  
+                (get_local  12)  
+                (get_local  13)  
+                (get_local  14)  
+                (get_local  15)  
+            ) 
+        ) 
+        (set_local 
+            33 
+            (i8x16.build 
+                (get_local  16)  
+                (get_local  17)  
+                (get_local  18)  
+                (get_local  19)  
+                (get_local  20)  
+                (get_local  21)  
+                (get_local  22)  
+                (get_local  23)  
+                (get_local  24)  
+                (get_local  25)  
+                (get_local  26)  
+                (get_local  27)  
+                (get_local  28)  
+                (get_local  29)  
+                (get_local  30)  
+                (get_local  31)  
+            ) 
+        ) 
+        (set_local 
+            34 
+            (i8x16.subsaturate_s 
+                (get_local  32)  
+                (get_local  33)  
+            ) 
+        ) 
+        (i8x16.extractLane_u 
+            (get_local  34)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i8x16_subsaturate_3_u_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i8x16  i8x16  i8x16)  
+        (set_local 
+            32 
+            (i8x16.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+                (get_local  8)  
+                (get_local  9)  
+                (get_local  10)  
+                (get_local  11)  
+                (get_local  12)  
+                (get_local  13)  
+                (get_local  14)  
+                (get_local  15)  
+            ) 
+        ) 
+        (set_local 
+            33 
+            (i8x16.build 
+                (get_local  16)  
+                (get_local  17)  
+                (get_local  18)  
+                (get_local  19)  
+                (get_local  20)  
+                (get_local  21)  
+                (get_local  22)  
+                (get_local  23)  
+                (get_local  24)  
+                (get_local  25)  
+                (get_local  26)  
+                (get_local  27)  
+                (get_local  28)  
+                (get_local  29)  
+                (get_local  30)  
+                (get_local  31)  
+            ) 
+        ) 
+        (set_local 
+            34 
+            (i8x16.subsaturate_u 
+                (get_local  32)  
+                (get_local  33)  
+            ) 
+        ) 
+        (i8x16.extractLane_u 
+            (get_local  34)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i8x16_mul_3_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i8x16  i8x16  i8x16)  
+        (set_local 
+            32 
+            (i8x16.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+                (get_local  8)  
+                (get_local  9)  
+                (get_local  10)  
+                (get_local  11)  
+                (get_local  12)  
+                (get_local  13)  
+                (get_local  14)  
+                (get_local  15)  
+            ) 
+        ) 
+        (set_local 
+            33 
+            (i8x16.build 
+                (get_local  16)  
+                (get_local  17)  
+                (get_local  18)  
+                (get_local  19)  
+                (get_local  20)  
+                (get_local  21)  
+                (get_local  22)  
+                (get_local  23)  
+                (get_local  24)  
+                (get_local  25)  
+                (get_local  26)  
+                (get_local  27)  
+                (get_local  28)  
+                (get_local  29)  
+                (get_local  30)  
+                (get_local  31)  
+            ) 
+        ) 
+        (set_local 
+            34 
+            (i8x16.mul 
+                (get_local  32)  
+                (get_local  33)  
+            ) 
+        ) 
+        (i8x16.extractLane_u 
+            (get_local  34)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i8x16_shl_3_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i8x16)  
+        (set_local 
+            17 
+            (i8x16.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+                (get_local  8)  
+                (get_local  9)  
+                (get_local  10)  
+                (get_local  11)  
+                (get_local  12)  
+                (get_local  13)  
+                (get_local  14)  
+                (get_local  15)  
+            ) 
+        ) 
+        (set_local 
+            17 
+            (i8x16.shl 
+                (get_local  17)  
+                (get_local  16)  
+            ) 
+        ) 
+        (i8x16.extractLane_u 
+            (get_local  17)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i8x16_shr_3_s_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i8x16)  
+        (set_local 
+            17 
+            (i8x16.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+                (get_local  8)  
+                (get_local  9)  
+                (get_local  10)  
+                (get_local  11)  
+                (get_local  12)  
+                (get_local  13)  
+                (get_local  14)  
+                (get_local  15)  
+            ) 
+        ) 
+        (set_local 
+            17 
+            (i8x16.shr_s 
+                (get_local  17)  
+                (get_local  16)  
+            ) 
+        ) 
+        (i8x16.extractLane_u 
+            (get_local  17)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_i8x16_shr_3_u_u")  
+        (param  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32  i32)  
+        (result  i32)  
+        (local  i8x16)  
+        (set_local 
+            17 
+            (i8x16.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+                (get_local  8)  
+                (get_local  9)  
+                (get_local  10)  
+                (get_local  11)  
+                (get_local  12)  
+                (get_local  13)  
+                (get_local  14)  
+                (get_local  15)  
+            ) 
+        ) 
+        (set_local 
+            17 
+            (i8x16.shr_u 
+                (get_local  17)  
+                (get_local  16)  
+            ) 
+        ) 
+        (i8x16.extractLane_u 
+            (get_local  17)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_f32x4_add_3")  
+        (param  f32  f32  f32  f32  f32  f32  f32  f32)  
+        (result  f32)  
+        (local  f32x4  f32x4  f32x4)  
+        (set_local 
+            8 
+            (f32x4.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+            ) 
+        ) 
+        (set_local 
+            9 
+            (f32x4.build 
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            10 
+            (f32x4.add 
+                (get_local  8)  
+                (get_local  9)  
+            ) 
+        ) 
+        (f32x4.extractLane 
+            (get_local  10)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_f32x4_sub_3")  
+        (param  f32  f32  f32  f32  f32  f32  f32  f32)  
+        (result  f32)  
+        (local  f32x4  f32x4  f32x4)  
+        (set_local 
+            8 
+            (f32x4.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+            ) 
+        ) 
+        (set_local 
+            9 
+            (f32x4.build 
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            10 
+            (f32x4.sub 
+                (get_local  8)  
+                (get_local  9)  
+            ) 
+        ) 
+        (f32x4.extractLane 
+            (get_local  10)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_f32x4_mul_3")  
+        (param  f32  f32  f32  f32  f32  f32  f32  f32)  
+        (result  f32)  
+        (local  f32x4  f32x4  f32x4)  
+        (set_local 
+            8 
+            (f32x4.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+            ) 
+        ) 
+        (set_local 
+            9 
+            (f32x4.build 
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            10 
+            (f32x4.mul 
+                (get_local  8)  
+                (get_local  9)  
+            ) 
+        ) 
+        (f32x4.extractLane 
+            (get_local  10)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_f32x4_div_3")  
+        (param  f32  f32  f32  f32  f32  f32  f32  f32)  
+        (result  f32)  
+        (local  f32x4  f32x4  f32x4)  
+        (set_local 
+            8 
+            (f32x4.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+            ) 
+        ) 
+        (set_local 
+            9 
+            (f32x4.build 
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            10 
+            (f32x4.div 
+                (get_local  8)  
+                (get_local  9)  
+            ) 
+        ) 
+        (f32x4.extractLane 
+            (get_local  10)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_f32x4_min_3")  
+        (param  f32  f32  f32  f32  f32  f32  f32  f32)  
+        (result  f32)  
+        (local  f32x4  f32x4  f32x4)  
+        (set_local 
+            8 
+            (f32x4.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+            ) 
+        ) 
+        (set_local 
+            9 
+            (f32x4.build 
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            10 
+            (f32x4.min 
+                (get_local  8)  
+                (get_local  9)  
+            ) 
+        ) 
+        (f32x4.extractLane 
+            (get_local  10)  
+            (i32.const  3)  
+        ) 
+    ) 
+    (func 
+        (export  "func_f32x4_max_3")  
+        (param  f32  f32  f32  f32  f32  f32  f32  f32)  
+        (result  f32)  
+        (local  f32x4  f32x4  f32x4)  
+        (set_local 
+            8 
+            (f32x4.build 
+                (get_local  0)  
+                (get_local  1)  
+                (get_local  2)  
+                (get_local  3)  
+            ) 
+        ) 
+        (set_local 
+            9 
+            (f32x4.build 
+                (get_local  4)  
+                (get_local  5)  
+                (get_local  6)  
+                (get_local  7)  
+            ) 
+        ) 
+        (set_local 
+            10 
+            (f32x4.max 
+                (get_local  8)  
+                (get_local  9)  
+            ) 
+        ) 
+        (f32x4.extractLane 
+            (get_local  10)  
+            (i32.const  3)  
+        ) 
+    ) 
+)