blob: 0dab04f6729858c10b26edfc77e1e9a0231e7853 [file] [log] [blame] [edit]
;; Testing i64 lowering.
(module
(func $dummy)
(func (export "eq_i64") (param $0 i64) (param $1 i64) (result i32)
(i64.eq (local.get $0) (local.get $1)))
(func (export "ne_i64") (param $0 i64) (param $1 i64) (result i32)
(i64.ne (local.get $0) (local.get $1)))
(func (export "ge_s_i64") (param $0 i64) (param $1 i64) (result i32)
(i64.ge_s (local.get $0) (local.get $1)))
(func (export "gt_s_i64") (param $0 i64) (param $1 i64) (result i32)
(i64.gt_s (local.get $0) (local.get $1)))
(func (export "le_s_i64") (param $0 i64) (param $1 i64) (result i32)
(i64.le_s (local.get $0) (local.get $1)))
(func (export "lt_s_i64") (param $0 i64) (param $1 i64) (result i32)
(i64.lt_s (local.get $0) (local.get $1)))
(func (export "ge_u_i64") (param $0 i64) (param $1 i64) (result i32)
(i64.ge_u (local.get $0) (local.get $1)))
(func (export "gt_u_i64") (param $0 i64) (param $1 i64) (result i32)
(i64.gt_u (local.get $0) (local.get $1)))
(func (export "le_u_i64") (param $0 i64) (param $1 i64) (result i32)
(i64.le_u (local.get $0) (local.get $1)))
(func (export "lt_u_i64") (param $0 i64) (param $1 i64) (result i32)
(i64.lt_u (local.get $0) (local.get $1)))
)
;; TODO: change things so we can invoke with i64 args and automatically lower
;; the arguments, rather than doing it manually.
(assert_return (invoke "eq_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 0))
(i32.const 1))
(assert_return (invoke "eq_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 1))
(i32.const 0))
(assert_return (invoke "eq_i64" (i32.const 1) (i32.const 0)
(i32.const 0) (i32.const 1))
(i32.const 0))
(assert_return (invoke "ne_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 0))
(i32.const 0))
(assert_return (invoke "ne_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 1))
(i32.const 1))
(assert_return (invoke "ne_i64" (i32.const 1) (i32.const 0)
(i32.const 0) (i32.const 1))
(i32.const 1))
(assert_return (invoke "lt_u_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 0))
(i32.const 0))
(assert_return (invoke "lt_u_i64" (i32.const 0) (i32.const 0)
(i32.const 1) (i32.const 0))
(i32.const 1))
(assert_return (invoke "lt_u_i64" (i32.const 1) (i32.const 0)
(i32.const 0) (i32.const 0))
(i32.const 0))
(assert_return (invoke "lt_u_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 1))
(i32.const 1))
(assert_return (invoke "lt_u_i64" (i32.const 0) (i32.const 1)
(i32.const 1) (i32.const 0))
(i32.const 0))
(assert_return (invoke "lt_u_i64" (i32.const 0) (i32.const 0xffffffff)
(i32.const 1) (i32.const 0))
(i32.const 0))
(assert_return (invoke "gt_u_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 0))
(i32.const 0))
(assert_return (invoke "gt_u_i64" (i32.const 0) (i32.const 0)
(i32.const 1) (i32.const 0))
(i32.const 0))
(assert_return (invoke "gt_u_i64" (i32.const 1) (i32.const 0)
(i32.const 0) (i32.const 0))
(i32.const 1))
(assert_return (invoke "gt_u_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 1))
(i32.const 0))
(assert_return (invoke "gt_u_i64" (i32.const 0) (i32.const 1)
(i32.const 1) (i32.const 0))
(i32.const 1))
(assert_return (invoke "gt_u_i64" (i32.const 0) (i32.const 0xffffffff)
(i32.const 1) (i32.const 0))
(i32.const 1))
(assert_return (invoke "le_u_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 0))
(i32.const 1))
(assert_return (invoke "le_u_i64" (i32.const 0) (i32.const 0)
(i32.const 1) (i32.const 0))
(i32.const 1))
(assert_return (invoke "le_u_i64" (i32.const 1) (i32.const 0)
(i32.const 0) (i32.const 0))
(i32.const 0))
(assert_return (invoke "le_u_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 1))
(i32.const 1))
(assert_return (invoke "le_u_i64" (i32.const 0) (i32.const 1)
(i32.const 1) (i32.const 0))
(i32.const 0))
(assert_return (invoke "le_u_i64" (i32.const 0) (i32.const 0xffffffff)
(i32.const 1) (i32.const 0))
(i32.const 0))
(assert_return (invoke "ge_u_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 0))
(i32.const 1))
(assert_return (invoke "ge_u_i64" (i32.const 0) (i32.const 0)
(i32.const 1) (i32.const 0))
(i32.const 0))
(assert_return (invoke "ge_u_i64" (i32.const 1) (i32.const 0)
(i32.const 0) (i32.const 0))
(i32.const 1))
(assert_return (invoke "ge_u_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 1))
(i32.const 0))
(assert_return (invoke "ge_u_i64" (i32.const 0) (i32.const 1)
(i32.const 1) (i32.const 0))
(i32.const 1))
(assert_return (invoke "ge_u_i64" (i32.const 0) (i32.const 0xffffffff)
(i32.const 1) (i32.const 0))
(i32.const 1))
(assert_return (invoke "lt_s_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 0))
(i32.const 0))
(assert_return (invoke "lt_s_i64" (i32.const 0) (i32.const 0)
(i32.const 1) (i32.const 0))
(i32.const 1))
(assert_return (invoke "lt_s_i64" (i32.const 1) (i32.const 0)
(i32.const 0) (i32.const 0))
(i32.const 0))
(assert_return (invoke "lt_s_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 1))
(i32.const 1))
(assert_return (invoke "lt_s_i64" (i32.const 0) (i32.const 1)
(i32.const 1) (i32.const 0))
(i32.const 0))
(assert_return (invoke "lt_s_i64" (i32.const 0) (i32.const 0xffffffff)
(i32.const 1) (i32.const 0))
(i32.const 1))
(assert_return (invoke "lt_s_i64" (i32.const 1) (i32.const 0)
(i32.const 0) (i32.const 0xffffffff))
(i32.const 0))
(assert_return (invoke "lt_s_i64" (i32.const 0) (i32.const 0xffffffff)
(i32.const 1) (i32.const 0xffffffff))
(i32.const 1))
(assert_return (invoke "lt_s_i64" (i32.const 1) (i32.const 0xffffffff)
(i32.const 0) (i32.const 0xffffffff))
(i32.const 0))
(assert_return (invoke "lt_s_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 0x80000000))
(i32.const 0))
(assert_return (invoke "lt_s_i64" (i32.const 0) (i32.const 0x80000000)
(i32.const 0) (i32.const 0))
(i32.const 1))
(assert_return (invoke "gt_s_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 0))
(i32.const 0))
(assert_return (invoke "gt_s_i64" (i32.const 0) (i32.const 0)
(i32.const 1) (i32.const 0))
(i32.const 0))
(assert_return (invoke "gt_s_i64" (i32.const 1) (i32.const 0)
(i32.const 0) (i32.const 0))
(i32.const 1))
(assert_return (invoke "gt_s_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 1))
(i32.const 0))
(assert_return (invoke "gt_s_i64" (i32.const 0) (i32.const 1)
(i32.const 1) (i32.const 0))
(i32.const 1))
(assert_return (invoke "gt_s_i64" (i32.const 0) (i32.const 0xffffffff)
(i32.const 1) (i32.const 0))
(i32.const 0))
(assert_return (invoke "gt_s_i64" (i32.const 1) (i32.const 0)
(i32.const 0) (i32.const 0xffffffff))
(i32.const 1))
(assert_return (invoke "gt_s_i64" (i32.const 0) (i32.const 0xffffffff)
(i32.const 1) (i32.const 0xffffffff))
(i32.const 0))
(assert_return (invoke "gt_s_i64" (i32.const 1) (i32.const 0xffffffff)
(i32.const 0) (i32.const 0xffffffff))
(i32.const 1))
(assert_return (invoke "gt_s_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 0x80000000))
(i32.const 1))
(assert_return (invoke "gt_s_i64" (i32.const 0) (i32.const 0x80000000)
(i32.const 0) (i32.const 0))
(i32.const 0))
(assert_return (invoke "le_s_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 0))
(i32.const 1))
(assert_return (invoke "le_s_i64" (i32.const 0) (i32.const 0)
(i32.const 1) (i32.const 0))
(i32.const 1))
(assert_return (invoke "le_s_i64" (i32.const 1) (i32.const 0)
(i32.const 0) (i32.const 0))
(i32.const 0))
(assert_return (invoke "le_s_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 1))
(i32.const 1))
(assert_return (invoke "le_s_i64" (i32.const 0) (i32.const 1)
(i32.const 1) (i32.const 0))
(i32.const 0))
(assert_return (invoke "le_s_i64" (i32.const 0) (i32.const 0xffffffff)
(i32.const 1) (i32.const 0))
(i32.const 1))
(assert_return (invoke "le_s_i64" (i32.const 1) (i32.const 0)
(i32.const 0) (i32.const 0xffffffff))
(i32.const 0))
(assert_return (invoke "le_s_i64" (i32.const 0) (i32.const 0xffffffff)
(i32.const 1) (i32.const 0xffffffff))
(i32.const 1))
(assert_return (invoke "le_s_i64" (i32.const 1) (i32.const 0xffffffff)
(i32.const 0) (i32.const 0xffffffff))
(i32.const 0))
(assert_return (invoke "le_s_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 0x80000000))
(i32.const 0))
(assert_return (invoke "le_s_i64" (i32.const 0) (i32.const 0x80000000)
(i32.const 0) (i32.const 0))
(i32.const 1))
(assert_return (invoke "ge_s_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 0))
(i32.const 1))
(assert_return (invoke "ge_s_i64" (i32.const 0) (i32.const 0)
(i32.const 1) (i32.const 0))
(i32.const 0))
(assert_return (invoke "ge_s_i64" (i32.const 1) (i32.const 0)
(i32.const 0) (i32.const 0))
(i32.const 1))
(assert_return (invoke "ge_s_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 1))
(i32.const 0))
(assert_return (invoke "ge_s_i64" (i32.const 0) (i32.const 1)
(i32.const 1) (i32.const 0))
(i32.const 1))
(assert_return (invoke "ge_s_i64" (i32.const 0) (i32.const 0xffffffff)
(i32.const 1) (i32.const 0))
(i32.const 0))
(assert_return (invoke "ge_s_i64" (i32.const 1) (i32.const 0)
(i32.const 0) (i32.const 0xffffffff))
(i32.const 1))
(assert_return (invoke "ge_s_i64" (i32.const 0) (i32.const 0xffffffff)
(i32.const 1) (i32.const 0xffffffff))
(i32.const 0))
(assert_return (invoke "ge_s_i64" (i32.const 1) (i32.const 0xffffffff)
(i32.const 0) (i32.const 0xffffffff))
(i32.const 1))
(assert_return (invoke "ge_s_i64" (i32.const 0) (i32.const 0)
(i32.const 0) (i32.const 0x80000000))
(i32.const 1))
(assert_return (invoke "ge_s_i64" (i32.const 0) (i32.const 0x80000000)
(i32.const 0) (i32.const 0))
(i32.const 0))