[llvm] r373295 - AMDGPU/GlobalISel: Allow scc/vcc alternative mappings for s1 constants

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 30 19:07:19 PDT 2019


Author: arsenm
Date: Mon Sep 30 19:07:19 2019
New Revision: 373295

URL: http://llvm.org/viewvc/llvm-project?rev=373295&view=rev
Log:
AMDGPU/GlobalISel: Allow scc/vcc alternative mappings for s1 constants

Modified:
    llvm/trunk/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp

Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp?rev=373295&r1=373294&r2=373295&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp (original)
+++ llvm/trunk/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp Mon Sep 30 19:07:19 2019
@@ -343,7 +343,21 @@ AMDGPURegisterBankInfo::getInstrAlternat
 
   InstructionMappings AltMappings;
   switch (MI.getOpcode()) {
-  case TargetOpcode::G_CONSTANT:
+  case TargetOpcode::G_CONSTANT: {
+    unsigned Size = getSizeInBits(MI.getOperand(0).getReg(), MRI, *TRI);
+    if (Size == 1) {
+      static const OpRegBankEntry<1> Table[4] = {
+        { { AMDGPU::VGPRRegBankID }, 1 },
+        { { AMDGPU::SGPRRegBankID }, 1 },
+        { { AMDGPU::VCCRegBankID }, 1 },
+        { { AMDGPU::SCCRegBankID }, 1 }
+      };
+
+      return addMappingFromTable<1>(MI, MRI, { 0 }, Table);
+    }
+
+    LLVM_FALLTHROUGH;
+  }
   case TargetOpcode::G_FCONSTANT:
   case TargetOpcode::G_FRAME_INDEX:
   case TargetOpcode::G_GLOBAL_VALUE: {




More information about the llvm-commits mailing list