wa-lang.org/wazero@v1.0.2/internal/integration_test/spectest/v2/testdata/simd_load8_lane.wast (about) 1 ;; Tests for load lane operations. 2 3 4 (module 5 (memory 1) 6 (data (i32.const 0) "\00\01\02\03\04\05\06\07\08\09\0A\0B\0C\0D\0E\0F") 7 (func (export "v128.load8_lane_0") 8 (param $address i32) (param $x v128) (result v128) 9 (v128.load8_lane 0 (local.get $address) (local.get $x))) 10 (func (export "v128.load8_lane_1") 11 (param $address i32) (param $x v128) (result v128) 12 (v128.load8_lane 1 (local.get $address) (local.get $x))) 13 (func (export "v128.load8_lane_2") 14 (param $address i32) (param $x v128) (result v128) 15 (v128.load8_lane 2 (local.get $address) (local.get $x))) 16 (func (export "v128.load8_lane_3") 17 (param $address i32) (param $x v128) (result v128) 18 (v128.load8_lane 3 (local.get $address) (local.get $x))) 19 (func (export "v128.load8_lane_4") 20 (param $address i32) (param $x v128) (result v128) 21 (v128.load8_lane 4 (local.get $address) (local.get $x))) 22 (func (export "v128.load8_lane_5") 23 (param $address i32) (param $x v128) (result v128) 24 (v128.load8_lane 5 (local.get $address) (local.get $x))) 25 (func (export "v128.load8_lane_6") 26 (param $address i32) (param $x v128) (result v128) 27 (v128.load8_lane 6 (local.get $address) (local.get $x))) 28 (func (export "v128.load8_lane_7") 29 (param $address i32) (param $x v128) (result v128) 30 (v128.load8_lane 7 (local.get $address) (local.get $x))) 31 (func (export "v128.load8_lane_8") 32 (param $address i32) (param $x v128) (result v128) 33 (v128.load8_lane 8 (local.get $address) (local.get $x))) 34 (func (export "v128.load8_lane_9") 35 (param $address i32) (param $x v128) (result v128) 36 (v128.load8_lane 9 (local.get $address) (local.get $x))) 37 (func (export "v128.load8_lane_10") 38 (param $address i32) (param $x v128) (result v128) 39 (v128.load8_lane 10 (local.get $address) (local.get $x))) 40 (func (export "v128.load8_lane_11") 41 (param $address i32) (param $x v128) (result v128) 42 (v128.load8_lane 11 (local.get $address) (local.get $x))) 43 (func (export "v128.load8_lane_12") 44 (param $address i32) (param $x v128) (result v128) 45 (v128.load8_lane 12 (local.get $address) (local.get $x))) 46 (func (export "v128.load8_lane_13") 47 (param $address i32) (param $x v128) (result v128) 48 (v128.load8_lane 13 (local.get $address) (local.get $x))) 49 (func (export "v128.load8_lane_14") 50 (param $address i32) (param $x v128) (result v128) 51 (v128.load8_lane 14 (local.get $address) (local.get $x))) 52 (func (export "v128.load8_lane_15") 53 (param $address i32) (param $x v128) (result v128) 54 (v128.load8_lane 15 (local.get $address) (local.get $x))) 55 (func (export "v128.load8_lane_0_offset_0") 56 (param $x v128) (result v128) 57 (v128.load8_lane offset=0 0 (i32.const 0) (local.get $x))) 58 (func (export "v128.load8_lane_1_offset_1") 59 (param $x v128) (result v128) 60 (v128.load8_lane offset=1 1 (i32.const 0) (local.get $x))) 61 (func (export "v128.load8_lane_2_offset_2") 62 (param $x v128) (result v128) 63 (v128.load8_lane offset=2 2 (i32.const 0) (local.get $x))) 64 (func (export "v128.load8_lane_3_offset_3") 65 (param $x v128) (result v128) 66 (v128.load8_lane offset=3 3 (i32.const 0) (local.get $x))) 67 (func (export "v128.load8_lane_4_offset_4") 68 (param $x v128) (result v128) 69 (v128.load8_lane offset=4 4 (i32.const 0) (local.get $x))) 70 (func (export "v128.load8_lane_5_offset_5") 71 (param $x v128) (result v128) 72 (v128.load8_lane offset=5 5 (i32.const 0) (local.get $x))) 73 (func (export "v128.load8_lane_6_offset_6") 74 (param $x v128) (result v128) 75 (v128.load8_lane offset=6 6 (i32.const 0) (local.get $x))) 76 (func (export "v128.load8_lane_7_offset_7") 77 (param $x v128) (result v128) 78 (v128.load8_lane offset=7 7 (i32.const 0) (local.get $x))) 79 (func (export "v128.load8_lane_8_offset_8") 80 (param $x v128) (result v128) 81 (v128.load8_lane offset=8 8 (i32.const 0) (local.get $x))) 82 (func (export "v128.load8_lane_9_offset_9") 83 (param $x v128) (result v128) 84 (v128.load8_lane offset=9 9 (i32.const 0) (local.get $x))) 85 (func (export "v128.load8_lane_10_offset_10") 86 (param $x v128) (result v128) 87 (v128.load8_lane offset=10 10 (i32.const 0) (local.get $x))) 88 (func (export "v128.load8_lane_11_offset_11") 89 (param $x v128) (result v128) 90 (v128.load8_lane offset=11 11 (i32.const 0) (local.get $x))) 91 (func (export "v128.load8_lane_12_offset_12") 92 (param $x v128) (result v128) 93 (v128.load8_lane offset=12 12 (i32.const 0) (local.get $x))) 94 (func (export "v128.load8_lane_13_offset_13") 95 (param $x v128) (result v128) 96 (v128.load8_lane offset=13 13 (i32.const 0) (local.get $x))) 97 (func (export "v128.load8_lane_14_offset_14") 98 (param $x v128) (result v128) 99 (v128.load8_lane offset=14 14 (i32.const 0) (local.get $x))) 100 (func (export "v128.load8_lane_15_offset_15") 101 (param $x v128) (result v128) 102 (v128.load8_lane offset=15 15 (i32.const 0) (local.get $x))) 103 (func (export "v128.load8_lane_0_align_1") 104 (param $address i32) (param $x v128) (result v128) 105 (v128.load8_lane align=1 0 (local.get $address) (local.get $x))) 106 (func (export "v128.load8_lane_1_align_1") 107 (param $address i32) (param $x v128) (result v128) 108 (v128.load8_lane align=1 1 (local.get $address) (local.get $x))) 109 (func (export "v128.load8_lane_2_align_1") 110 (param $address i32) (param $x v128) (result v128) 111 (v128.load8_lane align=1 2 (local.get $address) (local.get $x))) 112 (func (export "v128.load8_lane_3_align_1") 113 (param $address i32) (param $x v128) (result v128) 114 (v128.load8_lane align=1 3 (local.get $address) (local.get $x))) 115 (func (export "v128.load8_lane_4_align_1") 116 (param $address i32) (param $x v128) (result v128) 117 (v128.load8_lane align=1 4 (local.get $address) (local.get $x))) 118 (func (export "v128.load8_lane_5_align_1") 119 (param $address i32) (param $x v128) (result v128) 120 (v128.load8_lane align=1 5 (local.get $address) (local.get $x))) 121 (func (export "v128.load8_lane_6_align_1") 122 (param $address i32) (param $x v128) (result v128) 123 (v128.load8_lane align=1 6 (local.get $address) (local.get $x))) 124 (func (export "v128.load8_lane_7_align_1") 125 (param $address i32) (param $x v128) (result v128) 126 (v128.load8_lane align=1 7 (local.get $address) (local.get $x))) 127 (func (export "v128.load8_lane_8_align_1") 128 (param $address i32) (param $x v128) (result v128) 129 (v128.load8_lane align=1 8 (local.get $address) (local.get $x))) 130 (func (export "v128.load8_lane_9_align_1") 131 (param $address i32) (param $x v128) (result v128) 132 (v128.load8_lane align=1 9 (local.get $address) (local.get $x))) 133 (func (export "v128.load8_lane_10_align_1") 134 (param $address i32) (param $x v128) (result v128) 135 (v128.load8_lane align=1 10 (local.get $address) (local.get $x))) 136 (func (export "v128.load8_lane_11_align_1") 137 (param $address i32) (param $x v128) (result v128) 138 (v128.load8_lane align=1 11 (local.get $address) (local.get $x))) 139 (func (export "v128.load8_lane_12_align_1") 140 (param $address i32) (param $x v128) (result v128) 141 (v128.load8_lane align=1 12 (local.get $address) (local.get $x))) 142 (func (export "v128.load8_lane_13_align_1") 143 (param $address i32) (param $x v128) (result v128) 144 (v128.load8_lane align=1 13 (local.get $address) (local.get $x))) 145 (func (export "v128.load8_lane_14_align_1") 146 (param $address i32) (param $x v128) (result v128) 147 (v128.load8_lane align=1 14 (local.get $address) (local.get $x))) 148 (func (export "v128.load8_lane_15_align_1") 149 (param $address i32) (param $x v128) (result v128) 150 (v128.load8_lane align=1 15 (local.get $address) (local.get $x))) 151 ) 152 153 (assert_return (invoke "v128.load8_lane_0" (i32.const 0) 154 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 155 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 156 (assert_return (invoke "v128.load8_lane_1" (i32.const 1) 157 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 158 (v128.const i8x16 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 159 (assert_return (invoke "v128.load8_lane_2" (i32.const 2) 160 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 161 (v128.const i8x16 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0)) 162 (assert_return (invoke "v128.load8_lane_3" (i32.const 3) 163 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 164 (v128.const i8x16 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0)) 165 (assert_return (invoke "v128.load8_lane_4" (i32.const 4) 166 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 167 (v128.const i8x16 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0)) 168 (assert_return (invoke "v128.load8_lane_5" (i32.const 5) 169 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 170 (v128.const i8x16 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0)) 171 (assert_return (invoke "v128.load8_lane_6" (i32.const 6) 172 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 173 (v128.const i8x16 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0)) 174 (assert_return (invoke "v128.load8_lane_7" (i32.const 7) 175 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 176 (v128.const i8x16 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0)) 177 (assert_return (invoke "v128.load8_lane_8" (i32.const 8) 178 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 179 (v128.const i8x16 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0)) 180 (assert_return (invoke "v128.load8_lane_9" (i32.const 9) 181 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 182 (v128.const i8x16 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0)) 183 (assert_return (invoke "v128.load8_lane_10" (i32.const 10) 184 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 185 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0)) 186 (assert_return (invoke "v128.load8_lane_11" (i32.const 11) 187 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 188 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 0)) 189 (assert_return (invoke "v128.load8_lane_12" (i32.const 12) 190 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 191 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 12 0 0 0)) 192 (assert_return (invoke "v128.load8_lane_13" (i32.const 13) 193 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 194 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 13 0 0)) 195 (assert_return (invoke "v128.load8_lane_14" (i32.const 14) 196 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 197 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 0)) 198 (assert_return (invoke "v128.load8_lane_15" (i32.const 15) 199 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 200 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15)) 201 (assert_return (invoke "v128.load8_lane_0_offset_0" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 202 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 203 (assert_return (invoke "v128.load8_lane_1_offset_1" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 204 (v128.const i8x16 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 205 (assert_return (invoke "v128.load8_lane_2_offset_2" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 206 (v128.const i8x16 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0)) 207 (assert_return (invoke "v128.load8_lane_3_offset_3" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 208 (v128.const i8x16 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0)) 209 (assert_return (invoke "v128.load8_lane_4_offset_4" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 210 (v128.const i8x16 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0)) 211 (assert_return (invoke "v128.load8_lane_5_offset_5" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 212 (v128.const i8x16 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0)) 213 (assert_return (invoke "v128.load8_lane_6_offset_6" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 214 (v128.const i8x16 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0)) 215 (assert_return (invoke "v128.load8_lane_7_offset_7" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 216 (v128.const i8x16 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0)) 217 (assert_return (invoke "v128.load8_lane_8_offset_8" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 218 (v128.const i8x16 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0)) 219 (assert_return (invoke "v128.load8_lane_9_offset_9" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 220 (v128.const i8x16 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0)) 221 (assert_return (invoke "v128.load8_lane_10_offset_10" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 222 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0)) 223 (assert_return (invoke "v128.load8_lane_11_offset_11" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 224 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 0)) 225 (assert_return (invoke "v128.load8_lane_12_offset_12" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 226 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 12 0 0 0)) 227 (assert_return (invoke "v128.load8_lane_13_offset_13" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 228 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 13 0 0)) 229 (assert_return (invoke "v128.load8_lane_14_offset_14" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 230 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 0)) 231 (assert_return (invoke "v128.load8_lane_15_offset_15" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 232 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15)) 233 (assert_return (invoke "v128.load8_lane_0_align_1" (i32.const 0) 234 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 235 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 236 (assert_return (invoke "v128.load8_lane_1_align_1" (i32.const 1) 237 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 238 (v128.const i8x16 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 239 (assert_return (invoke "v128.load8_lane_2_align_1" (i32.const 2) 240 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 241 (v128.const i8x16 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0)) 242 (assert_return (invoke "v128.load8_lane_3_align_1" (i32.const 3) 243 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 244 (v128.const i8x16 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0)) 245 (assert_return (invoke "v128.load8_lane_4_align_1" (i32.const 4) 246 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 247 (v128.const i8x16 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0)) 248 (assert_return (invoke "v128.load8_lane_5_align_1" (i32.const 5) 249 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 250 (v128.const i8x16 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0)) 251 (assert_return (invoke "v128.load8_lane_6_align_1" (i32.const 6) 252 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 253 (v128.const i8x16 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0)) 254 (assert_return (invoke "v128.load8_lane_7_align_1" (i32.const 7) 255 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 256 (v128.const i8x16 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0)) 257 (assert_return (invoke "v128.load8_lane_8_align_1" (i32.const 8) 258 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 259 (v128.const i8x16 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0)) 260 (assert_return (invoke "v128.load8_lane_9_align_1" (i32.const 9) 261 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 262 (v128.const i8x16 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0)) 263 (assert_return (invoke "v128.load8_lane_10_align_1" (i32.const 10) 264 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 265 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0)) 266 (assert_return (invoke "v128.load8_lane_11_align_1" (i32.const 11) 267 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 268 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 0)) 269 (assert_return (invoke "v128.load8_lane_12_align_1" (i32.const 12) 270 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 271 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 12 0 0 0)) 272 (assert_return (invoke "v128.load8_lane_13_align_1" (i32.const 13) 273 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 274 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 13 0 0)) 275 (assert_return (invoke "v128.load8_lane_14_align_1" (i32.const 14) 276 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 277 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 0)) 278 (assert_return (invoke "v128.load8_lane_15_align_1" (i32.const 15) 279 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 280 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15)) 281 282 ;; type check 283 (assert_invalid (module (memory 1) 284 (func (param $x v128) (result v128) 285 (v128.load8_lane 0 (local.get $x) (i32.const 0)))) 286 "type mismatch") 287 288 ;; invalid lane index 289 (assert_invalid (module (memory 1) 290 (func (param $x v128) (result v128) 291 (v128.load8_lane 16 (i32.const 0) (local.get $x)))) 292 "invalid lane index") 293 294 ;; invalid memarg alignment 295 (assert_invalid 296 (module (memory 1) 297 (func (param $x v128) (result v128) 298 (v128.load8_lane align=2 0 (i32.const 0) (local.get $x)))) 299 "alignment must not be larger than natural")