From: Matt Arsenault Date: Wed, 17 Jul 2019 15:35:36 +0000 (+0000) Subject: AMDGPU: Use getTargetConstant X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=03c1be9b0a822f0da6d366325b3e576f82623e04;p=llvm AMDGPU: Use getTargetConstant Avoids creating an extra intermediate mov. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@366340 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp b/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp index 9af01a73030..ea730539f83 100644 --- a/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp +++ b/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp @@ -620,10 +620,10 @@ MachineSDNode *AMDGPUDAGToDAGISel::buildSMovImm64(SDLoc &DL, uint64_t Imm, EVT VT) const { SDNode *Lo = CurDAG->getMachineNode( AMDGPU::S_MOV_B32, DL, MVT::i32, - CurDAG->getConstant(Imm & 0xFFFFFFFF, DL, MVT::i32)); + CurDAG->getTargetConstant(Imm & 0xFFFFFFFF, DL, MVT::i32)); SDNode *Hi = CurDAG->getMachineNode(AMDGPU::S_MOV_B32, DL, MVT::i32, - CurDAG->getConstant(Imm >> 32, DL, MVT::i32)); + CurDAG->getTargetConstant(Imm >> 32, DL, MVT::i32)); const SDValue Ops[] = { CurDAG->getTargetConstant(AMDGPU::SReg_64RegClassID, DL, MVT::i32), SDValue(Lo, 0), CurDAG->getTargetConstant(AMDGPU::sub0, DL, MVT::i32), diff --git a/test/CodeGen/AMDGPU/shift-i128.ll b/test/CodeGen/AMDGPU/shift-i128.ll index dbf2da6dedb..9fb3ede3484 100644 --- a/test/CodeGen/AMDGPU/shift-i128.ll +++ b/test/CodeGen/AMDGPU/shift-i128.ll @@ -147,13 +147,13 @@ define i128 @v_lshr_i128_kv(i128 %rhs) { ; GCN-LABEL: v_lshr_i128_kv: ; GCN: ; %bb.0: ; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: s_mov_b32 s5, 0 -; GCN-NEXT: s_movk_i32 s4, 0x41 -; GCN-NEXT: v_lshr_b64 v[2:3], s[4:5], v0 +; GCN-NEXT: s_mov_b32 s7, 0 +; GCN-NEXT: s_movk_i32 s6, 0x41 +; GCN-NEXT: v_lshr_b64 v[2:3], s[6:7], v0 ; GCN-NEXT: v_cmp_gt_u32_e32 vcc, 64, v0 ; GCN-NEXT: v_cmp_ne_u32_e64 s[4:5], 0, v0 ; GCN-NEXT: v_cndmask_b32_e32 v0, 0, v2, vcc -; GCN-NEXT: v_mov_b32_e32 v2, 0x41 +; GCN-NEXT: v_mov_b32_e32 v2, s6 ; GCN-NEXT: v_cndmask_b32_e32 v1, 0, v3, vcc ; GCN-NEXT: v_cndmask_b32_e64 v0, v2, v0, s[4:5] ; GCN-NEXT: v_mov_b32_e32 v2, 0