WebAssembly: add basic int/fp instruction codegen.
[oota-llvm.git] / lib / Target / WebAssembly / WebAssemblyInstrFloat.td
index b9906d7a3f065cb4924ce31a10bdea403597de7c..30ef6339d65a0acfdb1b0bced1b071b05a7193b0 100644 (file)
 ///
 //===----------------------------------------------------------------------===//
 
+defm FADD : BinaryFP<fadd>;
+defm FSUB : BinaryFP<fsub>;
+defm FMUL : BinaryFP<fmul>;
+defm FDIV : BinaryFP<fdiv>;
+defm FABS : UnaryFP<fabs>;
+defm FNEG : UnaryFP<fneg>;
+defm COPYSIGN : BinaryFP<fcopysign>;
+defm CEIL : UnaryFP<fceil>;
+defm FLOOR : UnaryFP<ffloor>;
+defm TRUNC : UnaryFP<ftrunc>;
+defm NEARESTINT : UnaryFP<fnearbyint>;
+
 /*
  * TODO(jfb): Add the following for 32-bit and 64-bit.
  *
- * float32.add: addition
- * float32.sub: subtraction
- * float32.mul: multiplication
- * float32.div: division
- * float32.abs: absolute value
- * float32.neg: negation
- * float32.copysign: copysign
- * float32.ceil: ceiling operation
- * float32.floor: floor operation
- * float32.trunc: round to nearest integer towards zero
- * float32.nearestint: round to nearest integer, ties to even
  * float32.eq: compare equal
  * float32.lt: less than
  * float32.le: less than or equal
  * float32.gt: greater than
  * float32.ge: greater than or equal
- * float32.sqrt: square root
+ */
+
+defm SQRT : UnaryFP<fsqrt>;
+
+/*
+ * TODO(jfb): Add the following for 32-bit and 64-bit.
+ *
  * float32.min: minimum (binary operator); if either operand is NaN, returns NaN
  * float32.max: maximum (binary operator); if either operand is NaN, returns NaN
  */