Well it's undoubtably going to be Portugal v Germany taking the semi spots for groups A and B, i don't see either of group A's contenders facing up to Germany or Portugal, and each of those teams is perfectly capable of beating the other, so it could go either way.
As for groups C and D, Italy are probably going to get a free win against Ireland (sorry guys), and if they beat them by more than two and Croatia v Spain forces a draw or Croatia lose, it's going to be Italy and Spain going through. England are perfectly capable (theoretically....) of beating Ukraine and i could see France v Sweden ending in a draw, so it's possible for England to win the group and face Croatia or Italy (who are playing badly), both are beatable, so... maybe England in the semi's.
Wouldn't surprise me if it's Spain v Italy in the semi's though, both are world class teams and i don't see anyone from D taking them on if they're on top form.
So for me, SF's: Germany v Portugal and Spain v Italy, with a Spain v Portugal final. Possible Spain v Germany final, but i reckon Portugal can take them, Germany has been looking shaky, Portugal have been getting better and better.
At any rate, you never know with football, Croatia could surprise us, so could England (lord knows we have the players for it, just seems not the team, as usual

), so could France. And Italy on their top form play some fantastic football. So i wouldn't be surprised to see one of these teams in the semi's or even the finals (though Spain are going to be a tough nut to crack for anyone).