[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