[PATCH] D116941: [GlobalISel] Fix incorrect sign extension when combining G_INTTOPTR and G_PTR_ADD
    Matt Arsenault via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Wed Jan 12 16:10:01 PST 2022
    
    
  
arsenm added inline comments.
================
Comment at: llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp:2038
+      auto DstTy = MRI.getType(PtrAdd.getReg(0));
+      // Zero extend LHS constant as G_INTTOPTR has no sign extension semantics
+      NewCst = Cst.zextOrTrunc(DstTy.getSizeInBits());
----------------
This is a confusing way of stating that inttoptr uses zext
================
Comment at: llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp:2040
+      NewCst = Cst.zextOrTrunc(DstTy.getSizeInBits());
+      NewCst += RHSCst->sextOrTrunc(DstTy.getSizeInBits());
       return true;
----------------
Why sext here?
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D116941/new/
https://reviews.llvm.org/D116941
    
    
More information about the llvm-commits
mailing list