diff options
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td')
-rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td b/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td index 0d819581621..d966380e6b0 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td +++ b/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td @@ -14,8 +14,10 @@ let Defs = [ARGUMENTS] in { +let isCommutable = 1 in defm ADD : BinaryFP<fadd, "add ">; defm SUB : BinaryFP<fsub, "sub ">; +let isCommutable = 1 in defm MUL : BinaryFP<fmul, "mul ">; defm DIV : BinaryFP<fdiv, "div ">; defm SQRT : UnaryFP<fsqrt, "sqrt">; @@ -24,8 +26,10 @@ defm ABS : UnaryFP<fabs, "abs ">; defm NEG : UnaryFP<fneg, "neg ">; defm COPYSIGN : BinaryFP<fcopysign, "copysign">; +let isCommutable = 1 in { defm MIN : BinaryFP<fminnan, "min ">; defm MAX : BinaryFP<fmaxnan, "max ">; +} // isCommutable = 1 defm CEIL : UnaryFP<fceil, "ceil">; defm FLOOR : UnaryFP<ffloor, "floor">; @@ -40,8 +44,10 @@ def : Pat<(frint f64:$src), (NEAREST_F64 f64:$src)>; let Defs = [ARGUMENTS] in { +let isCommutable = 1 in { defm EQ : ComparisonFP<SETOEQ, "eq ">; defm NE : ComparisonFP<SETUNE, "ne ">; +} // isCommutable = 1 defm LT : ComparisonFP<SETOLT, "lt ">; defm LE : ComparisonFP<SETOLE, "le ">; defm GT : ComparisonFP<SETOGT, "gt ">; |