[llvm] [GlobalISel] Support fixed vectors in constant-fold combines. (PR #220876)

Vikash Gupta via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 1 02:31:28 PDT 2026


================
@@ -5189,12 +5263,36 @@ bool CombinerHelper::matchReassocCommBinOp(MachineInstr &MI,
 }
 
 bool CombinerHelper::matchConstantFoldCastOp(MachineInstr &MI,
-                                             APInt &MatchInfo) const {
-  LLT DstTy = MRI.getType(MI.getOperand(0).getReg());
+                                             BuildFnTy &MatchInfo) const {
+  Register Dst = MI.getOperand(0).getReg();
   Register SrcOp = MI.getOperand(1).getReg();
+  LLT DstTy = MRI.getType(Dst);
+  unsigned Opc = MI.getOpcode();
+
+  if (!isConstantLegalOrBeforeLegalizer(DstTy))
+    return false;
 
-  if (auto MaybeCst = ConstantFoldCastOp(MI.getOpcode(), DstTy, SrcOp, MRI)) {
-    MatchInfo = *MaybeCst;
+  if (DstTy.isFixedVector()) {
----------------
vg0204 wrote:

Point taken!

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


More information about the llvm-commits mailing list