From 1bd7b29a661a336dbc96c160197c739657991ef3 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 23 Aug 2012 21:22:48 +0000 Subject: [PATCH] radeon/llvm: Use correct instruction for moving immediates This should fix an assertion failure that was happening in some compute shaders. --- src/gallium/drivers/radeon/R600ISelLowering.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeon/R600ISelLowering.cpp b/src/gallium/drivers/radeon/R600ISelLowering.cpp index afa80c5..376ac70 100644 --- a/src/gallium/drivers/radeon/R600ISelLowering.cpp +++ b/src/gallium/drivers/radeon/R600ISelLowering.cpp @@ -125,7 +125,8 @@ MachineBasicBlock * R600TargetLowering::EmitInstrWithCustomInserter( // XXX In theory, we should be able to pass ShiftValue directly to // the LSHR_eg instruction as an inline literal, but I tried doing it // this way and it didn't produce the correct results. - BuildMI(*BB, I, BB->findDebugLoc(I), TII->get(AMDGPU::MOV), ShiftValue) + BuildMI(*BB, I, BB->findDebugLoc(I), TII->get(AMDGPU::MOV_IMM_I32), + ShiftValue) .addReg(AMDGPU::ALU_LITERAL_X) .addReg(AMDGPU::PRED_SEL_OFF) .addImm(2); -- 2.7.4