diff --git a/llvm/include/llvm/CodeGen/TargetLowering.h b/llvm/include/llvm/CodeGen/TargetLowering.h index 0d2453a778a45d..05cc381834e578 100644 --- a/llvm/include/llvm/CodeGen/TargetLowering.h +++ b/llvm/include/llvm/CodeGen/TargetLowering.h @@ -2458,6 +2458,8 @@ class TargetLoweringBase { case ISD::UDIV: case ISD::SREM: case ISD::UREM: + case ISD::SSUBSAT: + case ISD::USUBSAT: case ISD::FSUB: case ISD::FDIV: case ISD::FREM: diff --git a/llvm/test/CodeGen/AMDGPU/ssubsat.ll b/llvm/test/CodeGen/AMDGPU/ssubsat.ll index 5ec6023734097a..4aede123e48b29 100644 --- a/llvm/test/CodeGen/AMDGPU/ssubsat.ll +++ b/llvm/test/CodeGen/AMDGPU/ssubsat.ll @@ -226,8 +226,8 @@ define <3 x i16> @v_ssubsat_v3i16(<3 x i16> %lhs, <3 x i16> %rhs) { ; GFX9-LABEL: v_ssubsat_v3i16: ; GFX9: ; %bb.0: ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GFX9-NEXT: v_pk_sub_i16 v0, v0, v2 clamp ; GFX9-NEXT: v_pk_sub_i16 v1, v1, v3 clamp +; GFX9-NEXT: v_pk_sub_i16 v0, v0, v2 clamp ; GFX9-NEXT: s_setpc_b64 s[30:31] %result = call <3 x i16> @llvm.ssub.sat.v3i16(<3 x i16> %lhs, <3 x i16> %rhs) ret <3 x i16> %result diff --git a/llvm/test/CodeGen/AMDGPU/usubsat.ll b/llvm/test/CodeGen/AMDGPU/usubsat.ll index eeabd31f90624e..13f61b6ea131f3 100644 --- a/llvm/test/CodeGen/AMDGPU/usubsat.ll +++ b/llvm/test/CodeGen/AMDGPU/usubsat.ll @@ -147,8 +147,8 @@ define <3 x i16> @v_usubsat_v3i16(<3 x i16> %lhs, <3 x i16> %rhs) { ; GFX9-LABEL: v_usubsat_v3i16: ; GFX9: ; %bb.0: ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GFX9-NEXT: v_pk_sub_u16 v0, v0, v2 clamp ; GFX9-NEXT: v_pk_sub_u16 v1, v1, v3 clamp +; GFX9-NEXT: v_pk_sub_u16 v0, v0, v2 clamp ; GFX9-NEXT: s_setpc_b64 s[30:31] %result = call <3 x i16> @llvm.usub.sat.v3i16(<3 x i16> %lhs, <3 x i16> %rhs) ret <3 x i16> %result