This patch is pretty simple, it just adds the necessary pointer handling to AArch64FastISel.cpp so that it can be used on arm64_32.
A question and a nit to get it started.
+ Amara, Jessica, Francis.
Should that check be before the canonicalizations above?
if (Subtarget->isTargetILP32() && ....), then delete the assert. Maybe create a function/lambda? See below.
only if subtarget is ilp32 ...
I don't have much knowledge in this part of the code, but everything looks good to me. Maybe add a simple comment at the top of the file with an overview of what was needed to add support for ILP32 (maybe pointing out that it consists of using ands, extractsubregs, etc.) ?