Inconsistent results when custom legalizing types?

Hello. Say if I got a selection DAG like this:

t1: i1,ch = load …
t2: ch = my_target_intrinsic t1:1, t1, …

where i1 is illegal and must be promoted. By default t1 will be promoted by DAGTypeLegalizer::PromoteIntRes_LOAD, creating new node:

t3: i8, ch = load, …

then it will register the i8 result for later but replace only the chain result for now:

t1: i1,ch = load …
t3: i8, ch = load, …
t2: ch = my_target_intrinsic t3:1, t1, …

So when custom legalizing t2, I see operands from both t1 and t3 inconsistently. Is this okay? How should I legalize the t2 then?