209 {
210 static bool init = true;
211 static std::map<std::string, std::vector<std::string> > footprints;
212
213
214
215 if (init) {
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235 footprints["ADDH.i32"].push_back("f16.fadd.f16.f16");
236 footprints["SUBH.i32"].push_back("f16.fsub.f16.f16");
237 footprints["NEGH.i32"].push_back("f16.fneg.f16");
238 footprints["MULH.i32"].push_back("f16.fmul.f16.f16");
239 footprints["DIVH.i32"].push_back("f16.fdiv.f16.f16");
240 footprints["SQRTH.i32"].push_back("f16.sqrt.f16");
241
242 footprints["ADDF.i32"].push_back("f32.fadd.f32.f32");
243 footprints["SUBF.i32"].push_back("f32.fsub.f32.f32");
244 footprints["NEGF.i32"].push_back("f32.fneg.f32");
245 footprints["MULF.i32"].push_back("f32.fmul.f32.f32");
246 footprints["DIVF.i32"].push_back("f32.fdiv.f32.f32");
247 footprints["SQRTF.i32"].push_back("f32.sqrt.f32");
248
249 footprints["ADDD.i64"].push_back("f64.fadd.f64.f64");
250 footprints["SUBD.i64"].push_back("f64.fsub.f64.f64");
251 footprints["NEGD.i64"].push_back("f64.fneg.f64");
252 footprints["MULD.i64"].push_back("f64.fmul.f64.f64");
253 footprints["DIVD.i64"].push_back("f64.fdiv.f64.f64");
254 footprints["SQRTD.i64"].push_back("f64.sqrt.f64");
255
256 footprints["CFI.i32"].push_back("i32.fptosi.f32");
257 footprints["CFIU.i32"].push_back("i32.fptoui.f32");
258 footprints["CIF.i32"].push_back("f32.sitofp.i32");
259 footprints["CIFU.i32"].push_back("f32.uitofp.i32");
260
261 footprints["CFI.i16"].push_back("i16.fptosi.f32");
262 footprints["CFIU.i16"].push_back("i16.fptoui.f32");
263 footprints["CIF.i16"].push_back("f32.sitofp.i16");
264 footprints["CIFU.i16"].push_back("f32.uitofp.i16");
265
266 footprints["CFI.i8"].push_back("i8.fptosi.f32");
267 footprints["CFIU.i8"].push_back("i8.fptoui.f32");
268 footprints["CIF.i8"].push_back("f32.sitofp.i8");
269 footprints["CIFU.i8"].push_back("f32.uitofp.i8");
270
271 footprints["CDL.i64"].push_back("i64.fptosi.f64");
272 footprints["CDLU.i64"].push_back("i64.fptoui.f64");
273 footprints["CLD.i64"].push_back("f64.sitofp.i64");
274 footprints["CLDU.i64"].push_back("f64.uitofp.i64");
275
276 footprints["CDL.i32"].push_back("i32.fptosi.f64");
277 footprints["CDLU.i32"].push_back("i32.fptoui.f64");
278 footprints["CLD.i32"].push_back("f64.sitofp.i32");
279 footprints["CLDU.i32"].push_back("f64.uitofp.i32");
280
281 footprints["CDL.i16"].push_back("i16.fptosi.f64");
282 footprints["CDLU.i16"].push_back("i16.fptoui.f64");
283 footprints["CLD.i16"].push_back("f64.sitofp.i16");
284 footprints["CLDU.i16"].push_back("f64.uitofp.i16");
285
286 footprints["CDL.i8"].push_back("i8.fptosi.f64");
287 footprints["CDLU.i8"].push_back("i8.fptoui.f64");
288 footprints["CLD.i8"].push_back("f64.sitofp.i8");
289 footprints["CLDU.i8"].push_back("f64.uitofp.i8");
290
291 footprints["EQF.i1"].push_back("i1.fcmp.oeq.f32.f32");
292 footprints["NEF.i1"].push_back("i1.fcmp.one.f32.f32");
293 footprints["LTF.i1"].push_back("i1.fcmp.olt.f32.f32");
294 footprints["LEF.i1"].push_back("i1.fcmp.ole.f32.f32");
295 footprints["GTF.i1"].push_back("i1.fcmp.ogt.f32.f32");
296 footprints["GEF.i1"].push_back("i1.fcmp.oge.f32.f32");
297
298 footprints["EQUF.i1"].push_back("i1.fcmp.ueq.f32.f32");
299 footprints["NEUF.i1"].push_back("i1.fcmp.une.f32.f32");
300 footprints["LTUF.i1"].push_back("i1.fcmp.ult.f32.f32");
301 footprints["LEUF.i1"].push_back("i1.fcmp.ule.f32.f32");
302 footprints["GTUF.i1"].push_back("i1.fcmp.ugt.f32.f32");
303 footprints["GEUF.i1"].push_back("i1.fcmp.uge.f32.f32");
304
305 footprints["EQF.i32"].push_back("i32.fcmp.oeq.f32.f32");
306 footprints["NEF.i32"].push_back("i32.fcmp.one.f32.f32");
307 footprints["LTF.i32"].push_back("i32.fcmp.olt.f32.f32");
308 footprints["LEF.i32"].push_back("i32.fcmp.ole.f32.f32");
309 footprints["GTF.i32"].push_back("i32.fcmp.ogt.f32.f32");
310 footprints["GEF.i32"].push_back("i32.fcmp.oge.f32.f32");
311
312 footprints["EQUF.i32"].push_back("i32.fcmp.ueq.f32.f32");
313 footprints["NEUF.i32"].push_back("i32.fcmp.une.f32.f32");
314 footprints["LTUF.i32"].push_back("i32.fcmp.ult.f32.f32");
315 footprints["LEUF.i32"].push_back("i32.fcmp.ule.f32.f32");
316 footprints["GTUF.i32"].push_back("i32.fcmp.ugt.f32.f32");
317 footprints["GEUF.i32"].push_back("i32.fcmp.uge.f32.f32");
318
319 footprints["ORDF.i1"].push_back("i1.fcmp.ord.f32.f32");
320 footprints["ORDF.i32"].push_back("i32.fcmp.ord.f32.f32");
321 footprints["UORDF.i1"].push_back("i1.fcmp.uno.f32.f32");
322 footprints["UORDF.i32"].push_back("i32.fcmp.uno.f32.f32");
323
324 footprints["CFD.i64"].push_back("f64.fpext.f32");
325
326 footprints["EQD.i1"].push_back("i1.fcmp.oeq.f64.f64");
327 footprints["NED.i1"].push_back("i1.fcmp.one.f64.f64");
328 footprints["LTD.i1"].push_back("i1.fcmp.olt.f64.f64");
329 footprints["GED.i1"].push_back("i1.fcmp.oge.f64.f64");
330 footprints["LED.i1"].push_back("i1.fcmp.ole.f64.f64");
331 footprints["GTD.i1"].push_back("i1.fcmp.ogt.f64.f64");
332
333 footprints["EQD.i64"].push_back("i64.fcmp.oeq.f64.f64");
334 footprints["NED.i64"].push_back("i64.fcmp.one.f64.f64");
335 footprints["LTD.i64"].push_back("i64.fcmp.olt.f64.f64");
336 footprints["GED.i64"].push_back("i64.fcmp.oge.f64.f64");
337 footprints["LED.i64"].push_back("i64.fcmp.ole.f64.f64");
338 footprints["GTD.i64"].push_back("i64.fcmp.ogt.f64.f64");
339
340 footprints["EQUD.i1"].push_back("i1.fcmp.ueq.f64.f64");
341 footprints["NEUD.i1"].push_back("i1.fcmp.une.f64.f64");
342 footprints["GEUD.i1"].push_back("i1.fcmp.uge.f64.f64");
343 footprints["LEUD.i1"].push_back("i1.fcmp.ule.f64.f64");
344 footprints["LTUD.i1"].push_back("i1.fcmp.ult.f64.f64");
345 footprints["GTUD.i1"].push_back("i1.fcmp.ugt.f64.f64");
346
347 footprints["EQUD.i64"].push_back("i64.fcmp.ueq.f64.f64");
348 footprints["NEUD.i64"].push_back("i64.fcmp.une.f64.f64");
349 footprints["LEUD.i64"].push_back("i64.fcmp.ule.f64.f64");
350 footprints["GEUD.i64"].push_back("i64.fcmp.uge.f64.f64");
351 footprints["LTUD.i64"].push_back("i64.fcmp.ult.f64.f64");
352 footprints["GTUD.i64"].push_back("i64.fcmp.ugt.f64.f64");
353
354 footprints["ORDD.i1"].push_back("i1.fcmp.ord.f64.f64");
355 footprints["ORDD.i64"].push_back("i64.fcmp.ord.f64.f64");
356 footprints["UORDD.i1"].push_back("i1.fcmp.uno.f64.f64");
357 footprints["UORDD.i64"].push_back("i64.fcmp.uno.f64.f64");
358
359 init = false;
360 }
361
362 return footprints[tceOp];
363}