IDIV (R8l)
Summary:
"Signed Divide"
Reference:
https://www.felixcloutier.com/x86/idiv
Extension:
BASE
Category:
BINARY
ISA-Set:
I86
CPL:
3
iform:
IDIV_GPR8
iclass:
IDIV
ASM:
IDIV
Operands
Operand 1 (r): Register (AL, CL, DL, BL, SPL, BPL, SIL, DIL, R8B, R9B, R10B, R11B, R12B, R13B, R14B, R15B)
Operand 2 (r/w, suppressed): Register (AX)
Operand 3 (w, suppressed): Flags (AF: undef, CF: undef, OF: undef, PF: undef, SF: undef, ZF: undef)
Available performance data
Arrow Lake-P
Arrow Lake-E
Meteor Lake-P
Meteor Lake-E
Emerald Rapids
Alder Lake-P
Alder Lake-E
Rocket Lake
Tiger Lake
Ice Lake
Cascade Lake
Cannon Lake
Skylake-X
Coffee Lake
Kaby Lake
Skylake
Broadwell
Haswell
Ivy Bridge
Sandy Bridge
Westmere
Nehalem
Wolfdale
Conroe
Tremont
Goldmont Plus
Goldmont
Airmont
Bonnell
AMD Zen 5
AMD Zen 4
AMD Zen 3
AMD Zen 2
AMD Zen+
Arrow Lake-P
Measurements
Latencies
Latency operand 1 → 2:
20
Latency operand 2 → 2:
20
Throughput
Measured (loop):
6.13
Measured (unrolled):
6.11
Number of μops
Executed: 5
Retire slots: 5
Decoded (MITE): 5
Microcode Sequencer (MS): 0
Port usage:
2*ALU+1*INT_OTHER+2*SLOW
Arrow Lake-E
Measurements
Latencies
Latency operand 1 → 2:
9 ≤ lat ≤ 10
Latency operand 2 → 2:
9 ≤ lat ≤ 10
Throughput
Measured (loop):
4.00
Measured (unrolled):
4.00
Number of μops
Executed: 1
Microcode Sequencer (MS): 0
Meteor Lake-P
Measurements
Latencies
Latency operand 1 → 2:
17
Latency operand 2 → 2:
17
Throughput
Computed from the port usage: 3.00
Measured (loop):
6.00
Measured (unrolled):
6.00
Number of μops
Executed: 2
Retire slots: 4
Decoded (MITE): 4
Microcode Sequencer (MS): 0
Port usage:
3*p1
Meteor Lake-E
Measurements
Latencies
Latency operand 1 → 2:
9 ≤ lat ≤ 10
Latency operand 2 → 2:
9 ≤ lat ≤ 10
Throughput
Measured (loop):
5.00
Measured (unrolled):
5.00
Number of μops
Executed: 1
Microcode Sequencer (MS): 0
Emerald Rapids
Measurements
Latencies
Latency operand 1 → 2:
17
Latency operand 2 → 2:
17
Throughput
Computed from the port usage: 3.00
Measured (loop):
6.00
Measured (unrolled):
6.00
Number of μops
Executed: 2
Retire slots: 4
Decoded (MITE): 4
Microcode Sequencer (MS): 0
Port usage:
3*p1
Alder Lake-P
Measurements
Latencies
Latency operand 1 → 2:
17
Latency operand 2 → 2:
17
Throughput
Computed from the port usage: 3.00
Measured (loop):
6.00
Measured (unrolled):
6.00
Number of μops
Executed: 2
Retire slots: 4
Decoded (MITE): 4
Microcode Sequencer (MS): 0
Port usage:
3*p1
Alder Lake-E
Measurements
Latencies
Latency operand 1 → 2:
9 ≤ lat ≤ 12
Latency operand 2 → 2:
9 ≤ lat ≤ 12
Throughput
Measured (loop):
5.00
Measured (unrolled):
5.00
Number of μops
Executed: 1
Microcode Sequencer (MS): 0
Rocket Lake
Measurements
Latencies
Latency operand 1 → 2:
15
Latency operand 2 → 2:
15
Throughput
Computed from the port usage: 2.00
Measured (loop):
6.00
Measured (unrolled):
6.00
Number of μops
Executed: 4
Retire slots: 4
Decoded (MITE): 4
Microcode Sequencer (MS): 0
Port usage:
2*p0156+2*p1
Tiger Lake
Measurements
Latencies
Latency operand 1 → 2:
15
Latency operand 2 → 2:
15
Throughput
Computed from the port usage: 2.00
Measured (loop):
6.00
Measured (unrolled):
6.00
Number of μops
Executed: 4
Retire slots: 4
Decoded (MITE): 4
Microcode Sequencer (MS): 0
Port usage:
2*p0156+2*p1
Ice Lake
Measurements
Latencies
Latency operand 1 → 2:
15
Latency operand 2 → 2:
15
Throughput
Computed from the port usage: 2.00
Measured (loop):
6.00
Measured (unrolled):
6.00
Number of μops
Executed: 4
Retire slots: 4
Decoded (MITE): 4
Microcode Sequencer (MS): 0
Port usage:
2*p0156+2*p1
Cascade Lake
Measurements
Latencies
Latency operand 1 → 2:
25
Latency operand 2 → 2:
22
Throughput
Computed from the port usage: 4.00
Measured (loop):
6.00
Measured (unrolled):
6.00
Number of μops
Executed: 11
Retire slots: 11
Decoded (MITE): 4
Microcode Sequencer (MS): 7
Port usage:
2*p0+2*p0156+1*p06+1*p15+4*p5
Cannon Lake
Measurements
Latencies
Latency operand 1 → 2:
10
Latency operand 2 → 2:
15
Throughput
Computed from the port usage: 2.00
Measured (loop):
6.00
Measured (unrolled):
6.00
Number of μops
Executed: 4
Retire slots: 4
Decoded (MITE): 4
Microcode Sequencer (MS): 0
Port usage:
2*p0156+2*p1
Skylake-X
Measurements
Latencies
Latency operand 1 → 2:
25
Latency operand 2 → 2:
22
Throughput
Computed from the port usage: 4.00
Measured (loop):
6.00
Measured (unrolled):
6.00
Number of μops
Executed: 11
Retire slots: 11
Decoded (MITE): 4
Microcode Sequencer (MS): 7
Port usage:
2*p0+3*p0156+1*p06+1*p15+4*p5
Coffee Lake
Measurements
Latencies
Latency operand 1 → 2:
25
Latency operand 2 → 2:
22
Throughput
Computed from the port usage: 4.00
Measured (loop):
6.00
Measured (unrolled):
6.00
Number of μops
Executed: 11
Retire slots: 11
Decoded (MITE): 4
Microcode Sequencer (MS): 7
Port usage:
2*p0+3*p0156+1*p06+1*p15+4*p5
Kaby Lake
Measurements
Latencies
Latency operand 1 → 2:
25
Latency operand 2 → 2:
22
Throughput
Computed from the port usage: 4.00
Measured (loop):
6.00
Measured (unrolled):
6.00
Number of μops
Executed: 11
Retire slots: 11
Decoded (MITE): 4
Microcode Sequencer (MS): 7
Port usage:
2*p0+3*p0156+1*p06+1*p15+4*p5
Skylake
Measurements
Latencies
Latency operand 1 → 2:
25
Latency operand 2 → 2:
22
Throughput
Computed from the port usage: 4.00
Measured (loop):
6.00
Measured (unrolled):
6.00
Number of μops
Executed: 11
Retire slots: 11
Decoded (MITE): 4
Microcode Sequencer (MS): 7
Port usage:
2*p0+3*p0156+1*p06+1*p15+4*p5
Broadwell
Measurements
Latencies
Latency operand 1 → 2:
21 ≤ lat ≤ 24
Latency operand 2 → 2:
21 ≤ lat ≤ 24
Throughput
Computed from the port usage: 2.25
Measured (loop):
6.00
Measured (unrolled):
6.00
Number of μops
Executed: 9
Retire slots: 9
Decoded (MITE): 4
Microcode Sequencer (MS): 5
Port usage:
2*p0+3*p0156+2*p1+2*p5
Haswell
Measurements
Latencies
Latency operand 1 → 2:
21 ≤ lat ≤ 24
Latency operand 2 → 2:
21 ≤ lat ≤ 24
Throughput
Computed from the port usage: 2.25
Measured (loop):
8.00
Measured (unrolled):
8.06
Number of μops
Executed: 9
Retire slots: 9
Decoded (MITE): 4
Microcode Sequencer (MS): 5
Port usage:
2*p0+3*p0156+2*p1+2*p5
Ivy Bridge
Measurements
Latencies
Latency operand 1 → 2:
19 ≤ lat ≤ 22
Latency operand 2 → 2:
19 ≤ lat ≤ 22
Throughput
Computed from the port usage: 3.00
Measured (loop):
8.08
Measured (unrolled):
8.12
Number of μops
Executed: 9
Retire slots: 9
Decoded (MITE): 4
Microcode Sequencer (MS): 5
Port usage:
2*p0+3*p015+2*p1+2*p5
Sandy Bridge
Measurements
Latencies
Latency operand 1 → 2:
19 ≤ lat ≤ 22
Latency operand 2 → 2:
19 ≤ lat ≤ 22
Throughput
Computed from the port usage: 3.00
Measured (loop):
11.00
Measured (unrolled):
11.03
Number of μops
Executed: 9
Retire slots: 9
Decoded (MITE): 4
Microcode Sequencer (MS): 5
Port usage:
2*p0+3*p015+2*p1+2*p5
Westmere
Measurements
Latencies
Latency operand 1 → 2:
16 ≤ lat ≤ 20
Latency operand 2 → 2:
16 ≤ lat ≤ 20
Throughput
Computed from the port usage: 2.00
Measured (loop):
7.00
Measured (unrolled):
7.00
Number of μops
Executed: 5
Retire slots: 5
Microcode Sequencer (MS): 1
Port usage:
1*p0+2*p015+2*p1
Nehalem
Measurements
Latencies
Latency operand 1 → 2:
16 ≤ lat ≤ 20
Latency operand 2 → 2:
16 ≤ lat ≤ 20
Throughput
Computed from the port usage: 2.00
Measured (loop):
7.00
Measured (unrolled):
7.00
Number of μops
Executed: 5
Retire slots: 5
Microcode Sequencer (MS): 1
Port usage:
1*p0+2*p015+2*p1
Wolfdale
Measurements
Latencies
Latency operand 1 → 2:
12 ≤ lat ≤ 17
Latency operand 2 → 2:
12 ≤ lat ≤ 17
Throughput
Computed from the port usage: 2.00
Measured (loop):
5.00
Measured (unrolled):
5.00
Number of μops
Executed: 6
Port usage:
1*p0+3*p015+2*p1
Conroe
Measurements
Latencies
Latency operand 1 → 2:
16
Latency operand 2 → 2:
18
Throughput
Computed from the port usage: 1.00
Measured (loop):
12.04
Measured (unrolled):
12.00
Number of μops
Executed: 3
Port usage:
1*p0+1*p015+1*p05
Tremont
Measurements
Latencies
Latency operand 1 → 2:
9 ≤ lat ≤ 12
Latency operand 2 → 2:
9 ≤ lat ≤ 12
Throughput
Measured (loop):
9.00
Measured (unrolled):
9.00
Number of μops
Executed: 1
Microcode Sequencer (MS): 0
Goldmont Plus
Measurements
Latencies
Latency operand 1 → 2:
11 ≤ lat ≤ 12
Latency operand 2 → 2:
11 ≤ lat ≤ 12
Throughput
Measured (loop):
11.00
Measured (unrolled):
11.00
Number of μops
Executed: 1
Microcode Sequencer (MS): 0
Goldmont
Measurements
Latencies
Latency operand 1 → 2:
11 ≤ lat ≤ 12
Latency operand 2 → 2:
11 ≤ lat ≤ 12
Throughput
Measured (loop):
11.00
Measured (unrolled):
11.00
Number of μops
Executed: 1
Microcode Sequencer (MS): 0
Airmont
Measurements
Latencies
Latency operand 1 → 2:
34
Latency operand 2 → 2:
33
Throughput
Measured (loop):
24.36
Measured (unrolled):
24.33
Number of μops
Executed: 26
Microcode Sequencer (MS): 26
Bonnell
Measurements
Latencies
Latency operand 1 → 2:
37
Latency operand 2 → 2:
37
Throughput
Measured (loop):
38.03
Measured (unrolled):
38.00
Number of μops
Executed: 26
Microcode Sequencer (MS): 26
AMD Zen 5
Measurements
Latencies
Latency operand 1 → 2:
10
Latency operand 2 → 2:
10
Throughput
Measured (loop):
4.00
Measured (unrolled):
4.00
Number of μops
Executed: 1
Documentation
Latency: 10
Throughput: 10.00
Number of μops: 2
Port usage: DIV
AMD Zen 4
Measurements
Latencies
Latency operand 1 → 2:
10
Latency operand 2 → 2:
10
Throughput
Measured (loop):
4.00
Measured (unrolled):
4.00
Number of μops
Executed: 2
Documentation
Latency: 9
Throughput: 4.00
Number of μops: 2
Port usage: DIV
AMD Zen 3
Measurements
Latencies
Latency operand 1 → 2:
10
Latency operand 2 → 2:
10
Throughput
Measured (loop):
4.00
Measured (unrolled):
4.00
Number of μops
Executed: 2
Documentation
Latency: 9
Throughput: 4.00
Number of μops: 2
Port usage: DIV
AMD Zen 2
Measurements
Latencies
Latency operand 1 → 2:
9 ≤ lat ≤ 12
Latency operand 2 → 2:
9 ≤ lat ≤ 12
Throughput
Measured (loop):
13.00
Measured (unrolled):
13.00
Number of μops
Executed: 1
Documentation
Latency: 15
Throughput: 15.00
Number of μops: 1
Port usage: DIV
AMD Zen+
Measurements
Latencies
Latency operand 1 → 2:
9 ≤ lat ≤ 12
Latency operand 2 → 2:
9 ≤ lat ≤ 12
Throughput
Measured (loop):
13.00
Measured (unrolled):
13.00
Number of μops
Executed: 1
Documentation
Latency: 15
Throughput: 15.00
Number of μops: 1
Port usage: DIV