Division by what? You don't know MT scaling, you don't know SMT scaling and without those, you can't divide.
You were asked a different question: since you consider the test was indicative of IPC as the appropriate values are one division away, please develop on this further and explain how division is to be applied. Otherwise having people "read up" on what IPC means is hardly helpful for the purpose of this conversation.
We know that:
IPC = the average number of instructions executed for each clock cycle. Per processor. Usually it's referred to a single processor core, and that's what I used. But even if you decide to take all instructions executed by all cores, at the end it doesn't change the overall result; see below.
ExecutedInstructions = Time * Frequency * Cores * IPC ; Time in seconds
But we have some fixed values for Frequency (3Ghz) and Cores (8), both for Zen and Broadwell-E.
So we leave them as they are, and only substitute the different values for the two processors:
ExecutedInstructions.Zen = Time.Zen * Frequency * Cores * IPC.Zen
ExecutedInstructions.BDW = Time.BDW * Frequency * Cores * IPC.BDW
Since the application used is exactly the same, as well as the executed job, we can roughly assume that the number of executed instructions is the same in both cases. Here I'm assuming that there's no specific code path for the two processors: only one, the same, is used for both.
So:
ExecutedInstructions = Time.Zen * Frequency * Cores * IPC.Zen
ExecutedInstructions = Time.BDW * Frequency * Cores * IPC.BDW
hence:
Time.Zen * Frequency * Cores * IPC.Zen = Time.BDW * Frequency * Cores * IPC.BDW
Simplifying (read: the infamous division which I talked about is here, applied to the Cores):
Time.Zen * IPC.Zen = Time.BDW * IPC.BDW
But we know that:
Time.BDW = 1.02 * Time.Zen
So:
Time.Zen * IPC.Zen = 1.02 * Time.Zen * IPC.BDW
Simplifying:
IPC.Zen = 1.02 * IPC.BDW
Which is the expected result.