IPS and IPC are generally specified "per core". That's because processor makers often vary how many cores of a particular kind they pack on the same processor, so it doesn't really make sense to specify these per-processor, whereas the core is always the same in those cases -- the type of core is generally described by the "generation" of the processor.
I will say that instructions-per-cycle is a difficult metric. It is not the case that a processor can execute any N instructions per cycle. Rather, cores implement certain blocks of functionality that can work in parallel. For example, one can think of a load, an integer addition, a floating point multiplication, and a shift operation to happen at the same time. But the core would not be able to perform four integer additions at the same time. Also, each of these operations might take more than one cycle -- floating point operations, for example, generally take more than one cycle. In other words, it is quite difficult to make inferences from knowing how many instructions can be executed per cycle to how long it will actually take to execute a program that has M instructions -- one needs to not only know which kinds of instructions they are, and in which order they appear in the program.