Type independent load/store

I am trying to implement custom load/store instructions along with a custom type (sort of like X86_mmx type) that is used to call registers I have added to the target backend.

/llvm-project/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:9133: std::pair<llvm::SDValue, llvm::SDValue> llvm::TargetLowering::expandUnalignedLoad(llvm::LoadSDNode*, llvm::SelectionDAG&) const: Assertion `LoadedVT.isInteger() && !LoadedVT.isVector() && "Unaligned load of unsupported type."' failed.
%1 = load _TIE_nnp_AO, _TIE_nnp_AO* %ao, align 2, !dbg !11

I understand why the condition is failing as in the IR, the compiler is trying to load the type like so, and it doesn’t come under the classification of an integer or vector type. I was wondering if there was a way for the load/store instructions to be type independent and just load the type regardless. Is there some change I can make to TargetIselLowering.cpp that will allow me to do so?