;;; TOOL: run-interp
(module
  ;; i8x16 shl
  (func (export "i8x16_shl_0") (result v128)
    v128.const i32x4 0xff000001 0xe0000002 0x00000003 0x00000004
    i32.const 3
    i8x16.shl)
  (func (export "i8x16_shl_1") (result v128)
    v128.const i32x4 0xff000001 0xe0000002 0x00000003 0x00000004
    i32.const 11
    i8x16.shl)

  ;; i16x8 shl
  (func (export "i16x8_shl_0") (result v128)
    v128.const i32x4 0xff000071 0xe0000702 0x00000003 0x00000004
    i32.const 3
    i16x8.shl)
  (func (export "i16x8_shl_1") (result v128)
    v128.const i32x4 0xff000071 0xe0000702 0x00000003 0x00000004
    i32.const 19
    i16x8.shl)

  ;; i32x4 shl
  (func (export "i32x4_shl_0") (result v128)
    v128.const i32x4 0xff0ff071 0xe0077702 0xe0004003 0x00002004
    i32.const 3
    i32x4.shl)
  (func (export "i32x4_shl_1") (result v128)
    v128.const i32x4 0xff0ff071 0xe0077702 0xe0004003 0x00002004
    i32.const 35
    i32x4.shl)

  ;; i64x2 shl
  (func (export "i64x2_shl_0") (result v128)
    v128.const i32x4 0xff000055 0xe0000702 0xe0004003 0x00002004
    i32.const 3
    i64x2.shl)
  (func (export "i64x2_shl_1") (result v128)
    v128.const i32x4 0xff000055 0xe0000702 0xe0004003 0x00002004
    i32.const 67
    i64x2.shl)

  ;; i8x16 shr (signed and unsigned)
  (func (export "i8x16_shr_s_0") (result v128)
    v128.const i32x4 0xff00000f 0xe00f7002 0x0f000003 0x000ff004
    i32.const 3
    i8x16.shr_s)
  (func (export "i8x16_shr_s_1") (result v128)
    v128.const i32x4 0xff00000f 0xe00f7002 0x0f000003 0x000ff004
    i32.const 11
    i8x16.shr_s)
  (func (export "i8x16_shr_u_0") (result v128)
    v128.const i32x4 0xff00000f 0xe00f7002 0x0f000003 0x000ff004
    i32.const 3
    i8x16.shr_u)
  (func (export "i8x16_shr_u_1") (result v128)
    v128.const i32x4 0xff00000f 0xe00f7002 0x0f000003 0x000ff004
    i32.const 11
    i8x16.shr_u)

  ;; i16x8 shr (signed and unsigned)
  (func (export "i16x8_shr_s_0") (result v128)
    v128.const i32x4 0xff00000f 0xe00f7002 0x0f000003 0x000ff004
    i32.const 3
    i16x8.shr_s)
  (func (export "i16x8_shr_s_1") (result v128)
    v128.const i32x4 0xff00000f 0xe00f7002 0x0f000003 0x000ff004
    i32.const 19
    i16x8.shr_s)
  (func (export "i16x8_shr_u_0") (result v128)
    v128.const i32x4 0xff00000f 0xe00f7002 0x0f000003 0x000ff004
    i32.const 3
    i16x8.shr_u)
  (func (export "i16x8_shr_u_1") (result v128)
    v128.const i32x4 0xff00000f 0xe00f7002 0x0f000003 0x000ff004
    i32.const 19
    i16x8.shr_u)

  ;; i32x4 shr (signed and unsigned)
  (func (export "i32x4_shr_s_0") (result v128)
    v128.const i32x4 0xff00000f 0xe00f7002 0x0f000003 0x000ff004
    i32.const 3
    i32x4.shr_s)
  (func (export "i32x4_shr_s_1") (result v128)
    v128.const i32x4 0xff00000f 0xe00f7002 0x0f000003 0x000ff004
    i32.const 35
    i32x4.shr_s)
  (func (export "i32x4_shr_u_0") (result v128)
    v128.const i32x4 0xff00000f 0xe00f7002 0x0f000003 0x000ff004
    i32.const 3
    i32x4.shr_u)
  (func (export "i32x4_shr_u_1") (result v128)
    v128.const i32x4 0xff00000f 0xe00f7002 0x0f000003 0x000ff004
    i32.const 35
    i32x4.shr_u)

  ;; i64x2 shr (signed and unsigned)
  (func (export "i64x2_shr_s_0") (result v128)
    v128.const i32x4 0xff00000f 0xe00f7002 0x0f000003 0x000ff004
    i32.const 3
    i64x2.shr_s)
  (func (export "i64x2_shr_s_1") (result v128)
    v128.const i32x4 0xff00000f 0xe00f7002 0x0f000003 0x000ff004
    i32.const 67
    i64x2.shr_s)
  (func (export "i64x2_shr_u_0") (result v128)
    v128.const i32x4 0xff00000f 0xe00f7002 0x0f000003 0x000ff004
    i32.const 3
    i64x2.shr_u)
  (func (export "i64x2_shr_u_1") (result v128)
    v128.const i32x4 0xff00000f 0xe00f7002 0x0f000003 0x000ff004
    i32.const 67
    i64x2.shr_u)
)
(;; STDOUT ;;;
i8x16_shl_0() => v128 i32x4:0xf8000008 0x00000010 0x00000018 0x00000020
i8x16_shl_1() => v128 i32x4:0xf8000008 0x00000010 0x00000018 0x00000020
i16x8_shl_0() => v128 i32x4:0xf8000388 0x00003810 0x00000018 0x00000020
i16x8_shl_1() => v128 i32x4:0xf8000388 0x00003810 0x00000018 0x00000020
i32x4_shl_0() => v128 i32x4:0xf87f8388 0x003bb810 0x00020018 0x00010020
i32x4_shl_1() => v128 i32x4:0xf87f8388 0x003bb810 0x00020018 0x00010020
i64x2_shl_0() => v128 i32x4:0xf80002a8 0x00003817 0x00020018 0x00010027
i64x2_shl_1() => v128 i32x4:0xf80002a8 0x00003817 0x00020018 0x00010027
i8x16_shr_s_0() => v128 i32x4:0xff000001 0xfc010e00 0x01000000 0x0001fe00
i8x16_shr_s_1() => v128 i32x4:0xff000001 0xfc010e00 0x01000000 0x0001fe00
i8x16_shr_u_0() => v128 i32x4:0x1f000001 0x1c010e00 0x01000000 0x00011e00
i8x16_shr_u_1() => v128 i32x4:0x1f000001 0x1c010e00 0x01000000 0x00011e00
i16x8_shr_s_0() => v128 i32x4:0xffe00001 0xfc010e00 0x01e00000 0x0001fe00
i16x8_shr_s_1() => v128 i32x4:0xffe00001 0xfc010e00 0x01e00000 0x0001fe00
i16x8_shr_u_0() => v128 i32x4:0x1fe00001 0x1c010e00 0x01e00000 0x00011e00
i16x8_shr_u_1() => v128 i32x4:0x1fe00001 0x1c010e00 0x01e00000 0x00011e00
i32x4_shr_s_0() => v128 i32x4:0xffe00001 0xfc01ee00 0x01e00000 0x0001fe00
i32x4_shr_s_1() => v128 i32x4:0xffe00001 0xfc01ee00 0x01e00000 0x0001fe00
i32x4_shr_u_0() => v128 i32x4:0x1fe00001 0x1c01ee00 0x01e00000 0x0001fe00
i32x4_shr_u_1() => v128 i32x4:0x1fe00001 0x1c01ee00 0x01e00000 0x0001fe00
i64x2_shr_s_0() => v128 i32x4:0x5fe00001 0xfc01ee00 0x81e00000 0x0001fe00
i64x2_shr_s_1() => v128 i32x4:0x5fe00001 0xfc01ee00 0x81e00000 0x0001fe00
i64x2_shr_u_0() => v128 i32x4:0x5fe00001 0x1c01ee00 0x81e00000 0x0001fe00
i64x2_shr_u_1() => v128 i32x4:0x5fe00001 0x1c01ee00 0x81e00000 0x0001fe00
;;; STDOUT ;;)
