summaryrefslogtreecommitdiff
path: root/test/interp
diff options
context:
space:
mode:
authorlizhengxing <unixhaha@gmail.com>2018-02-27 10:51:09 -0800
committerBen Smith <binjimin@gmail.com>2018-02-27 10:51:09 -0800
commit654a23c3a5edd26a9e2bec177042b49c1fee679d (patch)
treec4f05ba624dcb2d253fea7efa911d831eae4b698 /test/interp
parenta3f72c9a04f2eb1aca9236fcea87fc80ebf5a7eb (diff)
downloadwabt-654a23c3a5edd26a9e2bec177042b49c1fee679d.tar.gz
wabt-654a23c3a5edd26a9e2bec177042b49c1fee679d.tar.bz2
wabt-654a23c3a5edd26a9e2bec177042b49c1fee679d.zip
SIMD Comparison Greater than instructions implementation. (#772)
Including: i8x16.gt_s, i8x16_gt_u i16x8.gt_s, i16x8_gt_u i32x4.gt_s, i32x4_gt_u f32x4.gt f64x2.gt
Diffstat (limited to 'test/interp')
-rw-r--r--test/interp/simd-compare.txt62
1 files changed, 62 insertions, 0 deletions
diff --git a/test/interp/simd-compare.txt b/test/interp/simd-compare.txt
index a5db9177..6780abea 100644
--- a/test/interp/simd-compare.txt
+++ b/test/interp/simd-compare.txt
@@ -212,6 +212,59 @@
v128.const i32 0x00000000 0x3ff80000 0x00000000 0x3ff80000
v128.const i32 0x00000000 0xfff80000 0x00000000 0x3ff00000
f64x2.le)
+
+ ;; i8x16 gt (sign and unsigned)
+ (func (export "i8x16_gt_s") (result v128)
+ v128.const i32 0xff000001 0xe0000002 0x00008003 0x00000004
+ v128.const i32 0x02000001 0xe000ff02 0x00000003 0x00008104
+ i8x16.gt_s)
+ (func (export "i8x16_gt_u") (result v128)
+ v128.const i32 0xff000001 0xe0000002 0x00008003 0x00000004
+ v128.const i32 0x02000001 0xe000ff02 0x00000003 0x00008104
+ i8x16.gt_u)
+
+ ;; i16x8 gt (sign and unsigned)
+ (func (export "i16x8_gt_s") (result v128)
+ v128.const i32 0xff000001 0xe0000002 0x00008003 0x00000004
+ v128.const i32 0x02000001 0xe000ff02 0x00000003 0x00008104
+ i16x8.gt_s)
+ (func (export "i16x8_gt_u") (result v128)
+ v128.const i32 0xff000001 0xe0000002 0x00008003 0x00000004
+ v128.const i32 0x02000001 0xe000ff02 0x00000003 0x00008104
+ i16x8.gt_u)
+
+ ;; i32x4 gt (sign and unsigned)
+ (func (export "i32x4_gt_s") (result v128)
+ v128.const i32 0xff000001 0xe0000002 0x00008003 0x00000004
+ v128.const i32 0x02000001 0xe000ff02 0x00000003 0x00008104
+ i32x4.gt_s)
+ (func (export "i32x4_gt_u") (result v128)
+ v128.const i32 0xff000001 0xe0000002 0x00008003 0x00000004
+ v128.const i32 0x02000001 0xe000ff02 0x00000003 0x00008104
+ i32x4.gt_u)
+
+ ;; f32x4 gt
+ ;; For Floating num:
+ ;; +0.0 = 0x00000000, -0.0 = 0x80000000, 0xffc00000 is a NaN
+ ;; 1.5 = 0x449a5000, 1.0 = 0x3f800000
+ (func (export "f32x4_gt_0") (result v128)
+ v128.const i32 0x00000000 0xffc00000 0x449a5000 0x449a5000
+ v128.const i32 0x80000000 0xffc00000 0xffc00000 0x3f800000
+ f32x4.gt)
+
+ ;; f64x2 gt
+ ;; For Double num:
+ ;; +0.0 = 0x0000000000000000, -0.0 = 0x8000000000000000
+ ;; fff8000000000000 is a NaN
+ ;; 1.5 = 3ff8000000000000, 1.0 = 0x3ff0000000000000
+ (func (export "f64x2_gt_0") (result v128)
+ v128.const i32 0x00000000 0x00000000 0x00000000 0xfff80000
+ v128.const i32 0x00000000 0x80000000 0x00000000 0xfff80000
+ f64x2.gt)
+ (func (export "f64x2_gt_1") (result v128)
+ v128.const i32 0x00000000 0x3ff80000 0x00000000 0x3ff80000
+ v128.const i32 0x00000000 0xfff80000 0x00000000 0x3ff00000
+ f64x2.gt)
)
(;; STDOUT ;;;
i8x16_eq_0() => v128:0x01010101 0x01010101 0x01010101 0x01010101
@@ -250,4 +303,13 @@ i32x4_le_u() => v128:0x00000000 0x00000001 0x00000000 0x00000001
f32x4_le_0() => v128:0x00000001 0x00000000 0x00000000 0x00000000
f64x2_le_0() => v128:0x00000001 0x00000000 0x00000000 0x00000000
f64x2_le_1() => v128:0x00000000 0x00000000 0x00000000 0x00000000
+i8x16_gt_s() => v128:0x00000000 0x00000100 0x00000000 0x00000100
+i8x16_gt_u() => v128:0x01000000 0x00000000 0x00000100 0x00000000
+i16x8_gt_s() => v128:0x00000000 0x00000001 0x00000000 0x00000001
+i16x8_gt_u() => v128:0x00010000 0x00000000 0x00000001 0x00000000
+i32x4_gt_s() => v128:0x00000000 0x00000000 0x00000001 0x00000000
+i32x4_gt_u() => v128:0x00000001 0x00000000 0x00000001 0x00000000
+f32x4_gt_0() => v128:0x00000000 0x00000000 0x00000000 0x00000001
+f64x2_gt_0() => v128:0x00000000 0x00000000 0x00000000 0x00000000
+f64x2_gt_1() => v128:0x00000000 0x00000000 0x00000001 0x00000000
;;; STDOUT ;;)