diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2014-08-15 18:42:11 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2014-08-15 18:42:11 +0000 |
commit | 9e7cf548eab816b76637087f89af99a87490260e (patch) | |
tree | 0b853e9af09362ead02df7162c97972cf0fa5b8f /llvm/lib/Target | |
parent | b9538a6d09087aecfbb9e686da85778bf2b03e66 (diff) | |
download | bcm5719-llvm-9e7cf548eab816b76637087f89af99a87490260e.tar.gz bcm5719-llvm-9e7cf548eab816b76637087f89af99a87490260e.zip |
R600/SI: Refactor fneg / fabs patterns
llvm-svn: 215746
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r-- | llvm/lib/Target/R600/SIInstructions.td | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/llvm/lib/Target/R600/SIInstructions.td b/llvm/lib/Target/R600/SIInstructions.td index bbbe18d9369..af8d3b3d080 100644 --- a/llvm/lib/Target/R600/SIInstructions.td +++ b/llvm/lib/Target/R600/SIInstructions.td @@ -2334,33 +2334,28 @@ def : Pat < (V_OR_B32_e32 $src, (V_MOV_B32_e32 0x80000000)) /* Set sign bit */ >; -def FABS_SI : AMDGPUShaderInst < - (outs VReg_32:$dst), - (ins VSrc_32:$src0), - "FABS_SI $dst, $src0", - [] -> { +class SIUnaryCustomInsertInst<string name, SDPatternOperator node, + ValueType vt, + RegisterClass dstrc, + RegisterClass srcrc> : + AMDGPUShaderInst< + (outs dstrc:$dst), + (ins srcrc:$src0), + name#" $dst, $src0", + [(set vt:$dst, (node vt:$src0))]> { let usesCustomInserter = 1; } -def : Pat < - (fabs f32:$src), - (FABS_SI f32:$src) ->; +def FABS_SI : SIUnaryCustomInsertInst<"FABS_SI", fabs, + f32, VReg_32, VSrc_32>; +def FNEG_SI : SIUnaryCustomInsertInst<"FNEG_SI", fneg, + f32, VReg_32, VSrc_32>; -def FNEG_SI : AMDGPUShaderInst < - (outs VReg_32:$dst), - (ins VSrc_32:$src0), - "FNEG_SI $dst, $src0", - [] -> { - let usesCustomInserter = 1; -} +def FABS64_SI : SIUnaryCustomInsertInst<"FABS64_SI", fabs, + f64, VReg_64, VSrc_64>; +def FNEG64_SI : SIUnaryCustomInsertInst<"FNEG64_SI", fneg, + f64, VReg_64, VSrc_64>; -def : Pat < - (fneg f32:$src), - (FNEG_SI f32:$src) ->; /********** ================== **********/ /********** Immediate Patterns **********/ |