mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-03 14:21:30 +00:00 
			
		
		
		
	R600/SI: Use S_ADD_U32 and S_SUB_U32 for low half of 64-bit operations
https://bugs.freedesktop.org/show_bug.cgi?id=83416 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217248 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
		@@ -494,7 +494,7 @@ bool SIInstrInfo::expandPostRAPseudo(MachineBasicBlock::iterator MI) const {
 | 
			
		||||
    BuildMI(MBB, MI, DL, get(AMDGPU::S_GETPC_B64), Reg);
 | 
			
		||||
 | 
			
		||||
    // Add 32-bit offset from this instruction to the start of the constant data.
 | 
			
		||||
    BuildMI(MBB, MI, DL, get(AMDGPU::S_ADD_I32), RegLo)
 | 
			
		||||
    BuildMI(MBB, MI, DL, get(AMDGPU::S_ADD_U32), RegLo)
 | 
			
		||||
            .addReg(RegLo)
 | 
			
		||||
            .addTargetIndex(AMDGPU::TI_CONSTDATA_START)
 | 
			
		||||
            .addReg(AMDGPU::SCC, RegState::Define | RegState::Implicit);
 | 
			
		||||
@@ -904,9 +904,11 @@ unsigned SIInstrInfo::getVALUOp(const MachineInstr &MI) {
 | 
			
		||||
  case AMDGPU::S_MOV_B32:
 | 
			
		||||
    return MI.getOperand(1).isReg() ?
 | 
			
		||||
           AMDGPU::COPY : AMDGPU::V_MOV_B32_e32;
 | 
			
		||||
  case AMDGPU::S_ADD_I32: return AMDGPU::V_ADD_I32_e32;
 | 
			
		||||
  case AMDGPU::S_ADD_I32:
 | 
			
		||||
  case AMDGPU::S_ADD_U32: return AMDGPU::V_ADD_I32_e32;
 | 
			
		||||
  case AMDGPU::S_ADDC_U32: return AMDGPU::V_ADDC_U32_e32;
 | 
			
		||||
  case AMDGPU::S_SUB_I32: return AMDGPU::V_SUB_I32_e32;
 | 
			
		||||
  case AMDGPU::S_SUB_I32:
 | 
			
		||||
  case AMDGPU::S_SUB_U32: return AMDGPU::V_SUB_I32_e32;
 | 
			
		||||
  case AMDGPU::S_SUBB_U32: return AMDGPU::V_SUBB_U32_e32;
 | 
			
		||||
  case AMDGPU::S_MUL_I32: return AMDGPU::V_MUL_LO_I32;
 | 
			
		||||
  case AMDGPU::S_AND_B32: return AMDGPU::V_AND_B32_e32;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user