diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-05-03 15:37:07 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-05-03 15:37:07 +0000 |
| commit | 657ef48a882299c3216aa616e0e56366151fb8d0 (patch) | |
| tree | 2603965ea12bb28a203bd9a584fa30ee0c600c12 /llvm/lib/Target/AMDGPU | |
| parent | cfd0ca38b09b50fab0b1dfd6533b16bc2993c676 (diff) | |
| download | bcm5719-llvm-657ef48a882299c3216aa616e0e56366151fb8d0.tar.gz bcm5719-llvm-657ef48a882299c3216aa616e0e56366151fb8d0.zip | |
AMDGPU: Select VOP3 form of sub
The VOP3 form should always be the preferred selection form to be
shrunk later.
The r600 sub test needs to be split out because it asserts on the
arguments in the new test during the calling convention lowering.
llvm-svn: 359899
Diffstat (limited to 'llvm/lib/Target/AMDGPU')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/VOP2Instructions.td | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Target/AMDGPU/VOP2Instructions.td b/llvm/lib/Target/AMDGPU/VOP2Instructions.td index 3d7c75a3a04..f7e51cfa913 100644 --- a/llvm/lib/Target/AMDGPU/VOP2Instructions.td +++ b/llvm/lib/Target/AMDGPU/VOP2Instructions.td @@ -525,12 +525,12 @@ def : DivergentBinOp<shl, V_LSHLREV_B32_e64>; let SubtargetPredicate = HasAddNoCarryInsts in { def : DivergentBinOp<add, V_ADD_U32_e32>; - def : DivergentBinOp<sub, V_SUB_U32_e32>; + def : DivergentClampingBinOp<sub, V_SUB_U32_e64>; } let SubtargetPredicate = isGFX6GFX7GFX8GFX9, Predicates = [isGFX6GFX7GFX8GFX9] in { def : DivergentBinOp<add, V_ADD_I32_e32>; -def : DivergentBinOp<sub, V_SUB_I32_e32>; +def : DivergentClampingBinOp<sub, V_SUB_I32_e64>; def : DivergentBinOp<adde, V_ADDC_U32_e32>; def : DivergentBinOp<sube, V_SUBB_U32_e32>; |

