[llvm] [GlobalISel] Combine G_ZEXT of undef -> 0 (PR #113764)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 28 17:20:16 PDT 2024


Thorsten =?utf-8?q?Schütt?= <schuett at gmail.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/113764 at github.com>


================
@@ -2916,8 +2916,11 @@ void CombinerHelper::replaceInstWithFConstant(MachineInstr &MI, double C) {
 
 void CombinerHelper::replaceInstWithConstant(MachineInstr &MI, int64_t C) {
   assert(MI.getNumDefs() == 1 && "Expected only one def?");
-  Builder.buildConstant(MI.getOperand(0), C);
-  MI.eraseFromParent();
+  LLT DstTy = MRI.getType(MI.getOperand(0).getReg());
+  if (isConstantLegalOrBeforeLegalizer(DstTy)) {
----------------
arsenm wrote:

The helper is probably not that useful if we have to care about legalization as is. Probably should move the predicate into all the matchers, rename the helper, and add an assertion that the constant result is legal/custom 

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


More information about the llvm-commits mailing list