github.com/tetratelabs/wazero@v1.7.3-0.20240513003603-48f702e154b5/internal/integration_test/spectest/v2/testdata/simd_load_extend.wast (about) 1 ;; Load and Extend test cases 2 3 (module 4 (memory 1) 5 (data (i32.const 0) "\00\01\02\03\04\05\06\07\08\09\0A\0B\0C\0D\0E\0F\80\81\82\83\84\85\86\87\88\89") 6 (data (i32.const 65520) "\0A\0B\0C\0D\0E\0F\80\81\82\83\84\85\86\87\88\89") 7 8 (func (export "v128.load8x8_s") (param $0 i32) (result v128) 9 (v128.load8x8_s (local.get $0)) 10 ) 11 (func (export "v128.load8x8_u") (param $0 i32) (result v128) 12 (v128.load8x8_u (local.get $0)) 13 ) 14 (func (export "v128.load16x4_s") (param $0 i32) (result v128) 15 (v128.load16x4_s (local.get $0)) 16 ) 17 (func (export "v128.load16x4_u") (param $0 i32) (result v128) 18 (v128.load16x4_u (local.get $0)) 19 ) 20 (func (export "v128.load32x2_s") (param $0 i32) (result v128) 21 (v128.load32x2_s (local.get $0)) 22 ) 23 (func (export "v128.load32x2_u") (param $0 i32) (result v128) 24 (v128.load32x2_u (local.get $0)) 25 ) 26 27 ;; load by a constant amount 28 (func (export "v128.load8x8_s_const0") (result v128) 29 (v128.load8x8_s (i32.const 0)) 30 ) 31 (func (export "v128.load8x8_u_const8") (result v128) 32 (v128.load8x8_u (i32.const 8)) 33 ) 34 (func (export "v128.load16x4_s_const10") (result v128) 35 (v128.load16x4_s (i32.const 10)) 36 ) 37 (func (export "v128.load16x4_u_const20") (result v128) 38 (v128.load16x4_u (i32.const 20)) 39 ) 40 (func (export "v128.load32x2_s_const65520") (result v128) 41 (v128.load32x2_s (i32.const 65520)) 42 ) 43 (func (export "v128.load32x2_u_const65526") (result v128) 44 (v128.load32x2_u (i32.const 65526)) 45 ) 46 47 ;; load data with different offset/align arguments 48 ;; i16x8 49 (func (export "v128.load8x8_s_offset0") (param $0 i32) (result v128) 50 (v128.load8x8_s offset=0 (local.get $0)) 51 ) 52 (func (export "v128.load8x8_s_align1") (param $0 i32) (result v128) 53 (v128.load8x8_s align=1 (local.get $0)) 54 ) 55 (func (export "v128.load8x8_s_offset0_align1") (param $0 i32) (result v128) 56 (v128.load8x8_s offset=0 align=1 (local.get $0)) 57 ) 58 (func (export "v128.load8x8_s_offset1_align1") (param $0 i32) (result v128) 59 (v128.load8x8_s offset=1 align=1 (local.get $0)) 60 ) 61 (func (export "v128.load8x8_s_offset10_align4") (param $0 i32) (result v128) 62 (v128.load8x8_s offset=10 align=4 (local.get $0)) 63 ) 64 (func (export "v128.load8x8_s_offset20_align8") (param $0 i32) (result v128) 65 (v128.load8x8_s offset=20 align=8 (local.get $0)) 66 ) 67 (func (export "v128.load8x8_u_offset0") (param $0 i32) (result v128) 68 (v128.load8x8_u offset=0 (local.get $0)) 69 ) 70 (func (export "v128.load8x8_u_align1") (param $0 i32) (result v128) 71 (v128.load8x8_u align=1 (local.get $0)) 72 ) 73 (func (export "v128.load8x8_u_offset0_align1") (param $0 i32) (result v128) 74 (v128.load8x8_u offset=0 align=1 (local.get $0)) 75 ) 76 (func (export "v128.load8x8_u_offset1_align1") (param $0 i32) (result v128) 77 (v128.load8x8_u offset=1 align=1 (local.get $0)) 78 ) 79 (func (export "v128.load8x8_u_offset10_align4") (param $0 i32) (result v128) 80 (v128.load8x8_u offset=10 align=4 (local.get $0)) 81 ) 82 (func (export "v128.load8x8_u_offset20_align8") (param $0 i32) (result v128) 83 (v128.load8x8_u offset=20 align=8 (local.get $0)) 84 ) 85 ;; i32x4 86 (func (export "v128.load16x4_s_offset0") (param $0 i32) (result v128) 87 (v128.load16x4_s offset=0 (local.get $0)) 88 ) 89 (func (export "v128.load16x4_s_align1") (param $0 i32) (result v128) 90 (v128.load16x4_s align=1 (local.get $0)) 91 ) 92 (func (export "v128.load16x4_s_offset0_align1") (param $0 i32) (result v128) 93 (v128.load16x4_s offset=0 align=1 (local.get $0)) 94 ) 95 (func (export "v128.load16x4_s_offset1_align1") (param $0 i32) (result v128) 96 (v128.load16x4_s offset=1 align=1 (local.get $0)) 97 ) 98 (func (export "v128.load16x4_s_offset10_align4") (param $0 i32) (result v128) 99 (v128.load16x4_s offset=10 align=4 (local.get $0)) 100 ) 101 (func (export "v128.load16x4_s_offset20_align8") (param $0 i32) (result v128) 102 (v128.load16x4_s offset=20 align=8 (local.get $0)) 103 ) 104 (func (export "v128.load16x4_u_offset0") (param $0 i32) (result v128) 105 (v128.load16x4_u offset=0 (local.get $0)) 106 ) 107 (func (export "v128.load16x4_u_align1") (param $0 i32) (result v128) 108 (v128.load16x4_u align=1 (local.get $0)) 109 ) 110 (func (export "v128.load16x4_u_offset0_align1") (param $0 i32) (result v128) 111 (v128.load16x4_u offset=0 align=1 (local.get $0)) 112 ) 113 (func (export "v128.load16x4_u_offset1_align1") (param $0 i32) (result v128) 114 (v128.load16x4_u offset=1 align=1 (local.get $0)) 115 ) 116 (func (export "v128.load16x4_u_offset10_align4") (param $0 i32) (result v128) 117 (v128.load16x4_u offset=10 align=4 (local.get $0)) 118 ) 119 (func (export "v128.load16x4_u_offset20_align8") (param $0 i32) (result v128) 120 (v128.load16x4_u offset=20 align=8 (local.get $0)) 121 ) 122 ;; i64x2 123 (func (export "v128.load32x2_s_offset0") (param $0 i32) (result v128) 124 (v128.load32x2_s offset=0 (local.get $0)) 125 ) 126 (func (export "v128.load32x2_s_align1") (param $0 i32) (result v128) 127 (v128.load32x2_s align=1 (local.get $0)) 128 ) 129 (func (export "v128.load32x2_s_offset0_align1") (param $0 i32) (result v128) 130 (v128.load32x2_s offset=0 align=1 (local.get $0)) 131 ) 132 (func (export "v128.load32x2_s_offset1_align1") (param $0 i32) (result v128) 133 (v128.load32x2_s offset=1 align=1 (local.get $0)) 134 ) 135 (func (export "v128.load32x2_s_offset10_align4") (param $0 i32) (result v128) 136 (v128.load32x2_s offset=10 align=4 (local.get $0)) 137 ) 138 (func (export "v128.load32x2_s_offset20_align8") (param $0 i32) (result v128) 139 (v128.load32x2_s offset=20 align=8 (local.get $0)) 140 ) 141 (func (export "v128.load32x2_u_offset0") (param $0 i32) (result v128) 142 (v128.load32x2_u offset=0 (local.get $0)) 143 ) 144 (func (export "v128.load32x2_u_align1") (param $0 i32) (result v128) 145 (v128.load32x2_u align=1 (local.get $0)) 146 ) 147 (func (export "v128.load32x2_u_offset0_align1") (param $0 i32) (result v128) 148 (v128.load32x2_u offset=0 align=1 (local.get $0)) 149 ) 150 (func (export "v128.load32x2_u_offset1_align1") (param $0 i32) (result v128) 151 (v128.load32x2_u offset=1 align=1 (local.get $0)) 152 ) 153 (func (export "v128.load32x2_u_offset10_align4") (param $0 i32) (result v128) 154 (v128.load32x2_u offset=10 align=4 (local.get $0)) 155 ) 156 (func (export "v128.load32x2_u_offset20_align8") (param $0 i32) (result v128) 157 (v128.load32x2_u offset=20 align=8 (local.get $0)) 158 ) 159 ) 160 161 162 ;; normal 163 (assert_return (invoke "v128.load8x8_s" (i32.const 0)) (v128.const i16x8 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007)) 164 (assert_return (invoke "v128.load8x8_u" (i32.const 0)) (v128.const i16x8 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007)) 165 (assert_return (invoke "v128.load16x4_s" (i32.const 0)) (v128.const i32x4 0x00000100 0x00000302 0x00000504 0x00000706)) 166 (assert_return (invoke "v128.load16x4_u" (i32.const 0)) (v128.const i32x4 0x00000100 0x00000302 0x00000504 0x00000706)) 167 (assert_return (invoke "v128.load32x2_s" (i32.const 0)) (v128.const i64x2 0x0000000003020100 0x0000000007060504)) 168 (assert_return (invoke "v128.load32x2_u" (i32.const 0)) (v128.const i64x2 0x0000000003020100 0x0000000007060504)) 169 (assert_return (invoke "v128.load8x8_s" (i32.const 10)) (v128.const i16x8 0x000A 0x000B 0x000C 0x000D 0x000E 0x000F 0xFF80 0xFF81)) 170 (assert_return (invoke "v128.load8x8_u" (i32.const 10)) (v128.const i16x8 0x000A 0x000B 0x000C 0x000D 0x000E 0x000F 0x0080 0x0081)) 171 (assert_return (invoke "v128.load16x4_s" (i32.const 10)) (v128.const i32x4 0x00000B0A 0x00000D0C 0x00000F0E 0xFFFF8180)) 172 (assert_return (invoke "v128.load16x4_u" (i32.const 10)) (v128.const i32x4 0x00000B0A 0x00000D0C 0x00000F0E 0x00008180)) 173 (assert_return (invoke "v128.load32x2_s" (i32.const 10)) (v128.const i64x2 0x000000000D0C0B0A 0xFFFFFFFF81800F0E)) 174 (assert_return (invoke "v128.load32x2_u" (i32.const 10)) (v128.const i64x2 0x000000000D0C0B0A 0x0000000081800F0E)) 175 (assert_return (invoke "v128.load8x8_s" (i32.const 20)) (v128.const i16x8 0xff84 0xff85 0xff86 0xff87 0xff88 0xff89 0x0000 0x0000)) 176 (assert_return (invoke "v128.load8x8_u" (i32.const 20)) (v128.const i16x8 0x0084 0x0085 0x0086 0x0087 0x0088 0x0089 0x0000 0x0000)) 177 (assert_return (invoke "v128.load16x4_s" (i32.const 20)) (v128.const i32x4 0xffff8584 0xffff8786 0xffff8988 0x00000000)) 178 (assert_return (invoke "v128.load16x4_u" (i32.const 20)) (v128.const i32x4 0x00008584 0x00008786 0x00008988 0x00000000)) 179 (assert_return (invoke "v128.load32x2_s" (i32.const 20)) (v128.const i64x2 0xFFFFFFFF87868584 0x0000000000008988)) 180 (assert_return (invoke "v128.load32x2_u" (i32.const 20)) (v128.const i64x2 0x0000000087868584 0x0000000000008988)) 181 182 ;; load by a constant amount 183 (assert_return (invoke "v128.load8x8_s_const0") (v128.const i16x8 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007)) 184 (assert_return (invoke "v128.load8x8_u_const8") (v128.const i16x8 0x0008 0x0009 0x000A 0x000B 0x000C 0x000D 0x000E 0x000F)) 185 (assert_return (invoke "v128.load16x4_s_const10") (v128.const i32x4 0x00000B0A 0x00000D0C 0x00000F0E 0xFFFF8180)) 186 (assert_return (invoke "v128.load16x4_u_const20") (v128.const i32x4 0x00008584 0x00008786 0x00008988 0x00000000)) 187 (assert_return (invoke "v128.load32x2_s_const65520") (v128.const i64x2 0x000000000D0C0B0A 0xFFFFFFFF81800F0E)) 188 (assert_return (invoke "v128.load32x2_u_const65526") (v128.const i64x2 0x0000000083828180 0x0000000087868584)) 189 190 ;; load data with different offset/align arguments 191 ;; i16x8 192 (assert_return (invoke "v128.load8x8_s_offset0" (i32.const 0)) (v128.const i16x8 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007)) 193 (assert_return (invoke "v128.load8x8_s_align1" (i32.const 1)) (v128.const i16x8 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008)) 194 (assert_return (invoke "v128.load8x8_s_offset0_align1" (i32.const 2)) (v128.const i16x8 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009)) 195 (assert_return (invoke "v128.load8x8_s_offset10_align4" (i32.const 3)) (v128.const i16x8 0x000D 0x000E 0x000F 0xFF80 0xFF81 0xFF82 0xFF83 0xFF84)) 196 (assert_return (invoke "v128.load8x8_s_offset20_align8" (i32.const 4)) (v128.const i16x8 0xFF88 0xFF89 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000)) 197 (assert_return (invoke "v128.load8x8_u_offset0" (i32.const 0)) (v128.const i16x8 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007)) 198 (assert_return (invoke "v128.load8x8_u_align1" (i32.const 1)) (v128.const i16x8 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008)) 199 (assert_return (invoke "v128.load8x8_u_offset0_align1" (i32.const 2)) (v128.const i16x8 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009)) 200 (assert_return (invoke "v128.load8x8_u_offset10_align4" (i32.const 3)) (v128.const i16x8 0x000D 0x000E 0x000F 0x0080 0x0081 0x0082 0x0083 0x0084)) 201 (assert_return (invoke "v128.load8x8_u_offset20_align8" (i32.const 4)) (v128.const i16x8 0x0088 0x0089 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000)) 202 ;; i32x4 203 (assert_return (invoke "v128.load16x4_s_offset0" (i32.const 0)) (v128.const i32x4 0x00000100 0x00000302 0x00000504 0x00000706)) 204 (assert_return (invoke "v128.load16x4_s_align1" (i32.const 1)) (v128.const i32x4 0x00000201 0x00000403 0x00000605 0x00000807)) 205 (assert_return (invoke "v128.load16x4_s_offset0_align1" (i32.const 2)) (v128.const i32x4 0x00000302 0x00000504 0x00000706 0x00000908)) 206 (assert_return (invoke "v128.load16x4_s_offset10_align4" (i32.const 3)) (v128.const i32x4 0x00000E0D 0xFFFF800F 0xFFFF8281 0xFFFF8483)) 207 (assert_return (invoke "v128.load16x4_s_offset20_align8" (i32.const 4)) (v128.const i32x4 0xFFFF8988 0x00000000 0x00000000 0x00000000)) 208 (assert_return (invoke "v128.load16x4_u_offset0" (i32.const 0)) (v128.const i32x4 0x00000100 0x00000302 0x00000504 0x00000706)) 209 (assert_return (invoke "v128.load16x4_u_align1" (i32.const 1)) (v128.const i32x4 0x00000201 0x00000403 0x00000605 0x00000807)) 210 (assert_return (invoke "v128.load16x4_u_offset0_align1" (i32.const 2)) (v128.const i32x4 0x00000302 0x00000504 0x00000706 0x00000908)) 211 (assert_return (invoke "v128.load16x4_u_offset10_align4" (i32.const 3)) (v128.const i32x4 0x00000E0D 0x0000800F 0x00008281 0x00008483)) 212 (assert_return (invoke "v128.load16x4_u_offset20_align8" (i32.const 4)) (v128.const i32x4 0x00008988 0x00000000 0x00000000 0x00000000)) 213 ;; i64x2 214 (assert_return (invoke "v128.load32x2_s_offset0" (i32.const 0)) (v128.const i64x2 0x0000000003020100 0x0000000007060504)) 215 (assert_return (invoke "v128.load32x2_s_align1" (i32.const 1)) (v128.const i64x2 0x0000000004030201 0x0000000008070605)) 216 (assert_return (invoke "v128.load32x2_s_offset0_align1" (i32.const 2)) (v128.const i64x2 0x0000000005040302 0x0000000009080706)) 217 (assert_return (invoke "v128.load32x2_s_offset10_align4" (i32.const 3)) (v128.const i64x2 0xFFFFFFFF800F0E0D 0xFFFFFFFF84838281)) 218 (assert_return (invoke "v128.load32x2_s_offset20_align8" (i32.const 4)) (v128.const i64x2 0x0000000000008988 0x0000000000000000)) 219 (assert_return (invoke "v128.load32x2_u_offset0" (i32.const 0)) (v128.const i64x2 0x0000000003020100 0x0000000007060504)) 220 (assert_return (invoke "v128.load32x2_u_align1" (i32.const 1)) (v128.const i64x2 0x0000000004030201 0x0000000008070605)) 221 (assert_return (invoke "v128.load32x2_u_offset0_align1" (i32.const 2)) (v128.const i64x2 0x0000000005040302 0x0000000009080706)) 222 (assert_return (invoke "v128.load32x2_u_offset10_align4" (i32.const 3)) (v128.const i64x2 0x00000000800F0E0D 0x0000000084838281)) 223 (assert_return (invoke "v128.load32x2_u_offset20_align8" (i32.const 4)) (v128.const i64x2 0x0000000000008988 0x0000000000000000)) 224 225 ;; out of bounds memory access 226 (assert_trap (invoke "v128.load8x8_s" (i32.const -1)) "out of bounds memory access") 227 (assert_trap (invoke "v128.load8x8_u" (i32.const -1)) "out of bounds memory access") 228 (assert_trap (invoke "v128.load16x4_s" (i32.const 65536)) "out of bounds memory access") 229 (assert_trap (invoke "v128.load16x4_u" (i32.const 65536)) "out of bounds memory access") 230 (assert_trap (invoke "v128.load32x2_s" (i32.const 65529)) "out of bounds memory access") 231 (assert_trap (invoke "v128.load32x2_u" (i32.const 65529)) "out of bounds memory access") 232 233 (assert_trap (invoke "v128.load8x8_s_offset1_align1" (i32.const -1)) "out of bounds memory access") 234 (assert_trap (invoke "v128.load8x8_u_offset1_align1" (i32.const -1)) "out of bounds memory access") 235 (assert_trap (invoke "v128.load16x4_s_offset1_align1" (i32.const -1)) "out of bounds memory access") 236 (assert_trap (invoke "v128.load16x4_u_offset1_align1" (i32.const -1)) "out of bounds memory access") 237 (assert_trap (invoke "v128.load32x2_s_offset1_align1" (i32.const -1)) "out of bounds memory access") 238 (assert_trap (invoke "v128.load32x2_u_offset1_align1" (i32.const -1)) "out of bounds memory access") 239 240 ;; type check 241 (assert_invalid (module (memory 0) (func (result v128) (v128.load8x8_s (f32.const 0)))) "type mismatch") 242 (assert_invalid (module (memory 0) (func (result v128) (v128.load8x8_u (f32.const 0)))) "type mismatch") 243 (assert_invalid (module (memory 0) (func (result v128) (v128.load16x4_s (f64.const 0)))) "type mismatch") 244 (assert_invalid (module (memory 0) (func (result v128) (v128.load16x4_u (f64.const 0)))) "type mismatch") 245 (assert_invalid (module (memory 0) (func (result v128) (v128.load32x2_s (v128.const i32x4 0 0 0 0)))) "type mismatch") 246 (assert_invalid (module (memory 0) (func (result v128) (v128.load32x2_u (v128.const i32x4 0 0 0 0)))) "type mismatch") 247 248 ;; Test operation with empty argument 249 250 (assert_invalid 251 (module (memory 0) 252 (func $v128.load8x8_s-arg-empty (result v128) 253 (v128.load8x8_s) 254 ) 255 ) 256 "type mismatch" 257 ) 258 (assert_invalid 259 (module (memory 0) 260 (func $v128.load8x8_u-arg-empty (result v128) 261 (v128.load8x8_u) 262 ) 263 ) 264 "type mismatch" 265 ) 266 (assert_invalid 267 (module (memory 0) 268 (func $v128.load16x4_s-arg-empty (result v128) 269 (v128.load16x4_s) 270 ) 271 ) 272 "type mismatch" 273 ) 274 (assert_invalid 275 (module (memory 0) 276 (func $v128.load16x4_u-arg-empty (result v128) 277 (v128.load16x4_u) 278 ) 279 ) 280 "type mismatch" 281 ) 282 (assert_invalid 283 (module (memory 0) 284 (func $v128.load32x2_s-arg-empty (result v128) 285 (v128.load32x2_s) 286 ) 287 ) 288 "type mismatch" 289 ) 290 (assert_invalid 291 (module (memory 0) 292 (func $v128.load32x2_u-arg-empty (result v128) 293 (v128.load32x2_u) 294 ) 295 ) 296 "type mismatch" 297 ) 298 299 ;; Unknown operator 300 301 (assert_malformed (module quote "(memory 1) (func (drop (i16x8.load16x4_s (i32.const 0))))") "unknown operator") 302 (assert_malformed (module quote "(memory 1) (func (drop (i16x8.load16x4_u (i32.const 0))))") "unknown operator") 303 (assert_malformed (module quote "(memory 1) (func (drop (i32x4.load32x2_s (i32.const 0))))") "unknown operator") 304 (assert_malformed (module quote "(memory 1) (func (drop (i32x4.load32x2_u (i32.const 0))))") "unknown operator") 305 (assert_malformed (module quote "(memory 1) (func (drop (i64x2.load64x1_s (i32.const 0))))") "unknown operator") 306 (assert_malformed (module quote "(memory 1) (func (drop (i64x2.load64x1_u (i32.const 0))))") "unknown operator") 307 308 ;; combination 309 (module 310 (memory 1) 311 (data (i32.const 0) "\00\01\02\03\04\05\06\07\08\09\0A\0B\0C\0D\0E\0F\80\81\82\83\84\85\86\87\88\89") 312 (func (export "v128.load8x8_s-in-block") (result v128) 313 (block (result v128) (block (result v128) (v128.load8x8_s (i32.const 0)))) 314 ) 315 (func (export "v128.load8x8_u-in-block") (result v128) 316 (block (result v128) (block (result v128) (v128.load8x8_u (i32.const 1)))) 317 ) 318 (func (export "v128.load16x4_s-in-block") (result v128) 319 (block (result v128) (block (result v128) (v128.load16x4_s (i32.const 2)))) 320 ) 321 (func (export "v128.load16x4_u-in-block") (result v128) 322 (block (result v128) (block (result v128) (v128.load16x4_u (i32.const 3)))) 323 ) 324 (func (export "v128.load32x2_s-in-block") (result v128) 325 (block (result v128) (block (result v128) (v128.load32x2_s (i32.const 4)))) 326 ) 327 (func (export "v128.load32x2_u-in-block") (result v128) 328 (block (result v128) (block (result v128) (v128.load32x2_u (i32.const 5)))) 329 ) 330 (func (export "v128.load8x8_s-as-br-value") (result v128) 331 (block (result v128) (br 0 (v128.load8x8_s (i32.const 6)))) 332 ) 333 (func (export "v128.load8x8_u-as-br-value") (result v128) 334 (block (result v128) (br 0 (v128.load8x8_u (i32.const 7)))) 335 ) 336 (func (export "v128.load16x4_s-as-br-value") (result v128) 337 (block (result v128) (br 0 (v128.load16x4_s (i32.const 8)))) 338 ) 339 (func (export "v128.load16x4_u-as-br-value") (result v128) 340 (block (result v128) (br 0 (v128.load16x4_u (i32.const 9)))) 341 ) 342 (func (export "v128.load32x2_s-as-br-value") (result v128) 343 (block (result v128) (br 0 (v128.load32x2_s (i32.const 10)))) 344 ) 345 (func (export "v128.load32x2_u-as-br-value") (result v128) 346 (block (result v128) (br 0 (v128.load32x2_u (i32.const 11)))) 347 ) 348 (func (export "v128.load8x8_s-extract_lane_s-operand") (result i32) 349 (i8x16.extract_lane_s 0 (v128.load8x8_s (i32.const 12))) 350 ) 351 (func (export "v128.load8x8_u-extract_lane_s-operand") (result i32) 352 (i8x16.extract_lane_s 0 (v128.load8x8_u (i32.const 13))) 353 ) 354 (func (export "v128.load16x4_s-extract_lane_s-operand") (result i32) 355 (i8x16.extract_lane_s 0 (v128.load16x4_s (i32.const 14))) 356 ) 357 (func (export "v128.load16x4_u-extract_lane_s-operand") (result i32) 358 (i8x16.extract_lane_s 0 (v128.load16x4_u (i32.const 15))) 359 ) 360 (func (export "v128.load32x2_s-extract_lane_s-operand") (result i32) 361 (i8x16.extract_lane_s 0 (v128.load32x2_s (i32.const 16))) 362 ) 363 (func (export "v128.load32x2_u-extract_lane_s-operand") (result i32) 364 (i8x16.extract_lane_s 0 (v128.load32x2_u (i32.const 17))) 365 ) 366 ) 367 (assert_return (invoke "v128.load8x8_s-in-block") (v128.const i16x8 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007)) 368 (assert_return (invoke "v128.load8x8_u-in-block") (v128.const i16x8 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008)) 369 (assert_return (invoke "v128.load16x4_s-in-block") (v128.const i32x4 0x00000302 0x00000504 0x00000706 0x00000908)) 370 (assert_return (invoke "v128.load16x4_u-in-block") (v128.const i32x4 0x00000403 0x00000605 0x00000807 0x00000A09)) 371 (assert_return (invoke "v128.load32x2_s-in-block") (v128.const i64x2 0x0000000007060504 0x000000000B0A0908)) 372 (assert_return (invoke "v128.load32x2_u-in-block") (v128.const i64x2 0x0000000008070605 0x000000000C0B0A09)) 373 (assert_return (invoke "v128.load8x8_s-as-br-value") (v128.const i16x8 0x0006 0x0007 0x0008 0x0009 0x000A 0x000B 0x000C 0x000D)) 374 (assert_return (invoke "v128.load8x8_u-as-br-value") (v128.const i16x8 0x0007 0x0008 0x0009 0x000A 0x000B 0x000C 0x000D 0x000E)) 375 (assert_return (invoke "v128.load16x4_s-as-br-value") (v128.const i32x4 0x00000908 0x00000B0A 0x00000D0C 0x00000F0E)) 376 (assert_return (invoke "v128.load16x4_u-as-br-value") (v128.const i32x4 0x00000A09 0x00000C0B 0x00000E0D 0x0000800F)) 377 (assert_return (invoke "v128.load32x2_s-as-br-value") (v128.const i64x2 0x000000000D0C0B0A 0xFFFFFFFF81800F0E)) 378 (assert_return (invoke "v128.load32x2_u-as-br-value") (v128.const i64x2 0x000000000E0D0C0B 0x000000008281800F)) 379 (assert_return (invoke "v128.load8x8_s-extract_lane_s-operand") (i32.const 12)) 380 (assert_return (invoke "v128.load8x8_u-extract_lane_s-operand") (i32.const 13)) 381 (assert_return (invoke "v128.load16x4_s-extract_lane_s-operand") (i32.const 14)) 382 (assert_return (invoke "v128.load16x4_u-extract_lane_s-operand") (i32.const 15)) 383 (assert_return (invoke "v128.load32x2_s-extract_lane_s-operand") (i32.const -128)) 384 (assert_return (invoke "v128.load32x2_u-extract_lane_s-operand") (i32.const -127))