[ARM] Don't try and custom lower a vNi64 SETCC.
[oota-llvm.git] / lib / Target / WebAssembly / WebAssemblyInstrInteger.td
index 8995584c961ee7751b1e72f783069611c1ef9524..cf2c6a38d5135819b732b0003c3a306f08128300 100644 (file)
 ///
 //===----------------------------------------------------------------------===//
 
-/*
- * TODO(jfb): Add the following for 32-bit and 64-bit.
- *
- * int32.add: signed-less addition
- * int32.sub: signed-less subtraction
- * int32.mul: signed-less multiplication (lower 32-bits)
- * int32.sdiv: signed division
- * int32.udiv: unsigned division
- * int32.srem: signed remainder
- * int32.urem: unsigned remainder
- * int32.and: signed-less logical and
- * int32.ior: signed-less inclusive or
- * int32.xor: signed-less exclusive or
- * int32.shl: signed-less shift left
- * int32.shr: signed-less logical shift right
- * int32.sar: signed-less arithmetic shift right
- * int32.eq: signed-less compare equal
- * int32.slt: signed less than
- * int32.sle: signed less than or equal
- * int32.ult: unsigned less than
- * int32.ule: unsigned less than or equal
- * int32.sgt: signed greater than
- * int32.sge: signed greater than or equal
- * int32.ugt: unsigned greater than
- * int32.uge: unsigned greater than or equal
- * int32.clz: count leading zeroes (defined for all values, including zero)
- * int32.ctz: count trailing zeroes (defined for all values, including zero)
- * int32.popcnt: count number of ones
- */
+defm ADD : BinaryInt<add>;
+defm SUB : BinaryInt<sub>;
+defm MUL : BinaryInt<mul>;
+defm SDIV : BinaryInt<sdiv>;
+defm UDIV : BinaryInt<udiv>;
+defm SREM : BinaryInt<srem>;
+defm UREM : BinaryInt<urem>;
+defm AND : BinaryInt<and>;
+defm IOR : BinaryInt<or>;
+defm XOR : BinaryInt<xor>;
+defm SHL : BinaryInt<shl>;
+defm SHR : BinaryInt<srl>;
+defm SAR : BinaryInt<sra>;
+
+defm EQ : ComparisonInt<SETEQ>;
+defm NE : ComparisonInt<SETNE>;
+defm SLT : ComparisonInt<SETLT>;
+defm SLE : ComparisonInt<SETLE>;
+defm ULT : ComparisonInt<SETULT>;
+defm ULE : ComparisonInt<SETULE>;
+defm SGT : ComparisonInt<SETGT>;
+defm SGE : ComparisonInt<SETGE>;
+defm UGT : ComparisonInt<SETUGT>;
+defm UGE : ComparisonInt<SETUGE>;
+
+defm CLZ : UnaryInt<ctlz>;
+defm CTZ : UnaryInt<cttz>;
+defm POPCNT : UnaryInt<ctpop>;