summaryrefslogtreecommitdiff
path: root/test/interp/convert.txt
blob: 141a1ad4bdd620b35ed56c160fc7ee7c21223611 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
;;; TOOL: run-interp
(module
  ;; i32
  (func (export "i32_wrap_i64") (result i32) 
    i64.const -1
    i32.wrap_i64)
  ;; TODO(binji): how best to distinguish _s from _u?
  (func (export "i32_trunc_s_f32") (result i32)
    f32.const -100.12345 
    i32.trunc_f32_s)
  (func (export "i32_trunc_u_f32") (result i32)
    f32.const 3e9 
    i32.trunc_f32_u)
  (func (export "i32_trunc_s_f64") (result i32)
    f64.const -100.12345 
    i32.trunc_f64_s)
  (func (export "i32_trunc_u_f64") (result i32)
    f64.const 3e9 
    i32.trunc_f64_u)

  ;; i64
  (func (export "i64_extend_u_i32") (result i64) 
    i32.const -1
    i64.extend_i32_u)
  (func (export "i64_extend_s_i32") (result i64)
    i32.const -1 
    i64.extend_i32_s)

  (func (export "i64_trunc_s_f32") (result i32)
     f32.const -100.12345
     i64.trunc_f32_s 
     i64.const -100
     i64.eq)
  (func (export "i64_trunc_u_f32") (result i32)
     f32.const 3e9
     i64.trunc_f32_u
     i64.const 3000000000
     i64.eq)
  (func (export "i64_trunc_s_f64") (result i32)
     f64.const -100.12345
     i64.trunc_f64_s
     i64.const -100
     i64.eq)
  (func (export "i64_trunc_u_f64") (result i32)
     f64.const 3e9
     i64.trunc_f64_u
     i64.const 3000000000
     i64.eq)

  ;; f32
  (func (export "f32_convert_s_i32") (result f32)
    i32.const -1 
    f32.convert_i32_s)
  (func (export "f32_convert_u_i32") (result f32) 
    i32.const -1
    f32.convert_i32_u)
  (func (export "f32_demote_f64") (result f32)
    f64.const 12345678.9 
    f32.demote_f64)
  (func (export "f32_convert_s_i64") (result f32) 
    i64.const 0
    f32.convert_i64_s)
  (func (export "f32_convert_u_i64") (result f32) 
    i64.const 0
    f32.convert_i64_u)

  ;; f64
  (func (export "f64_convert_s_i32") (result f64)
    i32.const -1 
    f64.convert_i32_s)
  (func (export "f64_convert_u_i32") (result f64) 
    i32.const -1
    f64.convert_i32_u)
  (func (export "f64_demote_f32") (result f64)
    f32.const 12345678.9 
    f64.promote_f32)
  (func (export "f64_convert_s_i64") (result f64) 
    i64.const 0
    f64.convert_i64_s)
  (func (export "f64_convert_u_i64") (result f64) 
    i64.const 0
    f64.convert_i64_u)
)
(;; STDOUT ;;;
i32_wrap_i64() => i32:4294967295
i32_trunc_s_f32() => i32:4294967196
i32_trunc_u_f32() => i32:3000000000
i32_trunc_s_f64() => i32:4294967196
i32_trunc_u_f64() => i32:3000000000
i64_extend_u_i32() => i64:4294967295
i64_extend_s_i32() => i64:18446744073709551615
i64_trunc_s_f32() => i32:1
i64_trunc_u_f32() => i32:1
i64_trunc_s_f64() => i32:1
i64_trunc_u_f64() => i32:1
f32_convert_s_i32() => f32:-1.000000
f32_convert_u_i32() => f32:4294967296.000000
f32_demote_f64() => f32:12345679.000000
f32_convert_s_i64() => f32:0.000000
f32_convert_u_i64() => f32:0.000000
f64_convert_s_i32() => f64:-1.000000
f64_convert_u_i32() => f64:4294967295.000000
f64_demote_f32() => f64:12345679.000000
f64_convert_s_i64() => f64:0.000000
f64_convert_u_i64() => f64:0.000000
;;; STDOUT ;;)