Question regarding value being loaded in some load instruction

Hi,

I am trying to perform some kind of PRE.
SO I have collected available and anticipable sets, in form of instructions, ie my sets are in form

< opcode, (Value *)operand 1, (Value *) operand 2>

Now my question is:

Suppose at entry of some block my available set has entry:
< ADD, %1 = load i32* %a, align 4 , %2 = load i32* %b, align 4 >

and anticipable set has entry :
< ADD, %3 = load i32* %a, align 4 , %4 = load i32* %b, align 4 >

Now if suppose before %3 and %4 neither a nor b has been modified, then
I want to know that %3 is equivalent to %1 and %4 is equivalent to %2.

How can I do this.
Any Ideas will help.

Thanks a lot !!

regards,
Ambika