diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-07-13 06:04:22 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-07-13 06:04:22 +0000 |
| commit | 0056868c4a9f362a4dc554a2e82e50554bf11b96 (patch) | |
| tree | 16a100b201fbe1b962712c7ad412bc98a5c3ddf6 | |
| parent | 8dff86d878b3a0bda88f4f4ade1d172d25cfc82b (diff) | |
| download | bcm5719-llvm-0056868c4a9f362a4dc554a2e82e50554bf11b96.tar.gz bcm5719-llvm-0056868c4a9f362a4dc554a2e82e50554bf11b96.zip | |
AMDGPU: Fold out no-op kill intrinsics
llvm-svn: 275253
| -rw-r--r-- | llvm/lib/Target/AMDGPU/SIISelLowering.cpp | 8 | ||||
| -rw-r--r-- | llvm/test/CodeGen/AMDGPU/skip-if-dead.ll | 1 |
2 files changed, 8 insertions, 1 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp index 72175ea581b..7254dac02a7 100644 --- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp +++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp @@ -1961,6 +1961,14 @@ SDValue SITargetLowering::LowerINTRINSIC_VOID(SDValue Op, return DAG.getMemIntrinsicNode(AMDGPUISD::TBUFFER_STORE_FORMAT, DL, Op->getVTList(), Ops, VT, MMO); } + case AMDGPUIntrinsic::AMDGPU_kill: { + if (const ConstantFPSDNode *K = dyn_cast<ConstantFPSDNode>(Op.getOperand(2))) { + if (!K->isNegative()) + return Chain; + } + + return Op; + } default: return SDValue(); } diff --git a/llvm/test/CodeGen/AMDGPU/skip-if-dead.ll b/llvm/test/CodeGen/AMDGPU/skip-if-dead.ll index 54fc0bf0b68..6c632b4cbb8 100644 --- a/llvm/test/CodeGen/AMDGPU/skip-if-dead.ll +++ b/llvm/test/CodeGen/AMDGPU/skip-if-dead.ll @@ -2,7 +2,6 @@ ; CHECK-LABEL: {{^}}test_kill_depth_0_imm_pos: ; CHECK-NEXT: ; BB#0: -; CHECK-NEXT: ; BB#1: ; CHECK-NEXT: s_endpgm define amdgpu_ps void @test_kill_depth_0_imm_pos() #0 { call void @llvm.AMDGPU.kill(float 0.0) |

