diff options
author | Justin Holewinski <justin.holewinski@gmail.com> | 2011-09-30 12:54:43 +0000 |
---|---|---|
committer | Justin Holewinski <justin.holewinski@gmail.com> | 2011-09-30 12:54:43 +0000 |
commit | c90e149ee43b5ffa751a7a03fab8b1a54cc3de92 (patch) | |
tree | f9b1057fb71a86201dd3bc6d08bbc28d9783ada5 /lib/Target/PTX/PTXInstrFormats.td | |
parent | 10a11ecb59b8b9d5de462930960df0d4bd4bf801 (diff) | |
download | llvm-c90e149ee43b5ffa751a7a03fab8b1a54cc3de92.tar.gz llvm-c90e149ee43b5ffa751a7a03fab8b1a54cc3de92.tar.bz2 llvm-c90e149ee43b5ffa751a7a03fab8b1a54cc3de92.tar.xz |
PTX: Attempt to cleanup/unify the handling of FP rounding modes. This requires
us to manually provide Pat<> definitions for all FP instruction patterns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140849 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PTX/PTXInstrFormats.td')
-rw-r--r-- | lib/Target/PTX/PTXInstrFormats.td | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/Target/PTX/PTXInstrFormats.td b/lib/Target/PTX/PTXInstrFormats.td index 6632bbfbc5..397fdc319a 100644 --- a/lib/Target/PTX/PTXInstrFormats.td +++ b/lib/Target/PTX/PTXInstrFormats.td @@ -7,12 +7,39 @@ // //===----------------------------------------------------------------------===// + +// Rounding Mode Specifier +/*class RoundingMode<bits<3> val> { + bits<3> Value = val; +} + +def RndDefault : RoundingMode<0>; +def RndNearestEven : RoundingMode<1>; +def RndNearestZero : RoundingMode<2>; +def RndNegInf : RoundingMode<3>; +def RndPosInf : RoundingMode<4>; +def RndApprox : RoundingMode<5>;*/ + + +// Rounding Mode Operand +def RndMode : Operand<i32> { + let PrintMethod = "printRoundingMode"; +} + +def RndDefault : PatLeaf<(i32 0)>; + // PTX Predicate operand, default to (0, 0) = (zero-reg, none). // Leave PrintMethod empty; predicate printing is defined elsewhere. def pred : PredicateOperand<OtherVT, (ops RegPred, i32imm), (ops (i1 zero_reg), (i32 2))>; +def RndModeOperand : Operand<OtherVT> { + let MIOperandInfo = (ops i32imm); +} + +// Instruction Types let Namespace = "PTX" in { + class InstPTX<dag oops, dag iops, string asmstr, list<dag> pattern> : Instruction { dag OutOperandList = oops; |