HLSL Deferred Rendering
A very novice mistake, I was compiling with the old HLSL compiler. But why would that be the default? Very strange.

For anybody wondering, just right click the HLSL file in the solution explorer and go to properties -> HLSL Compiler -> General, and switch Shader Model to the one you want which was newest one for me (5.0)