[llvm] [GISel] Combine vector load followed by an extractelement (PR #72670)

Amara Emerson via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 22 22:38:55 PST 2023


================
@@ -1165,6 +1165,140 @@ bool CombinerHelper::findPreIndexCandidate(GLoadStore &LdSt, Register &Addr,
   return RealUse;
 }
 
+bool CombinerHelper::matchCombineExtractedVectorLoad(MachineInstr &MI) {
+  assert(MI.getOpcode() == TargetOpcode::G_EXTRACT_VECTOR_ELT);
+
+  // Check if there is a load that defines the vector being extracted from.
+  MachineInstr *LoadMI =
+      getOpcodeDef(TargetOpcode::G_LOAD, MI.getOperand(1).getReg(), MRI);
----------------
aemerson wrote:

You can use `auto *LoadMI = getOpcodeDef<GLoad>(MI.getOperand(1).getReg(), MRI);`

https://github.com/llvm/llvm-project/pull/72670


More information about the llvm-commits mailing list