2019-02-28 17:36:22 +01:00
|
|
|
(module
|
2019-03-01 00:01:23 +01:00
|
|
|
(type $FUNCSIG$v (func))
|
|
|
|
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
2019-06-05 23:15:39 +02:00
|
|
|
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
2019-02-28 17:36:22 +01:00
|
|
|
(memory $0 1)
|
2019-06-05 23:15:39 +02:00
|
|
|
(data (i32.const 8) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00s\00i\00m\00d\00.\00t\00s\00")
|
2019-02-28 17:36:22 +01:00
|
|
|
(table $0 1 funcref)
|
|
|
|
(elem (i32.const 0) $null)
|
|
|
|
(global $~lib/ASC_FEATURE_SIMD i32 (i32.const 0))
|
|
|
|
(export "memory" (memory $0))
|
|
|
|
(start $start)
|
2019-06-05 23:15:39 +02:00
|
|
|
(func $simd/test_v128 (; 1 ;) (type $FUNCSIG$v)
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d
|
|
|
|
v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 5
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d
|
|
|
|
v128.const i32x4 0x04030202 0x08070605 0x0c0b0a09 0x100f0e0d
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.ne
|
|
|
|
i8x16.any_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 10
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d
|
|
|
|
v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101
|
2019-02-28 17:36:22 +01:00
|
|
|
v128.and
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00010001 0x00010001 0x00010001 0x00010001
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 16
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d
|
|
|
|
v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101
|
2019-02-28 17:36:22 +01:00
|
|
|
v128.or
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x05030301 0x09070705 0x0d0b0b09 0x110f0f0d
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 23
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d
|
|
|
|
v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101
|
2019-02-28 17:36:22 +01:00
|
|
|
v128.xor
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x05020300 0x09060704 0x0d0a0b08 0x110e0f0c
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 30
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d
|
2019-02-28 17:36:22 +01:00
|
|
|
v128.not
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0xfbfcfdfe 0xf7f8f9fa 0xf3f4f5f6 0xeff0f1f2
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 37
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d
|
|
|
|
v128.const i32x4 0x0d0e0f10 0x090a0b0c 0x05060708 0x01020304
|
|
|
|
v128.const i32x4 0xff00ff00 0xff00ff00 0xff00ff00 0xff00ff00
|
2019-02-28 17:36:22 +01:00
|
|
|
v128.bitselect
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x040e0210 0x080a060c 0x0c060a08 0x10020e04
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 43
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
)
|
2019-06-05 23:15:39 +02:00
|
|
|
(func $simd/test_i8x16 (; 2 ;) (type $FUNCSIG$v)
|
2019-02-28 17:36:22 +01:00
|
|
|
(local $0 v128)
|
|
|
|
(local $1 v128)
|
|
|
|
(local $2 v128)
|
|
|
|
(local $3 v128)
|
|
|
|
(local $4 v128)
|
|
|
|
(local $5 v128)
|
|
|
|
(local $6 v128)
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x7f0f0e0d
|
2019-02-28 17:36:22 +01:00
|
|
|
local.set $0
|
|
|
|
local.get $0
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x7f0f0e0d
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 60
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const 1
|
|
|
|
i8x16.splat
|
|
|
|
local.set $1
|
|
|
|
local.get $1
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 62
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
local.get $1
|
|
|
|
i8x16.add
|
|
|
|
local.set $2
|
|
|
|
local.get $2
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x05040302 0x09080706 0x0d0c0b0a 0x80100f0e
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 64
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
local.get $1
|
|
|
|
i8x16.sub
|
|
|
|
local.get $0
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 65
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
local.get $1
|
|
|
|
i8x16.mul
|
|
|
|
local.get $2
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 66
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
i8x16.neg
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0xfcfdfeff 0xf8f9fafb 0xf4f5f6f7 0x81f1f2f3
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 67
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
i8x16.extract_lane_s 0
|
|
|
|
i32.const 24
|
|
|
|
i32.shl
|
|
|
|
i32.const 24
|
|
|
|
i32.shr_s
|
|
|
|
i32.const 2
|
|
|
|
i32.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 72
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
i8x16.extract_lane_s 15
|
|
|
|
i32.const 24
|
|
|
|
i32.shl
|
|
|
|
i32.const 24
|
|
|
|
i32.shr_s
|
|
|
|
i32.const -128
|
|
|
|
i32.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 73
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
i8x16.extract_lane_u 15
|
|
|
|
i32.const 255
|
|
|
|
i32.and
|
|
|
|
i32.const 128
|
|
|
|
i32.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 74
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
i32.const 17
|
|
|
|
i8x16.replace_lane 15
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x05040302 0x09080706 0x0d0c0b0a 0x11100f0e
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 75
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
local.get $1
|
|
|
|
v8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x04030201 0x08070605 0x01010101 0x01010101
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 80
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x7f7f7f7e 0x7f7f7f7f 0x7f7f7f7f 0x7f7f7f7f
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
|
|
|
i8x16.splat
|
|
|
|
i8x16.add_saturate_s
|
|
|
|
i32.const 127
|
|
|
|
i8x16.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 85
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0xfffffffe 0xffffffff 0xffffffff 0xffffffff
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
|
|
|
i8x16.splat
|
|
|
|
i8x16.add_saturate_u
|
|
|
|
i32.const -1
|
|
|
|
i8x16.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 91
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x80808081 0x80808080 0x80808080 0x80808080
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
|
|
|
i8x16.splat
|
|
|
|
i8x16.sub_saturate_s
|
|
|
|
i32.const -128
|
|
|
|
i8x16.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 97
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
|
|
|
i8x16.splat
|
|
|
|
i8x16.sub_saturate_u
|
|
|
|
i32.const 0
|
|
|
|
i8x16.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 103
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const 1
|
|
|
|
i8x16.splat
|
|
|
|
i32.const 1
|
|
|
|
i8x16.shl
|
|
|
|
i32.const 2
|
|
|
|
i8x16.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 109
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const -2
|
|
|
|
i8x16.splat
|
|
|
|
i32.const 1
|
|
|
|
i8x16.shr_s
|
|
|
|
i32.const -1
|
|
|
|
i8x16.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 110
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const -1
|
|
|
|
i8x16.splat
|
|
|
|
i32.const 1
|
|
|
|
i8x16.shr_u
|
|
|
|
i32.const 127
|
|
|
|
i8x16.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 111
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.any_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.const 1
|
|
|
|
i32.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 112
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const 1
|
|
|
|
i8x16.splat
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.const 1
|
|
|
|
i32.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 113
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const 0
|
|
|
|
i8x16.splat
|
|
|
|
i32.const 1
|
|
|
|
i8x16.replace_lane 0
|
|
|
|
local.set $3
|
|
|
|
i32.const 0
|
|
|
|
i8x16.splat
|
|
|
|
i32.const -1
|
|
|
|
i8x16.replace_lane 0
|
|
|
|
local.set $4
|
|
|
|
local.get $4
|
|
|
|
local.set $5
|
|
|
|
local.get $4
|
|
|
|
v128.not
|
|
|
|
local.set $6
|
|
|
|
local.get $4
|
|
|
|
local.get $3
|
|
|
|
i8x16.eq
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 118
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $3
|
|
|
|
i8x16.ne
|
|
|
|
local.get $5
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 119
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $3
|
|
|
|
i8x16.lt_s
|
|
|
|
local.get $5
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 120
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $3
|
|
|
|
local.get $4
|
|
|
|
i8x16.lt_u
|
|
|
|
local.get $5
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 121
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $3
|
|
|
|
local.get $4
|
|
|
|
i8x16.le_s
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 122
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $3
|
|
|
|
i8x16.le_u
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 123
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $3
|
|
|
|
local.get $4
|
|
|
|
i8x16.gt_s
|
|
|
|
local.get $5
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 124
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $3
|
|
|
|
i8x16.gt_u
|
|
|
|
local.get $5
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 125
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $3
|
|
|
|
i8x16.ge_s
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 126
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $3
|
|
|
|
local.get $4
|
|
|
|
i8x16.ge_u
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 127
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
)
|
2019-06-05 23:15:39 +02:00
|
|
|
(func $simd/test_i16x8 (; 3 ;) (type $FUNCSIG$v)
|
2019-02-28 17:36:22 +01:00
|
|
|
(local $0 v128)
|
|
|
|
(local $1 v128)
|
|
|
|
(local $2 v128)
|
|
|
|
(local $3 v128)
|
|
|
|
(local $4 v128)
|
|
|
|
(local $5 v128)
|
|
|
|
(local $6 v128)
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00020001 0x00040003 0x00060005 0x7fff0007
|
2019-02-28 17:36:22 +01:00
|
|
|
local.set $0
|
|
|
|
local.get $0
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00020001 0x00040003 0x00060005 0x7fff0007
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 132
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const 1
|
|
|
|
i16x8.splat
|
|
|
|
local.set $1
|
|
|
|
local.get $1
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00010001 0x00010001 0x00010001 0x00010001
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 134
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
local.get $1
|
|
|
|
i16x8.add
|
|
|
|
local.set $2
|
|
|
|
local.get $2
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00030002 0x00050004 0x00070006 0x80000008
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 136
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
local.get $1
|
|
|
|
i16x8.sub
|
|
|
|
local.get $0
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 137
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
local.get $1
|
|
|
|
i16x8.mul
|
|
|
|
local.get $2
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 138
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
i16x8.neg
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0xfffeffff 0xfffcfffd 0xfffafffb 0x8001fff9
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 139
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
i16x8.extract_lane_s 0
|
|
|
|
i32.const 16
|
|
|
|
i32.shl
|
|
|
|
i32.const 16
|
|
|
|
i32.shr_s
|
|
|
|
i32.const 2
|
|
|
|
i32.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 144
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
i16x8.extract_lane_s 7
|
|
|
|
i32.const 16
|
|
|
|
i32.shl
|
|
|
|
i32.const 16
|
|
|
|
i32.shr_s
|
|
|
|
i32.const -32768
|
|
|
|
i32.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 145
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
i16x8.extract_lane_u 7
|
|
|
|
i32.const 65535
|
|
|
|
i32.and
|
|
|
|
i32.const 32768
|
|
|
|
i32.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 146
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
i32.const 9
|
|
|
|
i16x8.replace_lane 7
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00030002 0x00050004 0x00070006 0x00090008
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 147
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
local.get $1
|
|
|
|
v8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00020001 0x00040003 0x00010001 0x00010001
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 152
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x7fff7ffe 0x7fff7fff 0x7fff7fff 0x7fff7fff
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
|
|
|
i16x8.splat
|
|
|
|
i16x8.add_saturate_s
|
|
|
|
i32.const 32767
|
|
|
|
i16x8.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 157
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0xfffffffe 0xffffffff 0xffffffff 0xffffffff
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
|
|
|
i16x8.splat
|
|
|
|
i16x8.add_saturate_u
|
|
|
|
i32.const -1
|
|
|
|
i16x8.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 163
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x80008001 0x80008000 0x80008000 0x80008000
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
|
|
|
i16x8.splat
|
|
|
|
i16x8.sub_saturate_s
|
|
|
|
i32.const -32768
|
|
|
|
i16x8.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 169
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
|
|
|
i16x8.splat
|
|
|
|
i16x8.sub_saturate_u
|
|
|
|
i32.const 0
|
|
|
|
i16x8.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 175
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const 1
|
|
|
|
i16x8.splat
|
|
|
|
i32.const 1
|
|
|
|
i16x8.shl
|
|
|
|
i32.const 2
|
|
|
|
i16x8.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 181
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const -2
|
|
|
|
i16x8.splat
|
|
|
|
i32.const 1
|
|
|
|
i16x8.shr_s
|
|
|
|
i32.const -1
|
|
|
|
i16x8.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 182
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const -1
|
|
|
|
i16x8.splat
|
|
|
|
i32.const 1
|
|
|
|
i16x8.shr_u
|
|
|
|
i32.const 32767
|
|
|
|
i16x8.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 183
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000
|
2019-02-28 17:36:22 +01:00
|
|
|
i16x8.any_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.const 1
|
|
|
|
i32.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 184
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const 1
|
|
|
|
i16x8.splat
|
|
|
|
i16x8.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.const 1
|
|
|
|
i32.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 185
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const 0
|
|
|
|
i16x8.splat
|
|
|
|
i32.const 1
|
|
|
|
i16x8.replace_lane 0
|
|
|
|
local.set $3
|
|
|
|
i32.const 0
|
|
|
|
i16x8.splat
|
|
|
|
i32.const -1
|
|
|
|
i16x8.replace_lane 0
|
|
|
|
local.set $4
|
|
|
|
local.get $4
|
|
|
|
local.set $5
|
|
|
|
local.get $4
|
|
|
|
v128.not
|
|
|
|
local.set $6
|
|
|
|
local.get $4
|
|
|
|
local.get $3
|
|
|
|
i16x8.eq
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 190
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $3
|
|
|
|
i16x8.ne
|
|
|
|
local.get $5
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 191
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $3
|
|
|
|
i16x8.lt_s
|
|
|
|
local.get $5
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 192
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $3
|
|
|
|
local.get $4
|
|
|
|
i16x8.lt_u
|
|
|
|
local.get $5
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 193
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $3
|
|
|
|
local.get $4
|
|
|
|
i16x8.le_s
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 194
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $3
|
|
|
|
i16x8.le_u
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 195
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $3
|
|
|
|
local.get $4
|
|
|
|
i16x8.gt_s
|
|
|
|
local.get $5
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 196
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $3
|
|
|
|
i16x8.gt_u
|
|
|
|
local.get $5
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 197
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $3
|
|
|
|
i16x8.ge_s
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 198
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $3
|
|
|
|
local.get $4
|
|
|
|
i16x8.ge_u
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 199
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
)
|
2019-06-05 23:15:39 +02:00
|
|
|
(func $simd/test_i32x4 (; 4 ;) (type $FUNCSIG$v)
|
2019-02-28 17:36:22 +01:00
|
|
|
(local $0 v128)
|
|
|
|
(local $1 v128)
|
|
|
|
(local $2 v128)
|
|
|
|
(local $3 v128)
|
|
|
|
(local $4 v128)
|
|
|
|
(local $5 v128)
|
|
|
|
(local $6 v128)
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000001 0x00000002 0x00000003 0x7fffffff
|
2019-02-28 17:36:22 +01:00
|
|
|
local.set $0
|
|
|
|
local.get $0
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000001 0x00000002 0x00000003 0x7fffffff
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 204
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const 1
|
|
|
|
i32x4.splat
|
|
|
|
local.set $1
|
|
|
|
local.get $1
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000001 0x00000001 0x00000001 0x00000001
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 206
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
local.get $1
|
|
|
|
i32x4.add
|
|
|
|
local.set $2
|
|
|
|
local.get $2
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000002 0x00000003 0x00000004 0x80000000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 208
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
local.get $1
|
|
|
|
i32x4.sub
|
|
|
|
local.get $0
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 209
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
local.get $1
|
|
|
|
i32x4.mul
|
|
|
|
local.get $2
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 210
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
i32x4.neg
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0xffffffff 0xfffffffe 0xfffffffd 0x80000001
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 211
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
i32x4.extract_lane 0
|
|
|
|
i32.const 2
|
|
|
|
i32.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 216
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
i32x4.extract_lane 3
|
|
|
|
i32.const -2147483648
|
|
|
|
i32.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 217
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
i32.const 5
|
|
|
|
i32x4.replace_lane 3
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000002 0x00000003 0x00000004 0x00000005
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 218
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
local.get $1
|
|
|
|
v8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000001 0x00000002 0x00000001 0x00000001
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 223
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const 1
|
|
|
|
i32x4.splat
|
|
|
|
i32.const 1
|
|
|
|
i32x4.shl
|
|
|
|
i32.const 2
|
|
|
|
i32x4.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 228
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const -2
|
|
|
|
i32x4.splat
|
|
|
|
i32.const 1
|
|
|
|
i32x4.shr_s
|
|
|
|
i32.const -1
|
|
|
|
i32x4.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 229
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const -1
|
|
|
|
i32x4.splat
|
|
|
|
i32.const 1
|
|
|
|
i32x4.shr_u
|
|
|
|
i32.const 2147483647
|
|
|
|
i32x4.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 230
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000
|
2019-02-28 17:36:22 +01:00
|
|
|
i32x4.any_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.const 1
|
|
|
|
i32.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 231
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const 1
|
|
|
|
i32x4.splat
|
|
|
|
i32x4.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.const 1
|
|
|
|
i32.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 232
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const 0
|
|
|
|
i32x4.splat
|
|
|
|
i32.const 1
|
|
|
|
i32x4.replace_lane 0
|
|
|
|
local.set $3
|
|
|
|
i32.const 0
|
|
|
|
i32x4.splat
|
|
|
|
i32.const -1
|
|
|
|
i32x4.replace_lane 0
|
|
|
|
local.set $4
|
|
|
|
local.get $4
|
|
|
|
local.set $5
|
|
|
|
local.get $4
|
|
|
|
v128.not
|
|
|
|
local.set $6
|
|
|
|
local.get $4
|
|
|
|
local.get $3
|
|
|
|
i32x4.eq
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 237
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $3
|
|
|
|
i32x4.ne
|
|
|
|
local.get $5
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 238
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $3
|
|
|
|
i32x4.lt_s
|
|
|
|
local.get $5
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 239
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $3
|
|
|
|
local.get $4
|
|
|
|
i32x4.lt_u
|
|
|
|
local.get $5
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 240
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $3
|
|
|
|
local.get $4
|
|
|
|
i32x4.le_s
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 241
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $3
|
|
|
|
i32x4.le_u
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 242
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $3
|
|
|
|
local.get $4
|
|
|
|
i32x4.gt_s
|
|
|
|
local.get $5
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 243
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $3
|
|
|
|
i32x4.gt_u
|
|
|
|
local.get $5
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 244
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $3
|
|
|
|
i32x4.ge_s
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 245
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $3
|
|
|
|
local.get $4
|
|
|
|
i32x4.ge_u
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 246
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
f32.const -1.5
|
|
|
|
f32x4.splat
|
|
|
|
i32x4.trunc_sat_f32x4_s
|
|
|
|
i32.const -1
|
|
|
|
i32x4.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 247
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
f32.const -1.5
|
|
|
|
f32x4.splat
|
|
|
|
i32x4.trunc_sat_f32x4_u
|
|
|
|
i32.const 0
|
|
|
|
i32x4.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 252
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
)
|
2019-06-05 23:15:39 +02:00
|
|
|
(func $simd/test_i64x2 (; 5 ;) (type $FUNCSIG$v)
|
2019-02-28 17:36:22 +01:00
|
|
|
(local $0 v128)
|
|
|
|
(local $1 v128)
|
|
|
|
(local $2 v128)
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000001 0x00000000 0xffffffff 0x7fffffff
|
2019-02-28 17:36:22 +01:00
|
|
|
local.set $0
|
|
|
|
local.get $0
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000001 0x00000000 0xffffffff 0x7fffffff
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 261
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i64.const 1
|
|
|
|
i64x2.splat
|
|
|
|
local.set $1
|
|
|
|
local.get $1
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000001 0x00000000 0x00000001 0x00000000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 263
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
local.get $1
|
|
|
|
i64x2.add
|
|
|
|
local.set $2
|
|
|
|
local.get $2
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000002 0x00000000 0x00000000 0x80000000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 265
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
local.get $1
|
|
|
|
i64x2.sub
|
|
|
|
local.get $0
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 266
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
i64x2.neg
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0xffffffff 0xffffffff 0x00000001 0x80000000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 267
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
i64x2.extract_lane 0
|
|
|
|
i64.const 2
|
|
|
|
i64.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 272
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
i64x2.extract_lane 1
|
|
|
|
i64.const -9223372036854775808
|
|
|
|
i64.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 273
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
i64.const 3
|
|
|
|
i64x2.replace_lane 1
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000002 0x00000000 0x00000003 0x00000000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 274
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
local.get $1
|
|
|
|
v8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000001 0x00000000 0x00000001 0x00000000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 279
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i64.const 1
|
|
|
|
i64x2.splat
|
|
|
|
i32.const 1
|
|
|
|
i64x2.shl
|
|
|
|
i64.const 2
|
|
|
|
i64x2.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 284
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i64.const -2
|
|
|
|
i64x2.splat
|
|
|
|
i32.const 1
|
|
|
|
i64x2.shr_s
|
|
|
|
i64.const -1
|
|
|
|
i64x2.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 285
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i64.const -1
|
|
|
|
i64x2.splat
|
|
|
|
i32.const 1
|
|
|
|
i64x2.shr_u
|
|
|
|
i64.const 9223372036854775807
|
|
|
|
i64x2.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 286
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000
|
2019-02-28 17:36:22 +01:00
|
|
|
i64x2.any_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.const 1
|
|
|
|
i32.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 287
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i64.const 1
|
|
|
|
i64x2.splat
|
|
|
|
i64x2.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.const 1
|
|
|
|
i32.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 288
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
f64.const -1.5
|
|
|
|
f64x2.splat
|
|
|
|
i64x2.trunc_sat_f64x2_s
|
|
|
|
i64.const -1
|
|
|
|
i64x2.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 289
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
f64.const -1.5
|
|
|
|
f64x2.splat
|
|
|
|
i64x2.trunc_sat_f64x2_u
|
|
|
|
i64.const 0
|
|
|
|
i64x2.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 294
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
)
|
2019-06-05 23:15:39 +02:00
|
|
|
(func $simd/test_f32x4 (; 6 ;) (type $FUNCSIG$v)
|
2019-02-28 17:36:22 +01:00
|
|
|
(local $0 v128)
|
|
|
|
(local $1 v128)
|
|
|
|
(local $2 v128)
|
|
|
|
(local $3 v128)
|
|
|
|
(local $4 v128)
|
|
|
|
(local $5 v128)
|
|
|
|
(local $6 v128)
|
|
|
|
(local $7 v128)
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x3fc00000 0x40200000 0x40600000 0x40900000
|
2019-02-28 17:36:22 +01:00
|
|
|
local.set $0
|
|
|
|
local.get $0
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x3fc00000 0x40200000 0x40600000 0x40900000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 303
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
f32.const 1
|
|
|
|
f32x4.splat
|
|
|
|
local.set $1
|
|
|
|
local.get $1
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x3f800000 0x3f800000 0x3f800000 0x3f800000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 305
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
local.get $1
|
|
|
|
f32x4.add
|
|
|
|
local.set $2
|
|
|
|
local.get $2
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x40200000 0x40600000 0x40900000 0x40b00000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 307
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
local.get $1
|
|
|
|
f32x4.sub
|
|
|
|
local.get $0
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 308
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
local.get $1
|
|
|
|
f32x4.mul
|
|
|
|
local.get $2
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 309
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
local.get $0
|
|
|
|
f32x4.mul
|
|
|
|
local.set $3
|
|
|
|
local.get $3
|
|
|
|
local.get $0
|
|
|
|
f32x4.div
|
|
|
|
local.get $0
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 311
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $3
|
|
|
|
local.get $0
|
|
|
|
f32x4.mul
|
|
|
|
local.get $0
|
|
|
|
i8x16.ne
|
|
|
|
i8x16.any_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 312
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
f32x4.neg
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0xbfc00000 0xc0200000 0xc0600000 0xc0900000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 313
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
f32x4.extract_lane 0
|
|
|
|
f32.const 2.5
|
|
|
|
f32.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 314
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
f32x4.extract_lane 3
|
|
|
|
f32.const 5.5
|
|
|
|
f32.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 315
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
f32.const 6.5
|
|
|
|
f32x4.replace_lane 3
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x40200000 0x40600000 0x40900000 0x40d00000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 316
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
local.get $1
|
|
|
|
v8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x3fc00000 0x40200000 0x3f800000 0x3f800000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 321
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
f32.const 0
|
|
|
|
f32x4.splat
|
|
|
|
f32.const 1
|
|
|
|
f32x4.replace_lane 0
|
|
|
|
local.set $4
|
|
|
|
f32.const 0
|
|
|
|
f32x4.splat
|
|
|
|
f32.const -1
|
|
|
|
f32x4.replace_lane 0
|
|
|
|
local.set $5
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0xffffffff 0x00000000 0x00000000 0x00000000
|
2019-02-28 17:36:22 +01:00
|
|
|
local.set $6
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000000 0xffffffff 0xffffffff 0xffffffff
|
2019-02-28 17:36:22 +01:00
|
|
|
local.set $7
|
|
|
|
local.get $5
|
|
|
|
local.get $4
|
|
|
|
f32x4.eq
|
|
|
|
local.get $7
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 330
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $5
|
|
|
|
local.get $4
|
|
|
|
f32x4.ne
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 331
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $5
|
|
|
|
local.get $4
|
|
|
|
f32x4.lt
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 332
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $5
|
|
|
|
f32x4.le
|
|
|
|
local.get $7
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 333
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $5
|
|
|
|
f32x4.gt
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 334
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $5
|
|
|
|
local.get $4
|
|
|
|
f32x4.ge
|
|
|
|
local.get $7
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 335
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $5
|
|
|
|
local.get $4
|
|
|
|
f32x4.min
|
|
|
|
local.get $5
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 336
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $5
|
|
|
|
local.get $4
|
|
|
|
f32x4.max
|
|
|
|
local.get $4
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 337
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $5
|
|
|
|
f32x4.abs
|
|
|
|
local.get $4
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 338
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x40800000 0x41100000 0x41800000 0x41c80000
|
2019-02-28 17:36:22 +01:00
|
|
|
f32x4.sqrt
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x40000000 0x40400000 0x40800000 0x40a00000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 339
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const -1
|
|
|
|
i32x4.splat
|
|
|
|
f32x4.convert_i32x4_s
|
|
|
|
f32.const -1
|
|
|
|
f32x4.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 340
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i32.const -1
|
|
|
|
i32x4.splat
|
|
|
|
f32x4.convert_i32x4_u
|
|
|
|
f32.const 4294967296
|
|
|
|
f32x4.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 345
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
)
|
2019-06-05 23:15:39 +02:00
|
|
|
(func $simd/test_f64x2 (; 7 ;) (type $FUNCSIG$v)
|
2019-02-28 17:36:22 +01:00
|
|
|
(local $0 v128)
|
|
|
|
(local $1 v128)
|
|
|
|
(local $2 v128)
|
|
|
|
(local $3 v128)
|
|
|
|
(local $4 v128)
|
|
|
|
(local $5 v128)
|
|
|
|
(local $6 v128)
|
|
|
|
(local $7 v128)
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000000 0x3ff80000 0x00000000 0x40040000
|
2019-02-28 17:36:22 +01:00
|
|
|
local.set $0
|
|
|
|
local.get $0
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000000 0x3ff80000 0x00000000 0x40040000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 354
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
f64.const 1
|
|
|
|
f64x2.splat
|
|
|
|
local.set $1
|
|
|
|
local.get $1
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000000 0x3ff00000 0x00000000 0x3ff00000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 356
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
local.get $1
|
|
|
|
f64x2.add
|
|
|
|
local.set $2
|
|
|
|
local.get $2
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000000 0x40040000 0x00000000 0x400c0000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 358
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
local.get $1
|
|
|
|
f64x2.sub
|
|
|
|
local.get $0
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 359
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
local.get $1
|
|
|
|
f64x2.mul
|
|
|
|
local.get $2
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 360
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
local.get $0
|
|
|
|
f64x2.mul
|
|
|
|
local.set $3
|
|
|
|
local.get $3
|
|
|
|
local.get $0
|
|
|
|
f64x2.div
|
|
|
|
local.get $0
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 362
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $3
|
|
|
|
local.get $0
|
|
|
|
f64x2.mul
|
|
|
|
local.get $0
|
|
|
|
i8x16.ne
|
|
|
|
i8x16.any_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 363
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
f64x2.neg
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000000 0xbff80000 0x00000000 0xc0040000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 364
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
f64x2.extract_lane 0
|
|
|
|
f64.const 2.5
|
|
|
|
f64.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 365
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
f64x2.extract_lane 1
|
|
|
|
f64.const 3.5
|
|
|
|
f64.eq
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 366
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $2
|
|
|
|
f64.const 4.5
|
|
|
|
f64x2.replace_lane 1
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000000 0x40040000 0x00000000 0x40120000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 367
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $0
|
|
|
|
local.get $1
|
|
|
|
v8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000000 0x3ff80000 0x00000000 0x3ff00000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 372
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
f64.const 0
|
|
|
|
f64x2.splat
|
|
|
|
f64.const 1
|
|
|
|
f64x2.replace_lane 0
|
|
|
|
local.set $4
|
|
|
|
f64.const 0
|
|
|
|
f64x2.splat
|
|
|
|
f64.const -1
|
|
|
|
f64x2.replace_lane 0
|
|
|
|
local.set $5
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0xffffffff 0xffffffff 0x00000000 0x00000000
|
2019-02-28 17:36:22 +01:00
|
|
|
local.set $6
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000000 0x00000000 0xffffffff 0xffffffff
|
2019-02-28 17:36:22 +01:00
|
|
|
local.set $7
|
|
|
|
local.get $5
|
|
|
|
local.get $4
|
|
|
|
f64x2.eq
|
|
|
|
local.get $7
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 381
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $5
|
|
|
|
local.get $4
|
|
|
|
f64x2.ne
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 382
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $5
|
|
|
|
local.get $4
|
|
|
|
f64x2.lt
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 383
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $5
|
|
|
|
f64x2.le
|
|
|
|
local.get $7
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 384
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $4
|
|
|
|
local.get $5
|
|
|
|
f64x2.gt
|
|
|
|
local.get $6
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 385
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $5
|
|
|
|
local.get $4
|
|
|
|
f64x2.ge
|
|
|
|
local.get $7
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 386
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $5
|
|
|
|
local.get $4
|
|
|
|
f64x2.min
|
|
|
|
local.get $5
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 387
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $5
|
|
|
|
local.get $4
|
|
|
|
f64x2.max
|
|
|
|
local.get $4
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 388
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
local.get $5
|
|
|
|
f64x2.abs
|
|
|
|
local.get $4
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 389
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000000 0x40100000 0x00000000 0x40220000
|
2019-02-28 17:36:22 +01:00
|
|
|
f64x2.sqrt
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x00000000 0x40000000 0x00000000 0x40080000
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 390
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i64.const -1
|
|
|
|
i64x2.splat
|
|
|
|
f64x2.convert_i64x2_s
|
|
|
|
f64.const -1
|
|
|
|
f64x2.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 391
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
i64.const -1
|
|
|
|
i64x2.splat
|
|
|
|
f64x2.convert_i64x2_u
|
|
|
|
f64.const 18446744073709551615
|
|
|
|
f64x2.splat
|
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 396
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
)
|
2019-06-05 23:15:39 +02:00
|
|
|
(func $simd/test_v8x16 (; 8 ;) (type $FUNCSIG$v)
|
2019-02-28 17:36:22 +01:00
|
|
|
(local $0 v128)
|
|
|
|
(local $1 v128)
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x03020100 0x07060504 0x0b0a0908 0x0f0e0d0c
|
2019-02-28 17:36:22 +01:00
|
|
|
local.set $0
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x13121110 0x17161514 0x1b1a1918 0x1f1e1d1c
|
2019-02-28 17:36:22 +01:00
|
|
|
local.set $1
|
|
|
|
local.get $0
|
|
|
|
local.get $1
|
|
|
|
v8x16.shuffle 0 17 2 19 4 21 6 23 8 25 10 27 12 29 14 31
|
2019-03-27 15:50:05 +01:00
|
|
|
v128.const i32x4 0x13021100 0x17061504 0x1b0a1908 0x1f0e1d0c
|
2019-02-28 17:36:22 +01:00
|
|
|
i8x16.eq
|
|
|
|
i8x16.all_true
|
|
|
|
i32.const 0
|
|
|
|
i32.ne
|
|
|
|
i32.eqz
|
|
|
|
if
|
|
|
|
i32.const 0
|
2019-06-05 23:15:39 +02:00
|
|
|
i32.const 24
|
|
|
|
i32.const 406
|
2019-02-28 17:36:22 +01:00
|
|
|
i32.const 2
|
2019-06-05 23:15:39 +02:00
|
|
|
call $~lib/builtins/abort
|
2019-02-28 17:36:22 +01:00
|
|
|
unreachable
|
|
|
|
end
|
|
|
|
)
|
2019-06-05 23:15:39 +02:00
|
|
|
(func $start:simd (; 9 ;) (type $FUNCSIG$v)
|
|
|
|
call $simd/test_v128
|
|
|
|
call $simd/test_i8x16
|
|
|
|
call $simd/test_i16x8
|
|
|
|
call $simd/test_i32x4
|
|
|
|
call $simd/test_i64x2
|
|
|
|
call $simd/test_f32x4
|
|
|
|
call $simd/test_f64x2
|
|
|
|
call $simd/test_v8x16
|
2019-02-28 17:36:22 +01:00
|
|
|
)
|
2019-06-05 23:15:39 +02:00
|
|
|
(func $start (; 10 ;) (type $FUNCSIG$v)
|
2019-02-28 17:36:22 +01:00
|
|
|
call $start:simd
|
|
|
|
)
|
2019-06-05 23:15:39 +02:00
|
|
|
(func $null (; 11 ;) (type $FUNCSIG$v)
|
2019-02-28 17:36:22 +01:00
|
|
|
)
|
|
|
|
)
|