predication, branch prediction question
You are absolutely, completely on the wrong path here. 

Predicated instructions are used to avoid branching. A predicated instruction avoids the cost of a branch plus possible penalty for a mispredicted branch. 

If you have 100 instructions on the if and the else side, then you would need 200 predicated instructions instead of 100 unpredicated instructions to save a branch and possible mispredicted branch penalty. 200 vs. 100. That's not going to save you anything. 

What on earth makes you think you would have 200 predicated instructions, and 300 unpredicated instructions on each path? I'd say you are completely misunderstanding what your professor is saying there. 

I strongly suggest that you download an Intel or ARM instruction manual and study what predicated instructions are doing, because right now I have the impression that you are operating blindly without any understanding. 

Maybe it would help if you wrote down how you would (in an assembly language of your choice, or an invented one) translate "if x > 0 then y = 1 else z = 2" using a conditional branch, and using predicated instructions.