From ed2c3cd0892be8a1380a6c6bfddfa3492c16f91c Mon Sep 17 00:00:00 2001 From: Thomas Lively <7121787+tlively@users.noreply.github.com> Date: Tue, 24 Sep 2019 16:57:57 -0700 Subject: SIMD load and extend instructions (#2353) Adds support for the new load and extend instructions. Also updates from C++11 to C++17 in order to use generic lambdas in the interpreter implementation. --- test/simd.wast.fromBinary | 74 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 62 insertions(+), 12 deletions(-) (limited to 'test/simd.wast.fromBinary') diff --git a/test/simd.wast.fromBinary b/test/simd.wast.fromBinary index fb53bf003..ae0c9828c 100644 --- a/test/simd.wast.fromBinary +++ b/test/simd.wast.fromBinary @@ -856,69 +856,119 @@ (local.get $0) ) ) - (func $i8x16.narrow_i16x8_s (; 149 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $v8x16.load_splat (; 149 ;) (type $0) (param $0 i32) (result v128) + (v8x16.load_splat + (local.get $0) + ) + ) + (func $v16x8.load_splat (; 150 ;) (type $0) (param $0 i32) (result v128) + (v16x8.load_splat + (local.get $0) + ) + ) + (func $v32x4.load_splat (; 151 ;) (type $0) (param $0 i32) (result v128) + (v32x4.load_splat + (local.get $0) + ) + ) + (func $v64x2.load_splat (; 152 ;) (type $0) (param $0 i32) (result v128) + (v64x2.load_splat + (local.get $0) + ) + ) + (func $i8x16.narrow_i16x8_s (; 153 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i8x16.narrow_i16x8_s (local.get $0) (local.get $1) ) ) - (func $i8x16.narrow_i16x8_u (; 150 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i8x16.narrow_i16x8_u (; 154 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i8x16.narrow_i16x8_u (local.get $0) (local.get $1) ) ) - (func $i16x8.narrow_i32x4_s (; 151 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.narrow_i32x4_s (; 155 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.narrow_i32x4_s (local.get $0) (local.get $1) ) ) - (func $i16x8.narrow_i32x4_u (; 152 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.narrow_i32x4_u (; 156 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.narrow_i32x4_u (local.get $0) (local.get $1) ) ) - (func $i16x8.widen_low_i8x16_s (; 153 ;) (type $14) (param $0 v128) (result v128) + (func $i16x8.widen_low_i8x16_s (; 157 ;) (type $14) (param $0 v128) (result v128) (i16x8.widen_low_i8x16_s (local.get $0) ) ) - (func $i16x8.widen_high_i8x16_s (; 154 ;) (type $14) (param $0 v128) (result v128) + (func $i16x8.widen_high_i8x16_s (; 158 ;) (type $14) (param $0 v128) (result v128) (i16x8.widen_high_i8x16_s (local.get $0) ) ) - (func $i16x8.widen_low_i8x16_u (; 155 ;) (type $14) (param $0 v128) (result v128) + (func $i16x8.widen_low_i8x16_u (; 159 ;) (type $14) (param $0 v128) (result v128) (i16x8.widen_low_i8x16_u (local.get $0) ) ) - (func $i16x8.widen_high_i8x16_u (; 156 ;) (type $14) (param $0 v128) (result v128) + (func $i16x8.widen_high_i8x16_u (; 160 ;) (type $14) (param $0 v128) (result v128) (i16x8.widen_high_i8x16_u (local.get $0) ) ) - (func $i32x4.widen_low_i16x8_s (; 157 ;) (type $14) (param $0 v128) (result v128) + (func $i32x4.widen_low_i16x8_s (; 161 ;) (type $14) (param $0 v128) (result v128) (i32x4.widen_low_i16x8_s (local.get $0) ) ) - (func $i32x4.widen_high_i16x8_s (; 158 ;) (type $14) (param $0 v128) (result v128) + (func $i32x4.widen_high_i16x8_s (; 162 ;) (type $14) (param $0 v128) (result v128) (i32x4.widen_high_i16x8_s (local.get $0) ) ) - (func $i32x4.widen_low_i16x8_u (; 159 ;) (type $14) (param $0 v128) (result v128) + (func $i32x4.widen_low_i16x8_u (; 163 ;) (type $14) (param $0 v128) (result v128) (i32x4.widen_low_i16x8_u (local.get $0) ) ) - (func $i32x4.widen_high_i16x8_u (; 160 ;) (type $14) (param $0 v128) (result v128) + (func $i32x4.widen_high_i16x8_u (; 164 ;) (type $14) (param $0 v128) (result v128) (i32x4.widen_high_i16x8_u (local.get $0) ) ) + (func $i16x8.load8x8_u (; 165 ;) (type $0) (param $0 i32) (result v128) + (i16x8.load8x8_u + (local.get $0) + ) + ) + (func $i16x8.load8x8_s (; 166 ;) (type $0) (param $0 i32) (result v128) + (i16x8.load8x8_s + (local.get $0) + ) + ) + (func $i32x4.load16x4_s (; 167 ;) (type $0) (param $0 i32) (result v128) + (i32x4.load16x4_s + (local.get $0) + ) + ) + (func $i32x4.load16x4_u (; 168 ;) (type $0) (param $0 i32) (result v128) + (i32x4.load16x4_u + (local.get $0) + ) + ) + (func $i64x2.load32x2_s (; 169 ;) (type $0) (param $0 i32) (result v128) + (i64x2.load32x2_s + (local.get $0) + ) + ) + (func $i64x2.load32x2_u (; 170 ;) (type $0) (param $0 i32) (result v128) + (i64x2.load32x2_u + (local.get $0) + ) + ) ) -- cgit v1.2.3