1 val w8t16
= Word16
.fromLarge
o Word8.toLarge
2 val w16t32
= Word32
.fromLarge
o Word16
.toLarge
3 val w32t64
= Word64
.fromLarge
o Word32
.toLarge
5 (* All
of these should become no
-ops
*)
6 val id8_1
= Word8.fromLarge
o Word8.toLarge
7 val id8_2
= Word8.fromLarge
o Word8.toLargeX
8 val id8_3
= Word8.fromLarge
o Word16
.toLarge
o Word16
.fromLarge
o Word8.toLarge
9 val id8_4
= Word8.fromLarge
o Word16
.toLargeX
o Word16
.fromLarge
o Word8.toLargeX
10 val id8_5
= Word8.fromLarge
o Word16
.toLarge
o Word16
.fromLarge
o Word8.toLargeX
12 val id16_1
= Word16
.fromLarge
o Word16
.toLarge
13 val id16_2
= Word16
.fromLarge
o Word16
.toLargeX
14 val id16_3
= Word16
.fromLarge
o Word32
.toLarge
o Word32
.fromLarge
o Word16
.toLarge
15 val id16_4
= Word16
.fromLarge
o Word32
.toLarge
o Word32
.fromLarge
o Word16
.toLargeX
16 val id16_5
= Word16
.fromLarge
o Word32
.toLargeX
o Word32
.fromLarge
o Word16
.toLarge
17 val id16_6
= Word16
.fromLarge
o Word32
.toLargeX
o Word32
.fromLarge
o Word16
.toLargeX
18 val xx16_1
= Word16
.fromLarge
o Word8.toLarge
o Word8.fromLarge
o Word16
.toLarge
19 val xx16_2
= Word16
.fromLarge
o Word8.toLarge
o Word8.fromLarge
o Word16
.toLargeX
20 val xx16_3
= Word16
.fromLarge
o Word8.toLargeX
o Word8.fromLarge
o Word16
.toLarge
21 val xx16_4
= Word16
.fromLarge
o Word8.toLargeX
o Word8.fromLarge
o Word16
.toLargeX
23 val id32_1
= Word32
.fromLarge
o Word32
.toLarge
24 val id32_2
= Word32
.fromLarge
o Word32
.toLargeX
25 val id32_3
= Word32
.fromLarge
o Word64
.toLarge
o Word64
.fromLarge
o Word32
.toLarge
26 val id32_4
= Word32
.fromLarge
o Word64
.toLarge
o Word64
.fromLarge
o Word32
.toLargeX
27 val id32_5
= Word32
.fromLarge
o Word64
.toLargeX
o Word64
.fromLarge
o Word32
.toLarge
28 val id32_6
= Word32
.fromLarge
o Word64
.toLargeX
o Word64
.fromLarge
o Word32
.toLargeX
29 val xx32_1
= Word32
.fromLarge
o Word8.toLarge
o Word8.fromLarge
o Word32
.toLarge
30 val xx32_2
= Word32
.fromLarge
o Word8.toLarge
o Word8.fromLarge
o Word32
.toLargeX
31 val xx32_3
= Word32
.fromLarge
o Word16
.toLargeX
o Word16
.fromLarge
o Word32
.toLarge
32 val xx32_4
= Word32
.fromLarge
o Word16
.toLargeX
o Word16
.fromLarge
o Word32
.toLargeX
34 val id64_1
= Word64
.fromLarge
o Word64
.toLarge
35 val id64_2
= Word64
.fromLarge
o Word64
.toLargeX
36 val id64_3
= Word64
.fromLarge
o Word64
.toLarge
o Word64
.fromLarge
o Word64
.toLarge
37 val id64_4
= Word64
.fromLarge
o Word64
.toLarge
o Word64
.fromLarge
o Word64
.toLargeX
38 val id64_5
= Word64
.fromLarge
o Word64
.toLargeX
o Word64
.fromLarge
o Word64
.toLarge
39 val id64_6
= Word64
.fromLarge
o Word64
.toLargeX
o Word64
.fromLarge
o Word64
.toLargeX
40 val xx64_1
= Word64
.fromLarge
o Word32
.toLarge
o Word32
.fromLarge
o Word64
.toLarge
41 val xx64_2
= Word64
.fromLarge
o Word32
.toLarge
o Word32
.fromLarge
o Word64
.toLargeX
42 val xx64_3
= Word64
.fromLarge
o Word16
.toLargeX
o Word16
.fromLarge
o Word64
.toLarge
43 val xx64_4
= Word64
.fromLarge
o Word16
.toLargeX
o Word16
.fromLarge
o Word64
.toLargeX
45 val c8t16_1
= Word16
.fromLarge
o Word8.toLarge
46 val c8t16_2
= Word16
.fromLarge
o Word8.toLargeX
47 val c8t16_3
= Word16
.fromLarge
o Word8.toLarge
o id8_3
48 val c8t16_4
= Word16
.fromLarge
o Word8.toLarge
o id8_4
49 val c8t16_5
= Word16
.fromLarge
o Word8.toLarge
o id8_5
51 val c8t32_1
= Word32
.fromLarge
o Word16
.toLarge
o Word16
.fromLarge
o Word8.toLarge
52 val c8t32_2
= Word32
.fromLarge
o Word16
.toLarge
o Word16
.fromLarge
o Word8.toLargeX
53 val c8t32_3
= Word32
.fromLarge
o Word16
.toLargeX
o Word16
.fromLarge
o Word8.toLarge
54 val c8t32_4
= Word32
.fromLarge
o Word16
.toLargeX
o Word16
.fromLarge
o Word8.toLargeX
56 val c8t64_1
= Word64
.fromLarge
o Word16
.toLarge
o Word16
.fromLarge
o Word8.toLarge
57 val c8t64_2
= Word64
.fromLarge
o Word16
.toLarge
o Word16
.fromLarge
o Word8.toLargeX
58 val c8t64_3
= Word64
.fromLarge
o Word16
.toLargeX
o Word16
.fromLarge
o Word8.toLarge
59 val c8t64_4
= Word64
.fromLarge
o Word16
.toLargeX
o Word16
.fromLarge
o Word8.toLargeX
60 val c8t64_5
= Word64
.fromLarge
o Word8.toLarge
o Word8.fromLarge
o Word16
.toLarge
o Word16
.fromLarge
o Word8.toLarge
61 val c8t64_6
= Word64
.fromLarge
o Word8.toLargeX
o Word8.fromLarge
o Word16
.toLarge
o Word16
.fromLarge
o Word8.toLargeX
63 val c16t8_1
= Word8.fromLarge
o Word16
.toLarge
64 val c16t8_2
= Word8.fromLarge
o Word16
.toLargeX
65 val c16t8_3
= Word8.fromLarge
o Word32
.toLarge
o Word32
.fromLarge
o Word16
.toLargeX
66 val c16t8_4
= id8_3
o Word8.fromLarge
o Word16
.toLargeX
67 val c16t8_5
= id8_4
o Word8.fromLarge
o Word16
.toLarge
68 val c16t8_6
= id8_5
o Word8.fromLarge
o Word16
.toLargeX
70 (* These tests rely on
Int = Int32 to be useful
*)
71 val w16t8z
= Word8.fromInt
o Word16
.toInt
72 val w16t8s
= Word8.fromInt
o Word16
.toIntX
74 val c16t32_1
= Word32
.fromLarge
o Word8.toLargeX
o Word8.fromLarge
o Word16
.toLarge
75 val c16t32_2
= Word32
.fromLarge
o Word8.toLarge
o Word8.fromLarge
o Word16
.toLargeX
76 val c16t32_3
= Word32
.fromLarge
o Word16
.toLarge
77 val c16t32_4
= Word32
.fromLarge
o Word16
.toLargeX
79 val c16t64_1
= Word64
.fromLarge
o Word32
.toLarge
o Word32
.fromLarge
o Word16
.toLarge
80 val c16t64_2
= Word64
.fromLarge
o Word32
.toLarge
o Word32
.fromLarge
o Word16
.toLargeX
81 val c16t64_3
= Word64
.fromLarge
o Word32
.toLargeX
o Word32
.fromLarge
o Word16
.toLarge
82 val c16t64_4
= Word64
.fromLarge
o Word32
.toLargeX
o Word32
.fromLarge
o Word16
.toLargeX
83 val c16t64_5
= Word64
.fromLarge
o Word8.toLarge
o Word8.fromLarge
o Word16
.toLarge
84 val c16t64_6
= Word64
.fromLarge
o Word8.toLarge
o Word8.fromLarge
o Word16
.toLargeX
85 val c16t64_7
= Word64
.fromLarge
o Word8.toLargeX
o Word8.fromLarge
o Word16
.toLarge
86 val c16t64_8
= Word64
.fromLarge
o Word8.toLargeX
o Word8.fromLarge
o Word16
.toLargeX
88 val c32t8_1
= id8_4
o Word8.fromLarge
o Word32
.toLarge
o id32_1
89 val c32t8_2
= id8_3
o Word8.fromLarge
o Word32
.toLargeX
o id32_2
90 val c32t8_3
= id8_2
o Word8.fromLarge
o Word32
.toLarge
o id32_3
91 val c32t8_4
= id8_1
o Word8.fromLarge
o Word32
.toLargeX
o id32_4
93 val c32t16_1
= Word16
.fromLarge
o Word8.toLarge
o Word8.fromLarge
o Word32
.toLarge
94 val c32t16_2
= Word16
.fromLarge
o Word8.toLarge
o Word8.fromLarge
o Word32
.toLargeX
95 val c32t16_3
= Word16
.fromLarge
o Word8.toLargeX
o Word8.fromLarge
o Word32
.toLarge
96 val c32t16_4
= Word16
.fromLarge
o Word8.toLargeX
o Word8.fromLarge
o Word32
.toLargeX
97 val c32t16_5
= Word16
.fromLarge
o Word64
.toLarge
o Word64
.fromLarge
o Word32
.toLarge
98 val c32t16_6
= Word16
.fromLarge
o Word64
.toLargeX
o Word64
.fromLarge
o Word32
.toLarge
99 val c32t16_7
= Word16
.fromLarge
o Word64
.toLarge
o Word64
.fromLarge
o Word32
.toLargeX
100 val c32t16_8
= Word16
.fromLarge
o Word64
.toLargeX
o Word64
.fromLarge
o Word32
.toLargeX
102 val c64t8_1
= id8_4
o Word8.fromLarge
o Word64
.toLarge
o id64_1
103 val c64t8_2
= id8_3
o Word8.fromLarge
o Word64
.toLargeX
o id64_2
104 val c64t8_3
= id8_2
o Word8.fromLarge
o Word64
.toLarge
o id64_3
105 val c64t8_4
= id8_1
o Word8.fromLarge
o Word64
.toLargeX
o id64_4
107 val c64t16_1
= Word16
.fromLarge
o Word8.toLarge
o Word8.fromLarge
o Word64
.toLarge
108 val c64t16_2
= Word16
.fromLarge
o Word8.toLarge
o Word8.fromLarge
o Word64
.toLargeX
109 val c64t16_3
= Word16
.fromLarge
o Word8.toLargeX
o Word8.fromLarge
o Word64
.toLarge
110 val c64t16_4
= Word16
.fromLarge
o Word8.toLargeX
o Word8.fromLarge
o Word64
.toLargeX
111 val c64t16_5
= Word16
.fromLarge
o Word32
.toLarge
o Word32
.fromLarge
o Word64
.toLarge
112 val c64t16_6
= Word16
.fromLarge
o Word32
.toLargeX
o Word32
.fromLarge
o Word64
.toLarge
113 val c64t16_7
= Word16
.fromLarge
o Word32
.toLarge
o Word32
.fromLarge
o Word64
.toLargeX
114 val c64t16_8
= Word16
.fromLarge
o Word32
.toLargeX
o Word32
.fromLarge
o Word64
.toLargeX
116 val f8t8
= [ id8_1
, id8_2
, id8_3
, id8_4
, id8_5
]
117 val f8t16
= [ c8t16_1
, c8t16_2
, c8t16_3
, c8t16_4
, c8t16_5
]
118 val f8t32
= [ c8t32_1
, c8t32_2
, c8t32_3
, c8t32_4
]
119 val f8t64
= [ c8t64_1
, c8t64_2
, c8t64_3
, c8t64_4
, c8t64_5
, c8t64_6
]
121 val f16t8
= [ c16t8_1
, c16t8_2
, c16t8_3
, c16t8_5
, c16t8_6
, w16t8z
, w16t8s
]
122 val f16t16
= [ id16_1
, id16_2
, id16_3
, id16_4
, id16_5
, id16_6
, xx16_1
, xx16_2
, xx16_3
, xx16_4
]
123 val f16t32
= [ c16t32_1
, c16t32_2
, c16t32_3
, c16t32_4
]
124 val f16t64
= [ c16t64_1
, c16t64_2
, c16t64_3
, c16t64_4
, c16t64_6
, c16t64_7
, c16t64_8
]
126 val f32t8
= [ c32t8_1
, c32t8_2
, c32t8_3
, c32t8_4
]
127 val f32t16
= [ c32t16_1
, c32t16_2
, c32t16_3
, c32t16_4
, c32t16_5
, c32t16_6
, c32t16_7
, c32t16_8
]
128 val f32t32
= [ id32_1
, id32_2
, id32_3
, id32_4
, id32_5
, id32_6
, xx32_1
, xx32_2
, xx32_3
, xx32_4
]
131 val f64t8
= [ c64t8_1
, c64t8_2
, c64t8_3
, c64t8_4
]
132 val f64t16
= [ c64t16_1
, c64t16_2
, c64t16_3
, c64t16_4
, c64t16_5
, c64t16_6
, c64t16_7
, c64t16_8
]
134 val f64t64
= [ id64_1
, id64_2
, id64_3
, id64_4
, id64_5
, id64_6
, xx64_1
, xx64_2
, xx64_3
, xx64_4
]
136 val x8
= [ 0w0
, 0w1
, 0w2
, 0w3
, 0wx7f
, 0wx7e
, 0wxfe
, 0wxff
]
137 val x16
= [ 0wx7fff
, 0wxfffe
, 0wxffff
] @
List.map w8t16 x8
138 val x32
= [ 0wx7fffffff
, 0wxfffffffe
, 0wxffffffff
] @
List.map w16t32 x16
139 val x64
= [ 0wx7fffffffffffffff
, 0wxfffffffffffffffe
, 0wxffffffffffffffff
] @
List.map w32t64 x32
141 fun doit (out
, xl
) f
=
143 val () = List.app (print
o out
o f
) xl
148 val () = List.app (doit (Word8.toString
, x8
)) f8t8
149 val () = List.app (doit (Word8.toString
, x16
)) f16t8
150 val () = List.app (doit (Word8.toString
, x32
)) f32t8
151 val () = List.app (doit (Word8.toString
, x64
)) f64t8
153 val () = List.app (doit (Word16
.toString
, x8
)) f8t16
154 val () = List.app (doit (Word16
.toString
, x16
)) f16t16
155 val () = List.app (doit (Word16
.toString
, x32
)) f32t16
156 val () = List.app (doit (Word16
.toString
, x64
)) f64t16
158 val () = List.app (doit (Word32
.toString
, x8
)) f8t32
159 val () = List.app (doit (Word32
.toString
, x16
)) f16t32
160 val () = List.app (doit (Word32
.toString
, x32
)) f32t32
161 val () = List.app (doit (Word32
.toString
, x64
)) f64t32
163 val () = List.app (doit (Word64
.toString
, x8
)) f8t64
164 val () = List.app (doit (Word64
.toString
, x16
)) f16t64
165 val () = List.app (doit (Word64
.toString
, x32
)) f32t64
166 val () = List.app (doit (Word64
.toString
, x64
)) f64t64