I am trying to implement the load bit to the program counter of the CPU, my approach was as follows.

A jump happens only when the j1j2j3 bits are not 000 and they satisfy their respective condtions(checked by comparing with ng and zr bits form the ALU).This mean the load of the program counter becomes the jump controller bit.I drew a table to find the combination of 32 bits to get times when the load is 1(perform jump) and in the end got a huge boolean function satisfying the same. Is my approach correct or is there a simpler approach? For some reason i feel that implementing the boolean function is pretty long. The images of what i am trying to do are given below.