mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-02 08:46:23 +00:00
PTX: support for fneg
- selection of FNEG instruction - new fneg.ll test Patch by Dan Bailey git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130355 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4fea05acfa
commit
8ff9cd203f
@ -182,6 +182,26 @@ def PTXcopyaddress
|
||||
// Instruction Class Templates
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
//===- Floating-Point Instructions - 2 Operand Form -----------------------===//
|
||||
multiclass PTX_FLOAT_2OP<string opcstr, SDNode opnode> {
|
||||
def rr32 : InstPTX<(outs RRegf32:$d),
|
||||
(ins RRegf32:$a),
|
||||
!strconcat(opcstr, ".f32\t$d, $a"),
|
||||
[(set RRegf32:$d, (opnode RRegf32:$a))]>;
|
||||
def ri32 : InstPTX<(outs RRegf32:$d),
|
||||
(ins f32imm:$a),
|
||||
!strconcat(opcstr, ".f32\t$d, $a"),
|
||||
[(set RRegf32:$d, (opnode fpimm:$a))]>;
|
||||
def rr64 : InstPTX<(outs RRegf64:$d),
|
||||
(ins RRegf64:$a),
|
||||
!strconcat(opcstr, ".f64\t$d, $a"),
|
||||
[(set RRegf64:$d, (opnode RRegf64:$a))]>;
|
||||
def ri64 : InstPTX<(outs RRegf64:$d),
|
||||
(ins f64imm:$a),
|
||||
!strconcat(opcstr, ".f64\t$d, $a"),
|
||||
[(set RRegf64:$d, (opnode fpimm:$a))]>;
|
||||
}
|
||||
|
||||
//===- Floating-Point Instructions - 3 Operand Form -----------------------===//
|
||||
multiclass PTX_FLOAT_3OP<string opcstr, SDNode opnode> {
|
||||
def rr32 : InstPTX<(outs RRegf32:$d),
|
||||
@ -547,6 +567,9 @@ defm REM : INT3<"rem", urem>;
|
||||
|
||||
///===- Floating-Point Arithmetic Instructions ----------------------------===//
|
||||
|
||||
// Standard Unary Operations
|
||||
defm FNEG : PTX_FLOAT_2OP<"neg", fneg>;
|
||||
|
||||
// Standard Binary Operations
|
||||
defm FADD : PTX_FLOAT_3OP<"add", fadd>;
|
||||
defm FSUB : PTX_FLOAT_3OP<"sub", fsub>;
|
||||
|
Loading…
Reference in New Issue
Block a user