Mercurial > vec
annotate gen/gendouble.c @ 46:31cee67540b5
f32/f64: add floor, ceil, round, and trunc operations
we also need saturated add sub mul etc
author | Paper <paper@tflc.us> |
---|---|
date | Sat, 09 Aug 2025 15:55:59 -0400 |
parents | 7955bed1d169 |
children |
rev | line source |
---|---|
45
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
1 /** |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
2 * vec - a tiny SIMD vector library in C99 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
3 * |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
4 * Copyright (c) 2024-2025 Paper |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
5 * |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
6 * Permission is hereby granted, free of charge, to any person obtaining a copy |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
7 * of this software and associated documentation files (the "Software"), to deal |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
8 * in the Software without restriction, including without limitation the rights |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
10 * copies of the Software, and to permit persons to whom the Software is |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
11 * furnished to do so, subject to the following conditions: |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
12 * |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
13 * The above copyright notice and this permission notice shall be included in all |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
14 * copies or substantial portions of the Software. |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
15 * |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
22 * SOFTWARE. |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
23 **/ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
24 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
25 #include "genlib.h" |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
26 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
27 /* ------------------------------------------------------------------------ */ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
28 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
29 static void op_print_pp_halfsize(int op, int type, int bits, int size) |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
30 { |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
31 struct op_info *op_info = gen_op_info(op); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
32 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
33 printf("defined(V%s%dx%d_%s_DEFINED)", type_str[type].u, bits, size / 2, op_info->u); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
34 } |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
35 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
36 static void op_print_twoop(int op, int type, int bits, int size) |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
37 { |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
38 struct op_info *op_info = gen_op_info(op); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
39 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
40 printf("\tvec1.dbl[0] = "); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
41 gen_print_vtype(type, bits, size / 2); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
42 printf("_%s(vec1.dbl[0], vec2.dbl[0]);\n", op_info->l); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
43 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
44 printf("\tvec1.dbl[1] = "); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
45 gen_print_vtype(type, bits, size / 2); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
46 printf("_%s(vec1.dbl[1], vec2.dbl[1]);\n", op_info->l); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
47 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
48 printf("\treturn vec1;\n"); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
49 } |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
50 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
51 static void op_print_unoop(int op, int type, int bits, int size) |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
52 { |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
53 struct op_info *op_info = gen_op_info(op); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
54 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
55 printf("\tvec.dbl[0] = "); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
56 gen_print_vtype(type, bits, size / 2); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
57 printf("_%s(vec.dbl[0]);\n", op_info->l); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
58 |
46
31cee67540b5
f32/f64: add floor, ceil, round, and trunc operations
Paper <paper@tflc.us>
parents:
45
diff
changeset
|
59 printf("\tvec.dbl[1] = "); |
45
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
60 gen_print_vtype(type, bits, size / 2); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
61 printf("_%s(vec.dbl[1]);\n", op_info->l); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
62 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
63 printf("\treturn vec;\n"); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
64 } |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
65 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
66 static inline void op_print_load(int op, int type, int bits, int size) |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
67 { |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
68 struct op_info *op_info = gen_op_info(op); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
69 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
70 printf("\t"); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
71 gen_print_vtype(type, bits, size); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
72 printf(" vec;\n"); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
73 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
74 printf("\tvec.dbl[0] = "); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
75 gen_print_vtype(type, bits, size / 2); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
76 printf("_%s(x);\n", op_info->l); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
77 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
78 printf("\tvec.dbl[1] = "); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
79 gen_print_vtype(type, bits, size / 2); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
80 printf("_%s(x + %d);\n", op_info->l, size / 2); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
81 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
82 printf("\treturn vec;\n"); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
83 } |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
84 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
85 static inline void op_print_splat(int op, int type, int bits, int size) |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
86 { |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
87 struct op_info *op_info = gen_op_info(op); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
88 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
89 printf("\t"); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
90 gen_print_vtype(type, bits, size); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
91 printf(" vec;\n"); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
92 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
93 printf("\tvec.dbl[0] = "); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
94 gen_print_vtype(type, bits, size / 2); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
95 printf("_%s(x);\n", op_info->l); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
96 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
97 printf("\tvec.dbl[1] = "); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
98 gen_print_vtype(type, bits, size / 2); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
99 printf("_%s(x);\n", op_info->l); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
100 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
101 printf("\treturn vec;\n"); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
102 } |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
103 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
104 static inline void op_print_store(int op, int type, int bits, int size) |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
105 { |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
106 struct op_info *op_info = gen_op_info(op); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
107 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
108 printf("\t"); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
109 gen_print_vtype(type, bits, size / 2); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
110 printf("_%s(vec.dbl[0], x);\n", op_info->l); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
111 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
112 printf("\t"); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
113 gen_print_vtype(type, bits, size / 2); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
114 printf("_%s(vec.dbl[1], x + %d);\n", op_info->l, size / 2); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
115 } |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
116 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
117 static struct op_impl op_impl[OP_FINAL_] = { |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
118 [OP_SPLAT] = {NULL, op_print_pp_halfsize, op_print_splat}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
119 [OP_LOAD_ALIGNED] = {NULL, op_print_pp_halfsize, op_print_load}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
120 [OP_LOAD] = {NULL, op_print_pp_halfsize, op_print_load}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
121 [OP_STORE_ALIGNED] = {NULL, op_print_pp_halfsize, op_print_store}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
122 [OP_STORE] = {NULL, op_print_pp_halfsize, op_print_store}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
123 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
124 /* arithmetic */ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
125 [OP_ADD] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
126 [OP_SUB] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
127 [OP_MUL] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
128 [OP_DIV] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
129 [OP_MOD] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
130 [OP_AVG] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
131 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
132 /* bitwise */ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
133 [OP_AND] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
134 [OP_OR] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
135 [OP_XOR] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
136 [OP_NOT] = {NULL, op_print_pp_halfsize, op_print_unoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
137 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
138 /* min/max */ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
139 [OP_MIN] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
140 [OP_MAX] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
141 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
142 /* bitshift */ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
143 [OP_LSHIFT] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
144 [OP_LRSHIFT] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
145 [OP_RSHIFT] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
146 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
147 /* comparison */ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
148 [OP_CMPLT] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
149 [OP_CMPLE] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
150 [OP_CMPEQ] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
151 [OP_CMPGE] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
152 [OP_CMPGT] = {NULL, op_print_pp_halfsize, op_print_twoop}, |
46
31cee67540b5
f32/f64: add floor, ceil, round, and trunc operations
Paper <paper@tflc.us>
parents:
45
diff
changeset
|
153 |
31cee67540b5
f32/f64: add floor, ceil, round, and trunc operations
Paper <paper@tflc.us>
parents:
45
diff
changeset
|
154 [OP_FLOOR] = {NULL, op_print_pp_halfsize, op_print_unoop}, |
31cee67540b5
f32/f64: add floor, ceil, round, and trunc operations
Paper <paper@tflc.us>
parents:
45
diff
changeset
|
155 [OP_CEIL] = {NULL, op_print_pp_halfsize, op_print_unoop}, |
31cee67540b5
f32/f64: add floor, ceil, round, and trunc operations
Paper <paper@tflc.us>
parents:
45
diff
changeset
|
156 [OP_ROUND] = {NULL, op_print_pp_halfsize, op_print_unoop}, |
31cee67540b5
f32/f64: add floor, ceil, round, and trunc operations
Paper <paper@tflc.us>
parents:
45
diff
changeset
|
157 [OP_TRUNC] = {NULL, op_print_pp_halfsize, op_print_unoop}, |
45
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
158 }; |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
159 |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
160 int main(void) |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
161 { |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
162 gen(op_impl, "double"); |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
diff
changeset
|
163 } |