ADD Z, X, Y
LOAD R0, X ADD Z, R0, Y
ADD R0, X, Y STORE Z, R0
LOAD R0, X LOAD R1, Y ADD R2, R0, R1 STORE Z, R2
Step 1: A quick way to check load-store legality is to scan every instruction in a candidate sequence and ask two questions, does this instruction access memory, and if it does, is it a LOAD or a STORE. If any non-LOAD/STORE instruction touches memory, the sequence is illegal.
Step 2: Apply this scan to option (A), the only instruction is ADD Z, X, Y. It touches memory through Z, X, and Y while not being a LOAD or STORE. Fails the test.
Step 3: Apply it to option (B), LOAD R0, X passes since it is a LOAD, but ADD Z, R0, Y touches memory through Z and Y while being an ADD. Fails.
Step 4: Apply it to option (C), ADD R0, X, Y touches memory through X and Y while being an ADD. Fails, even though the following STORE Z, R0 is fine on its own.
Step 5: Apply it to option (D), LOAD R0, X and LOAD R1, Y both pass since they are LOADs. ADD R2, R0, R1 touches only registers, so the memory-access rule does not even apply to it, it passes trivially. STORE Z, R2 passes since it is a STORE. All four instructions pass the scan.
Step 6: Since (D) is the only sequence where every instruction touching memory is a LOAD or a STORE, and the register-only ADD correctly computes R0 + R1 = X + Y into R2 before it is stored back to Z, (D) is the unique valid and correct sequence.
\[ \boxed{\text{Option D}} \]