radeon/llvm: Use correct instruction for moving immediates
authorTom Stellard <thomas.stellard@amd.com>
Thu, 23 Aug 2012 21:22:48 +0000 (21:22 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Thu, 23 Aug 2012 21:54:32 +0000 (21:54 +0000)
This should fix an assertion failure that was happening in some compute
shaders.

src/gallium/drivers/radeon/R600ISelLowering.cpp

index afa80c5c4dcdb89222861a0b06900602bd262829..376ac70c62c5df0269f51a5dbcd9301d53430761 100644 (file)
@@ -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);