diff --git a/llvm/lib/Target/X86/X86ScheduleAtom.td b/llvm/lib/Target/X86/X86ScheduleAtom.td index 7a02f5834b2657..796baa25a6990a 100644 --- a/llvm/lib/Target/X86/X86ScheduleAtom.td +++ b/llvm/lib/Target/X86/X86ScheduleAtom.td @@ -84,16 +84,16 @@ def : WriteRes; defm : AtomWriteResPair; defm : AtomWriteResPair; -defm : AtomWriteResPair; -defm : AtomWriteResPair; -defm : AtomWriteResPair; -defm : AtomWriteResPair; -defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; defm : AtomWriteResPair; defm : AtomWriteResPair; -defm : AtomWriteResPair; -defm : AtomWriteResPair; -defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; defm : X86WriteResUnsupported; defm : X86WriteResUnsupported; defm : X86WriteResPairUnsupported; @@ -105,14 +105,14 @@ defm : X86WriteRes; defm : AtomWriteResPair; defm : X86WriteRes; -defm : AtomWriteResPair; -defm : AtomWriteResPair; -defm : AtomWriteResPair; -defm : AtomWriteResPair; -defm : AtomWriteResPair; -defm : AtomWriteResPair; -defm : AtomWriteResPair; -defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; defm : X86WriteResPairUnsupported; diff --git a/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s index db3cf6f931004d..574cb2b7ccce90 100644 --- a/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s @@ -1317,49 +1317,49 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.50 decq %rdi # CHECK-NEXT: 1 1 1.00 * * decq (%rax) # CHECK-NEXT: 1 1 1.00 * * lock decq (%rax) -# CHECK-NEXT: 1 50 25.00 U divb %dil -# CHECK-NEXT: 1 68 34.00 * U divb (%rax) -# CHECK-NEXT: 1 50 25.00 U divw %si -# CHECK-NEXT: 1 50 25.00 * U divw (%rax) -# CHECK-NEXT: 1 50 25.00 U divl %edx -# CHECK-NEXT: 1 50 25.00 * U divl (%rax) -# CHECK-NEXT: 1 130 65.00 U divq %rcx -# CHECK-NEXT: 1 130 65.00 * U divq (%rax) +# CHECK-NEXT: 1 50 50.00 U divb %dil +# CHECK-NEXT: 1 68 68.00 * U divb (%rax) +# CHECK-NEXT: 1 50 50.00 U divw %si +# CHECK-NEXT: 1 50 50.00 * U divw (%rax) +# CHECK-NEXT: 1 50 50.00 U divl %edx +# CHECK-NEXT: 1 50 50.00 * U divl (%rax) +# CHECK-NEXT: 1 130 130.00 U divq %rcx +# CHECK-NEXT: 1 130 130.00 * U divq (%rax) # CHECK-NEXT: 1 32 16.00 U enter $7, $4095 -# CHECK-NEXT: 1 62 31.00 U idivb %dil -# CHECK-NEXT: 1 62 31.00 * U idivb (%rax) -# CHECK-NEXT: 1 62 31.00 U idivw %si -# CHECK-NEXT: 1 62 31.00 * U idivw (%rax) -# CHECK-NEXT: 1 62 31.00 U idivl %edx -# CHECK-NEXT: 1 62 31.00 * U idivl (%rax) -# CHECK-NEXT: 1 130 65.00 U idivq %rcx -# CHECK-NEXT: 1 130 65.00 * U idivq (%rax) -# CHECK-NEXT: 1 7 3.50 imulb %dil -# CHECK-NEXT: 1 7 3.50 * imulb (%rax) -# CHECK-NEXT: 1 7 3.50 imulw %di -# CHECK-NEXT: 1 8 4.00 * imulw (%rax) -# CHECK-NEXT: 1 6 3.00 imulw %si, %di -# CHECK-NEXT: 1 7 3.50 * imulw (%rax), %di -# CHECK-NEXT: 1 6 3.00 imulw $511, %si, %di -# CHECK-NEXT: 1 7 3.50 * imulw $511, (%rax), %di -# CHECK-NEXT: 1 6 3.00 imulw $7, %si, %di -# CHECK-NEXT: 1 7 3.50 * imulw $7, (%rax), %di -# CHECK-NEXT: 1 6 3.00 imull %edi -# CHECK-NEXT: 1 7 3.50 * imull (%rax) +# CHECK-NEXT: 1 62 62.00 U idivb %dil +# CHECK-NEXT: 1 62 62.00 * U idivb (%rax) +# CHECK-NEXT: 1 62 62.00 U idivw %si +# CHECK-NEXT: 1 62 62.00 * U idivw (%rax) +# CHECK-NEXT: 1 62 62.00 U idivl %edx +# CHECK-NEXT: 1 62 62.00 * U idivl (%rax) +# CHECK-NEXT: 1 130 130.00 U idivq %rcx +# CHECK-NEXT: 1 130 130.00 * U idivq (%rax) +# CHECK-NEXT: 1 7 7.00 imulb %dil +# CHECK-NEXT: 1 7 7.00 * imulb (%rax) +# CHECK-NEXT: 1 7 7.00 imulw %di +# CHECK-NEXT: 1 8 8.00 * imulw (%rax) +# CHECK-NEXT: 1 6 6.00 imulw %si, %di +# CHECK-NEXT: 1 7 7.00 * imulw (%rax), %di +# CHECK-NEXT: 1 6 6.00 imulw $511, %si, %di +# CHECK-NEXT: 1 7 7.00 * imulw $511, (%rax), %di +# CHECK-NEXT: 1 6 6.00 imulw $7, %si, %di +# CHECK-NEXT: 1 7 7.00 * imulw $7, (%rax), %di +# CHECK-NEXT: 1 6 6.00 imull %edi +# CHECK-NEXT: 1 7 7.00 * imull (%rax) # CHECK-NEXT: 1 5 5.00 imull %esi, %edi # CHECK-NEXT: 1 5 5.00 * imull (%rax), %edi # CHECK-NEXT: 1 5 5.00 imull $665536, %esi, %edi # CHECK-NEXT: 1 5 5.00 * imull $665536, (%rax), %edi # CHECK-NEXT: 1 5 5.00 imull $7, %esi, %edi # CHECK-NEXT: 1 5 5.00 * imull $7, (%rax), %edi -# CHECK-NEXT: 1 12 6.00 imulq %rdi -# CHECK-NEXT: 1 12 6.00 * imulq (%rax) -# CHECK-NEXT: 1 12 6.00 imulq %rsi, %rdi -# CHECK-NEXT: 1 12 6.00 * imulq (%rax), %rdi -# CHECK-NEXT: 1 14 7.00 imulq $665536, %rsi, %rdi -# CHECK-NEXT: 1 14 7.00 * imulq $665536, (%rax), %rdi -# CHECK-NEXT: 1 14 7.00 imulq $7, %rsi, %rdi -# CHECK-NEXT: 1 14 7.00 * imulq $7, (%rax), %rdi +# CHECK-NEXT: 1 12 12.00 imulq %rdi +# CHECK-NEXT: 1 12 12.00 * imulq (%rax) +# CHECK-NEXT: 1 12 12.00 imulq %rsi, %rdi +# CHECK-NEXT: 1 12 12.00 * imulq (%rax), %rdi +# CHECK-NEXT: 1 14 14.00 imulq $665536, %rsi, %rdi +# CHECK-NEXT: 1 14 14.00 * imulq $665536, (%rax), %rdi +# CHECK-NEXT: 1 14 14.00 imulq $7, %rsi, %rdi +# CHECK-NEXT: 1 14 14.00 * imulq $7, (%rax), %rdi # CHECK-NEXT: 1 92 46.00 U inb $7, %al # CHECK-NEXT: 1 94 47.00 U inb %dx, %al # CHECK-NEXT: 1 92 46.00 U inw $7, %ax @@ -1416,14 +1416,14 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 1.00 * movzwq (%rax), %rdi # CHECK-NEXT: 1 1 1.00 movslq %eax, %rdi # CHECK-NEXT: 1 1 1.00 * movslq (%rax), %rdi -# CHECK-NEXT: 1 7 3.50 mulb %dil -# CHECK-NEXT: 1 7 3.50 * mulb (%rax) -# CHECK-NEXT: 1 7 3.50 mulw %si -# CHECK-NEXT: 1 8 4.00 * mulw (%rax) -# CHECK-NEXT: 1 6 3.00 mull %edx -# CHECK-NEXT: 1 7 3.50 * mull (%rax) -# CHECK-NEXT: 1 12 6.00 mulq %rcx -# CHECK-NEXT: 1 12 6.00 * mulq (%rax) +# CHECK-NEXT: 1 7 7.00 mulb %dil +# CHECK-NEXT: 1 7 7.00 * mulb (%rax) +# CHECK-NEXT: 1 7 7.00 mulw %si +# CHECK-NEXT: 1 8 8.00 * mulw (%rax) +# CHECK-NEXT: 1 6 6.00 mull %edx +# CHECK-NEXT: 1 7 7.00 * mull (%rax) +# CHECK-NEXT: 1 12 12.00 mulq %rcx +# CHECK-NEXT: 1 12 12.00 * mulq (%rax) # CHECK-NEXT: 1 1 0.50 negb %dil # CHECK-NEXT: 1 1 1.00 * * negb (%r8) # CHECK-NEXT: 1 1 1.00 * * lock negb (%r8) @@ -1947,7 +1947,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] -# CHECK-NEXT: 2886.00 2433.00 +# CHECK-NEXT: 3616.50 3163.50 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] Instructions: @@ -2238,49 +2238,49 @@ xorq (%rax), %rdi # CHECK-NEXT: 0.50 0.50 decq %rdi # CHECK-NEXT: 1.00 - decq (%rax) # CHECK-NEXT: 1.00 - lock decq (%rax) -# CHECK-NEXT: 25.00 25.00 divb %dil -# CHECK-NEXT: 34.00 34.00 divb (%rax) -# CHECK-NEXT: 25.00 25.00 divw %si -# CHECK-NEXT: 25.00 25.00 divw (%rax) -# CHECK-NEXT: 25.00 25.00 divl %edx -# CHECK-NEXT: 25.00 25.00 divl (%rax) -# CHECK-NEXT: 65.00 65.00 divq %rcx -# CHECK-NEXT: 65.00 65.00 divq (%rax) +# CHECK-NEXT: 50.00 50.00 divb %dil +# CHECK-NEXT: 68.00 68.00 divb (%rax) +# CHECK-NEXT: 50.00 50.00 divw %si +# CHECK-NEXT: 50.00 50.00 divw (%rax) +# CHECK-NEXT: 50.00 50.00 divl %edx +# CHECK-NEXT: 50.00 50.00 divl (%rax) +# CHECK-NEXT: 130.00 130.00 divq %rcx +# CHECK-NEXT: 130.00 130.00 divq (%rax) # CHECK-NEXT: 16.00 16.00 enter $7, $4095 -# CHECK-NEXT: 31.00 31.00 idivb %dil -# CHECK-NEXT: 31.00 31.00 idivb (%rax) -# CHECK-NEXT: 31.00 31.00 idivw %si -# CHECK-NEXT: 31.00 31.00 idivw (%rax) -# CHECK-NEXT: 31.00 31.00 idivl %edx -# CHECK-NEXT: 31.00 31.00 idivl (%rax) -# CHECK-NEXT: 65.00 65.00 idivq %rcx -# CHECK-NEXT: 65.00 65.00 idivq (%rax) -# CHECK-NEXT: 3.50 3.50 imulb %dil -# CHECK-NEXT: 3.50 3.50 imulb (%rax) -# CHECK-NEXT: 3.50 3.50 imulw %di -# CHECK-NEXT: 4.00 4.00 imulw (%rax) -# CHECK-NEXT: 3.00 3.00 imulw %si, %di -# CHECK-NEXT: 3.50 3.50 imulw (%rax), %di -# CHECK-NEXT: 3.00 3.00 imulw $511, %si, %di -# CHECK-NEXT: 3.50 3.50 imulw $511, (%rax), %di -# CHECK-NEXT: 3.00 3.00 imulw $7, %si, %di -# CHECK-NEXT: 3.50 3.50 imulw $7, (%rax), %di -# CHECK-NEXT: 3.00 3.00 imull %edi -# CHECK-NEXT: 3.50 3.50 imull (%rax) +# CHECK-NEXT: 62.00 62.00 idivb %dil +# CHECK-NEXT: 62.00 62.00 idivb (%rax) +# CHECK-NEXT: 62.00 62.00 idivw %si +# CHECK-NEXT: 62.00 62.00 idivw (%rax) +# CHECK-NEXT: 62.00 62.00 idivl %edx +# CHECK-NEXT: 62.00 62.00 idivl (%rax) +# CHECK-NEXT: 130.00 130.00 idivq %rcx +# CHECK-NEXT: 130.00 130.00 idivq (%rax) +# CHECK-NEXT: 7.00 7.00 imulb %dil +# CHECK-NEXT: 7.00 7.00 imulb (%rax) +# CHECK-NEXT: 7.00 7.00 imulw %di +# CHECK-NEXT: 8.00 8.00 imulw (%rax) +# CHECK-NEXT: 6.00 6.00 imulw %si, %di +# CHECK-NEXT: 7.00 7.00 imulw (%rax), %di +# CHECK-NEXT: 6.00 6.00 imulw $511, %si, %di +# CHECK-NEXT: 7.00 7.00 imulw $511, (%rax), %di +# CHECK-NEXT: 6.00 6.00 imulw $7, %si, %di +# CHECK-NEXT: 7.00 7.00 imulw $7, (%rax), %di +# CHECK-NEXT: 6.00 6.00 imull %edi +# CHECK-NEXT: 7.00 7.00 imull (%rax) # CHECK-NEXT: 5.00 - imull %esi, %edi # CHECK-NEXT: 5.00 - imull (%rax), %edi # CHECK-NEXT: 5.00 - imull $665536, %esi, %edi # CHECK-NEXT: 5.00 - imull $665536, (%rax), %edi # CHECK-NEXT: 5.00 - imull $7, %esi, %edi # CHECK-NEXT: 5.00 - imull $7, (%rax), %edi -# CHECK-NEXT: 6.00 6.00 imulq %rdi -# CHECK-NEXT: 6.00 6.00 imulq (%rax) -# CHECK-NEXT: 6.00 6.00 imulq %rsi, %rdi -# CHECK-NEXT: 6.00 6.00 imulq (%rax), %rdi -# CHECK-NEXT: 7.00 7.00 imulq $665536, %rsi, %rdi -# CHECK-NEXT: 7.00 7.00 imulq $665536, (%rax), %rdi -# CHECK-NEXT: 7.00 7.00 imulq $7, %rsi, %rdi -# CHECK-NEXT: 7.00 7.00 imulq $7, (%rax), %rdi +# CHECK-NEXT: 12.00 12.00 imulq %rdi +# CHECK-NEXT: 12.00 12.00 imulq (%rax) +# CHECK-NEXT: 12.00 12.00 imulq %rsi, %rdi +# CHECK-NEXT: 12.00 12.00 imulq (%rax), %rdi +# CHECK-NEXT: 14.00 14.00 imulq $665536, %rsi, %rdi +# CHECK-NEXT: 14.00 14.00 imulq $665536, (%rax), %rdi +# CHECK-NEXT: 14.00 14.00 imulq $7, %rsi, %rdi +# CHECK-NEXT: 14.00 14.00 imulq $7, (%rax), %rdi # CHECK-NEXT: 46.00 46.00 inb $7, %al # CHECK-NEXT: 47.00 47.00 inb %dx, %al # CHECK-NEXT: 46.00 46.00 inw $7, %ax @@ -2337,14 +2337,14 @@ xorq (%rax), %rdi # CHECK-NEXT: 1.00 - movzwq (%rax), %rdi # CHECK-NEXT: 1.00 - movslq %eax, %rdi # CHECK-NEXT: 1.00 - movslq (%rax), %rdi -# CHECK-NEXT: 3.50 3.50 mulb %dil -# CHECK-NEXT: 3.50 3.50 mulb (%rax) -# CHECK-NEXT: 3.50 3.50 mulw %si -# CHECK-NEXT: 4.00 4.00 mulw (%rax) -# CHECK-NEXT: 3.00 3.00 mull %edx -# CHECK-NEXT: 3.50 3.50 mull (%rax) -# CHECK-NEXT: 6.00 6.00 mulq %rcx -# CHECK-NEXT: 6.00 6.00 mulq (%rax) +# CHECK-NEXT: 7.00 7.00 mulb %dil +# CHECK-NEXT: 7.00 7.00 mulb (%rax) +# CHECK-NEXT: 7.00 7.00 mulw %si +# CHECK-NEXT: 8.00 8.00 mulw (%rax) +# CHECK-NEXT: 6.00 6.00 mull %edx +# CHECK-NEXT: 7.00 7.00 mull (%rax) +# CHECK-NEXT: 12.00 12.00 mulq %rcx +# CHECK-NEXT: 12.00 12.00 mulq (%rax) # CHECK-NEXT: 0.50 0.50 negb %dil # CHECK-NEXT: 1.00 - negb (%r8) # CHECK-NEXT: 1.00 - lock negb (%r8)