Three US troops, at least 40 Iraqis killed