# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 4 2.3 2.3 0.0 b t
-
# ALL: [0] [1] [2] [3]
# ALL-NEXT: 0. 3 0.0 0.0 0.0 b t
-
# ALL: Scheduler's queue usage:
# ALL-NEXT: No scheduler resources used.
-
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
# CHECK-NEXT: - - - - 1.00 1.00 - - - - - - stp d0, d1, [x0]
-
# CHECK-NEXT: 1.00 - cmovgeq (%rax), %rdi
# CHECK-NEXT: 1.00 - cmovleq (%rax), %rdi
# CHECK-NEXT: 1.00 - cmovgq (%rax), %rdi
-
# CHECK-NEXT: 1.00 - punpcklwd (%rax), %mm2
# CHECK-NEXT: 0.50 0.50 pxor %mm0, %mm2
# CHECK-NEXT: 1.00 - pxor (%rax), %mm2
-
# CHECK-NEXT: 1.00 - unpcklps (%rax), %xmm2
# CHECK-NEXT: 0.50 0.50 xorps %xmm0, %xmm2
# CHECK-NEXT: 1.00 - xorps (%rax), %xmm2
-
# CHECK-NEXT: 1.00 - unpcklpd (%rax), %xmm2
# CHECK-NEXT: 0.50 0.50 xorpd %xmm0, %xmm2
# CHECK-NEXT: 1.00 - xorpd (%rax), %xmm2
-
# CHECK-NEXT: 1.00 - movshdup (%rax), %xmm2
# CHECK-NEXT: 1.00 - movsldup %xmm0, %xmm2
# CHECK-NEXT: 1.00 - movsldup (%rax), %xmm2
-
# CHECK-NEXT: 1.00 - psignw (%rax), %mm2
# CHECK-NEXT: 0.50 0.50 psignw %xmm0, %xmm2
# CHECK-NEXT: 1.00 - psignw (%rax), %xmm2
-
# CHECK-NEXT: 0.50 0.50 xorq %rdi, %rdi
# CHECK-NEXT: 1.00 - xorq %rdi, (%rax)
# CHECK-NEXT: 1.00 - xorq (%rax), %rdi
-
# CHECK-NEXT: 12.50 12.50 fxtract
# CHECK-NEXT: 73.00 73.00 fyl2x
# CHECK-NEXT: 73.50 73.50 fyl2xp1
-
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - adoxl (%rbx), %ecx
# CHECK-NEXT: - - 0.50 - - - - - 0.50 - adoxq %rbx, %rcx
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - adoxq (%rbx), %rcx
-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vxorps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 16.00 - - vzeroall
# CHECK-NEXT: - - 1.08 1.08 - - - 1.08 0.75 - vzeroupper
-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpxor %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpxor (%rax), %ymm1, %ymm2
-
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - tzcntl (%rax), %ecx
# CHECK-NEXT: - - - 1.00 - - - - - - tzcntq %rax, %rcx
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - tzcntq (%rax), %rcx
-
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - shrxl %eax, (%rbx), %ecx
# CHECK-NEXT: - - 0.50 - - - - - 0.50 - shrxq %rax, %rbx, %rcx
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - shrxq %rax, (%rbx), %rcx
-
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - cmovgeq (%rax), %rdi
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - cmovleq (%rax), %rdi
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - cmovgq (%rax), %rdi
-
# CHECK-NEXT: - - - 1.00 0.33 0.33 1.00 - - 0.33 vcvtps2ph $0, %xmm0, (%rax)
# CHECK-NEXT: - - - 1.00 - - - 1.00 - - vcvtps2ph $0, %ymm0, %xmm2
# CHECK-NEXT: - - - 1.00 0.33 0.33 1.00 - - 0.33 vcvtps2ph $0, %ymm0, (%rax)
-
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfnmsub213ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - vfnmsub231ss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfnmsub231ss (%rax), %xmm1, %xmm2
-
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - lzcntl (%rax), %ecx
# CHECK-NEXT: - - - 1.00 - - - - - - lzcntq %rax, %rcx
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - lzcntq (%rax), %rcx
-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - punpcklwd (%rax), %mm2
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - pxor %mm0, %mm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - pxor (%rax), %mm2
-
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - popcntl (%rax), %ecx
# CHECK-NEXT: - - - 1.00 - - - - - - popcntq %rax, %rcx
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - popcntq (%rax), %rcx
-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - unpcklps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 1.00 - - xorps %xmm0, %xmm2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - xorps (%rax), %xmm2
-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - unpcklpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 1.00 - - xorpd %xmm0, %xmm2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - xorpd (%rax), %xmm2
-
# CHECK-NEXT: - - - - 0.50 0.50 - - - - movshdup (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 1.00 - - movsldup %xmm0, %xmm2
# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsldup (%rax), %xmm2
-
# CHECK-NEXT: - - - 2.00 0.50 0.50 - - - - roundsd $1, (%rax), %xmm2
# CHECK-NEXT: - - - - 0.50 0.50 - - - - roundss $1, %xmm0, %xmm2
# CHECK-NEXT: - - - 2.00 0.50 0.50 - - - - roundss $1, (%rax), %xmm2
-
# CHECK-NEXT: - - 3.00 - 0.50 0.50 - - - - pcmpistrm $1, (%rax), %xmm2
# CHECK-NEXT: - - 1.00 - - - - - - - pcmpgtq %xmm0, %xmm2
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - pcmpgtq (%rax), %xmm2
-
# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - psignw (%rax), %mm2
# CHECK-NEXT: - - - 0.50 - - - 0.50 - - psignw %xmm0, %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - psignw (%rax), %xmm2
-
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - xorq %rdi, %rdi
# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 xorq %rdi, (%rax)
# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - xorq (%rax), %rdi
-
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fxtract
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fyl2x
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fyl2xp1
-
# CHECK-NEXT: 0. 3 1.0 1.0 3.3 vmulps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1. 3 3.3 0.7 1.0 vhaddps %xmm2, %xmm2, %xmm3
# CHECK-NEXT: 2. 3 5.7 0.0 0.0 vhaddps %xmm3, %xmm3, %xmm4
-
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vshufps $0, %xmm0, %xmm1, %xmm1
# CHECK-NEXT: 1. 1 1.0 0.0 0.0 vhaddps (%rdi), %xmm1, %xmm2
-
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vshufps $0, %xmm0, %xmm1, %xmm1
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 vhaddps (%rdi), %ymm1, %ymm2
-
# ENABLED-NEXT: 1 2 1.00 vmulps %xmm0, %xmm1, %xmm2
# ENABLED-NEXT: 1 3 1.00 vhaddps %xmm2, %xmm2, %xmm3
# ENABLED-NEXT: 1 3 1.00 vhaddps %xmm3, %xmm3, %xmm4
-
# CHECK-NEXT: 5. 1 16.0 0.0 0.0 vmovaps %xmm0, 32(%rdi)
# CHECK-NEXT: 6. 1 16.0 0.0 0.0 vmovaps 48(%rsi), %xmm0
# CHECK-NEXT: 7. 1 21.0 0.0 0.0 vmovaps %xmm0, 48(%rdi)
-
# CHECK-NEXT: 5. 1 6.0 0.0 0.0 vmovaps %xmm0, 32(%rdi)
# CHECK-NEXT: 6. 1 1.0 1.0 0.0 vmovaps 48(%rsi), %xmm0
# CHECK-NEXT: 7. 1 6.0 0.0 0.0 vmovaps %xmm0, 48(%rdi)
-
# CHECK-NEXT: 5. 1 1.0 1.0 0.0 vsqrtps %xmm0, %xmm2
# CHECK-NEXT: 6. 1 1.0 1.0 17.0 vaddps %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 7. 1 20.0 20.0 0.0 vsqrtps %ymm0, %ymm2
-
# CHECK-NEXT: [# retired], [# cycles]
# CHECK-NEXT: 0, 23 (74.2%)
# CHECK-NEXT: 2, 8 (25.8%)
-
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm1
# CHECK-NEXT: 1. 1 1.0 0.0 0.0 vmulps (%rdi), %xmm1, %xmm2
-
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imull %esi
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 imull (%rdi)
-
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 addq %rdi, %rsi
# CHECK-NEXT: 1. 1 1.0 0.0 0.0 addq (%rsp), %rsi
# CHECK-NEXT: 2. 1 2.0 2.0 2.0 addq %rdx, %r8
-
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 5 9.0 0.2 0.0 vaddps %xmm0, %xmm0, %xmm0
# CHECK-NEXT: 1. 5 12.0 0.0 0.0 vmulps %xmm0, %xmm0, %xmm0
-
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 5 6.6 0.2 0.0 vaddps %xmm0, %xmm0, %xmm0
# CHECK-NEXT: 1. 5 7.8 0.0 0.0 vmulps %xmm0, %xmm0, %xmm0
-
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 2 1.0 1.0 0.0 idivl %eax
-
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 3 25.0 0.3 0.0 idivl %eax
-
# CHECK-NEXT: 30. 1 31.0 25.0 0.0 vaddps %ymm3, %ymm0, %ymm4
# CHECK-NEXT: 31. 1 32.0 27.0 0.0 vaddps %ymm3, %ymm0, %ymm5
# CHECK-NEXT: 32. 1 25.0 25.0 0.0 vaddps %ymm3, %ymm0, %ymm6
-
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 aesimc (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 aeskeygenassist $22, %xmm0, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 aeskeygenassist $22, (%rax), %xmm2
-
# CHECK-NEXT: - - - 1.00 1.00 1.00 1.00 2.00 - - - - - - vxorps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - - - - - - vzeroall
# CHECK-NEXT: - - - - - - - - - - - - - - vzeroupper
-
# CHECK-NEXT: 1.00 1.00 - - - - - 1.00 - - - - - - tzcntl (%rax), %ecx
# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - - tzcntq %rax, %rcx
# CHECK-NEXT: 1.00 1.00 - - - - - 1.00 - - - - - - tzcntq (%rax), %rcx
-
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 pclmulqdq $11, %xmm0, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 pclmulqdq $11, (%rax), %xmm2
-
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - cmovgeq (%rax), %rdi
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - cmovleq (%rax), %rdi
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - cmovgq (%rax), %rdi
-
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - vcvtps2ph $0, %xmm0, (%rax)
# CHECK-NEXT: - - - 1.00 1.00 - 2.00 - - - 2.00 - - - vcvtps2ph $0, %ymm0, %xmm2
# CHECK-NEXT: - - - 1.00 1.00 - 2.00 - - 1.00 2.00 - - - vcvtps2ph $0, %ymm0, (%rax)
-
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - lzcntl (%rax), %ecx
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - lzcntq %rax, %rcx
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - lzcntq (%rax), %rcx
-
# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - punpcklwd (%rax), %mm2
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - pxor %mm0, %mm2
# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - pxor (%rax), %mm2
-
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - popcntl (%rax), %ecx
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - popcntq %rax, %rcx
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - popcntq (%rax), %rcx
-
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - unpcklps (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - xorps %xmm0, %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - xorps (%rax), %xmm2
-
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - unpcklpd (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - xorpd %xmm0, %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - xorpd (%rax), %xmm2
-
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - movshdup (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - movsldup %xmm0, %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - movsldup (%rax), %xmm2
-
# CHECK-NEXT: - - - - - - 1.00 1.00 - - 1.00 - - - roundsd $1, (%rax), %xmm2
# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - roundss $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - 1.00 1.00 - - 1.00 - - - roundss $1, (%rax), %xmm2
-
# CHECK-NEXT: 1.00 - - 1.00 - - 1.00 1.00 - - - - 2.00 - pcmpistrm $1, (%rax), %xmm2
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - pcmpgtq %xmm0, %xmm2
# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - pcmpgtq (%rax), %xmm2
-
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 2.00 2.00 - insertq $22, $22, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - movntsd %xmm0, (%rax)
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - movntss %xmm0, (%rax)
-
# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - psignw (%rax), %mm2
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - psignw %xmm0, %xmm2
# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - psignw (%rax), %xmm2
-
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - xorq %rdi, %rdi
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - xorq %rdi, (%rax)
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - xorq (%rax), %rdi
-
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fxtract
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fyl2x
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fyl2xp1
-
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmulps (%rsi), %xmm0, %xmm0
# CHECK-NEXT: - 1.00 - - - - - - - - - - - - addq %rsi, %rsi
-
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - addl %edi, %eax
-
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm1
# CHECK-NEXT: 1. 1 1.0 0.0 0.0 vandps (%rdi), %xmm1, %xmm2
-
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vaddps %ymm0, %ymm0, %ymm1
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 vandps (%rdi), %ymm1, %ymm2
-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vxorps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 16.00 - - vzeroall
# CHECK-NEXT: - - 1.08 1.08 - - - 1.08 0.75 - vzeroupper
-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpxor %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpxor (%rax), %ymm1, %ymm2
-
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - tzcntl (%rax), %ecx
# CHECK-NEXT: - - - 1.00 - - - - - - tzcntq %rax, %rcx
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - tzcntq (%rax), %rcx
-
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - shrxl %eax, (%rbx), %ecx
# CHECK-NEXT: - - 0.50 - - - - - 0.50 - shrxq %rax, %rbx, %rcx
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - shrxq %rax, (%rbx), %rcx
-
# CHECK-NEXT: - - 0.75 0.25 0.50 0.50 - 0.25 0.75 - cmovgeq (%rax), %rdi
# CHECK-NEXT: - - 0.75 0.25 0.50 0.50 - 0.25 0.75 - cmovleq (%rax), %rdi
# CHECK-NEXT: - - 0.75 0.25 0.50 0.50 - 0.25 0.75 - cmovgq (%rax), %rdi
-
# CHECK-NEXT: - - - 1.00 0.33 0.33 1.00 1.00 - 0.33 vcvtps2ph $0, %xmm0, (%rax)
# CHECK-NEXT: - - - 1.00 - - - 1.00 - - vcvtps2ph $0, %ymm0, %xmm2
# CHECK-NEXT: - - - 1.00 0.33 0.33 1.00 1.00 - 0.33 vcvtps2ph $0, %ymm0, (%rax)
-
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfnmsub213ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - vfnmsub231ss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfnmsub231ss (%rax), %xmm1, %xmm2
-
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - lzcntl (%rax), %ecx
# CHECK-NEXT: - - - 1.00 - - - - - - lzcntq %rax, %rcx
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - lzcntq (%rax), %rcx
-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - punpcklwd (%rax), %mm2
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - pxor %mm0, %mm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - pxor (%rax), %mm2
-
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - popcntl (%rax), %ecx
# CHECK-NEXT: - - - 1.00 - - - - - - popcntq %rax, %rcx
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - popcntq (%rax), %rcx
-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - unpcklps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 1.00 - - xorps %xmm0, %xmm2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - xorps (%rax), %xmm2
-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - unpcklpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 1.00 - - xorpd %xmm0, %xmm2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - xorpd (%rax), %xmm2
-
# CHECK-NEXT: - - - - 0.50 0.50 - - - - movshdup (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 1.00 - - movsldup %xmm0, %xmm2
# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsldup (%rax), %xmm2
-
# CHECK-NEXT: - - - 2.00 0.50 0.50 - - - - roundsd $1, (%rax), %xmm2
# CHECK-NEXT: - - - - 0.50 0.50 - - - - roundss $1, %xmm0, %xmm2
# CHECK-NEXT: - - - 2.00 0.50 0.50 - - - - roundss $1, (%rax), %xmm2
-
# CHECK-NEXT: - - 3.00 - 0.50 0.50 - - - - pcmpistrm $1, (%rax), %xmm2
# CHECK-NEXT: - - 1.00 - - - - - - - pcmpgtq %xmm0, %xmm2
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - pcmpgtq (%rax), %xmm2
-
# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - psignw (%rax), %mm2
# CHECK-NEXT: - - - 0.50 - - - 0.50 - - psignw %xmm0, %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - psignw (%rax), %xmm2
-
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - xorq %rdi, %rdi
# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 xorq %rdi, (%rax)
# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - xorq (%rax), %rdi
-
# CHECK-NEXT: - - - - - - - - - - fxtract
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fyl2x
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fyl2xp1
-
# CHECK-NEXT: - - - - - 1.00 1.00 1.00 cmovgeq (%rax), %rdi
# CHECK-NEXT: - - - - - 1.00 1.00 1.00 cmovleq (%rax), %rdi
# CHECK-NEXT: - - - - - 1.00 1.00 1.00 cmovgq (%rax), %rdi
-
# CHECK-NEXT: - - - 1.00 - - - 1.00 punpcklwd (%rax), %mm2
# CHECK-NEXT: - - - 0.50 0.50 - - - pxor %mm0, %mm2
# CHECK-NEXT: - - - 0.50 0.50 - - 1.00 pxor (%rax), %mm2
-
# CHECK-NEXT: - - - - - 1.00 - 1.00 popcntl (%rax), %ecx
# CHECK-NEXT: - - - - - 1.00 - - popcntq %rax, %rcx
# CHECK-NEXT: - - - - - 1.00 - 1.00 popcntq (%rax), %rcx
-
# CHECK-NEXT: - - - 1.00 - - - 1.00 unpcklps (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 0.50 - - - xorps %xmm0, %xmm2
# CHECK-NEXT: - - - 0.50 0.50 - - 1.00 xorps (%rax), %xmm2
-
# CHECK-NEXT: - - - 1.00 - - - 1.00 unpcklpd (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 0.50 - - - xorpd %xmm0, %xmm2
# CHECK-NEXT: - - - 0.50 0.50 - - 1.00 xorpd (%rax), %xmm2
-
# CHECK-NEXT: - - - 1.00 - - - 1.00 movshdup (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 - - - - movsldup %xmm0, %xmm2
# CHECK-NEXT: - - - 1.00 - - - 1.00 movsldup (%rax), %xmm2
-
# CHECK-NEXT: - - - - 1.00 - - 1.00 roundsd $1, (%rax), %xmm2
# CHECK-NEXT: - - - - 1.00 - - - roundss $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - 1.00 - - 1.00 roundss $1, (%rax), %xmm2
-
# CHECK-NEXT: - - - 13.00 - - - 1.00 pcmpistrm $1, (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 0.50 - - - pcmpgtq %xmm0, %xmm2
# CHECK-NEXT: - - - 0.50 0.50 - - 1.00 pcmpgtq (%rax), %xmm2
-
# CHECK-NEXT: - - - 0.50 0.50 - - 1.00 psignw (%rax), %mm2
# CHECK-NEXT: - - - 0.50 0.50 - - - psignw %xmm0, %xmm2
# CHECK-NEXT: - - - 0.50 0.50 - - 1.00 psignw (%rax), %xmm2
-
# CHECK-NEXT: - - - - - 0.50 0.50 - xorq %rdi, %rdi
# CHECK-NEXT: - - - - - 1.00 1.00 2.00 xorq %rdi, (%rax)
# CHECK-NEXT: - - - - - 0.50 0.50 1.00 xorq (%rax), %rdi
-
# CHECK-NEXT: - - - 1.00 - - - - fxtract
# CHECK-NEXT: - - - 1.00 - - - - fyl2x
# CHECK-NEXT: - - - 1.00 - - - - fyl2xp1
-
# CHECK-NEXT: - - - - - 2.00 0.50 0.50 aesimc (%rax), %xmm2
# CHECK-NEXT: - - 3.67 3.67 - 3.67 - - aeskeygenassist $22, %xmm0, %xmm2
# CHECK-NEXT: - - 3.33 3.33 - 3.33 0.50 0.50 aeskeygenassist $22, (%rax), %xmm2
-
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vzeroall
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vzeroupper
-
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
# CHECK-NEXT: - - 6.00 6.00 - 6.00 - - pclmulqdq $11, %xmm0, %xmm2
# CHECK-NEXT: - - 5.67 5.67 - 5.67 0.50 0.50 pclmulqdq $11, (%rax), %xmm2
-
# CHECK-NEXT: - - 0.83 0.33 - 0.83 0.50 0.50 cmovgeq (%rax), %rdi
# CHECK-NEXT: - - 0.83 0.33 - 0.83 0.50 0.50 cmovleq (%rax), %rdi
# CHECK-NEXT: - - 0.83 0.33 - 0.83 0.50 0.50 cmovgq (%rax), %rdi
-
# CHECK-NEXT: - - - 1.00 1.00 - 0.50 0.50 vcvtps2ph $0, %xmm0, (%rax)
# CHECK-NEXT: - - - 1.00 - - - - vcvtps2ph $0, %ymm0, %xmm2
# CHECK-NEXT: - - - 1.00 1.00 - 0.50 0.50 vcvtps2ph $0, %ymm0, (%rax)
-
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 punpcklwd (%rax), %mm2
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - pxor %mm0, %mm2
# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 pxor (%rax), %mm2
-
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 popcntl (%rax), %ecx
# CHECK-NEXT: - - - 1.00 - - - - popcntq %rax, %rcx
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 popcntq (%rax), %rcx
-
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 unpcklps (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - - xorps %xmm0, %xmm2
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 xorps (%rax), %xmm2
-
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 unpcklpd (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - - xorpd %xmm0, %xmm2
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 xorpd (%rax), %xmm2
-
# CHECK-NEXT: - - - - - - 0.50 0.50 movshdup (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - - movsldup %xmm0, %xmm2
# CHECK-NEXT: - - - - - - 0.50 0.50 movsldup (%rax), %xmm2
-
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 roundsd $1, (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 - - - - roundss $1, %xmm0, %xmm2
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 roundss $1, (%rax), %xmm2
-
# CHECK-NEXT: - - 3.00 - - - 0.50 0.50 pcmpistrm $1, (%rax), %xmm2
# CHECK-NEXT: - - 1.00 - - - - - pcmpgtq %xmm0, %xmm2
# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 pcmpgtq (%rax), %xmm2
-
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 psignw (%rax), %mm2
# CHECK-NEXT: - - - 0.50 - 0.50 - - psignw %xmm0, %xmm2
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 psignw (%rax), %xmm2
-
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - xorq %rdi, %rdi
# CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 xorq %rdi, (%rax)
# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 xorq (%rax), %rdi
-
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fxtract
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fyl2x
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fyl2xp1
-
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - adoxl (%rbx), %ecx
# CHECK-NEXT: - - 0.50 - - - - - 0.50 - adoxq %rbx, %rcx
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - adoxq (%rbx), %rcx
-
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 4.00 4.00 - - - 4.00 4.00 - vzeroall
# CHECK-NEXT: - - 1.08 1.08 - - - 1.08 0.75 - vzeroupper
-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpxor %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpxor (%rax), %ymm1, %ymm2
-
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - tzcntl (%rax), %ecx
# CHECK-NEXT: - - - 1.00 - - - - - - tzcntq %rax, %rcx
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - tzcntq (%rax), %rcx
-
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - shrxl %eax, (%rbx), %ecx
# CHECK-NEXT: - - 0.50 - - - - - 0.50 - shrxq %rax, %rbx, %rcx
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - shrxq %rax, (%rbx), %rcx
-
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - cmovgeq (%rax), %rdi
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - cmovleq (%rax), %rdi
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - cmovgq (%rax), %rdi
-
# CHECK-NEXT: - - 0.50 0.50 0.33 0.33 1.00 1.00 - 0.33 vcvtps2ph $0, %xmm0, (%rax)
# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vcvtps2ph $0, %ymm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.33 0.33 1.00 1.00 - 0.33 vcvtps2ph $0, %ymm0, (%rax)
-
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfnmsub213ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - vfnmsub231ss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfnmsub231ss (%rax), %xmm1, %xmm2
-
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - lzcntl (%rax), %ecx
# CHECK-NEXT: - - - 1.00 - - - - - - lzcntq %rax, %rcx
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - lzcntq (%rax), %rcx
-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - punpcklwd (%rax), %mm2
# CHECK-NEXT: - - 0.50 - - - - 0.50 - - pxor %mm0, %mm2
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - pxor (%rax), %mm2
-
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - popcntl (%rax), %ecx
# CHECK-NEXT: - - - 1.00 - - - - - - popcntq %rax, %rcx
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - popcntq (%rax), %rcx
-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - unpcklps (%rax), %xmm2
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - xorps %xmm0, %xmm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - xorps (%rax), %xmm2
-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - unpcklpd (%rax), %xmm2
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - xorpd %xmm0, %xmm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - xorpd (%rax), %xmm2
-
# CHECK-NEXT: - - - - 0.50 0.50 - - - - movshdup (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 1.00 - - movsldup %xmm0, %xmm2
# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsldup (%rax), %xmm2
-
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - roundsd $1, (%rax), %xmm2
# CHECK-NEXT: - - 1.00 1.00 - - - - - - roundss $1, %xmm0, %xmm2
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - roundss $1, (%rax), %xmm2
-
# CHECK-NEXT: - - 3.00 - 0.50 0.50 - - - - pcmpistrm $1, (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 1.00 - - pcmpgtq %xmm0, %xmm2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - pcmpgtq (%rax), %xmm2
-
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - psignw (%rax), %mm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - psignw %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - psignw (%rax), %xmm2
-
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - xorq %rdi, %rdi
# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 xorq %rdi, (%rax)
# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - xorq (%rax), %rdi
-
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fxtract
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fyl2x
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fyl2xp1
-
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - adoxl (%rbx), %ecx
# CHECK-NEXT: - - 0.50 - - - - - 0.50 - adoxq %rbx, %rcx
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - adoxq (%rbx), %rcx
-
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 4.00 4.00 - - - 4.00 4.00 - vzeroall
# CHECK-NEXT: - - 1.08 1.08 - - - 1.08 0.75 - vzeroupper
-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpxor %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpxor (%rax), %ymm1, %ymm2
-
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - tzcntl (%rax), %ecx
# CHECK-NEXT: - - - 1.00 - - - - - - tzcntq %rax, %rcx
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - tzcntq (%rax), %rcx
-
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - shrxl %eax, (%rbx), %ecx
# CHECK-NEXT: - - 0.50 - - - - - 0.50 - shrxq %rax, %rbx, %rcx
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - shrxq %rax, (%rbx), %rcx
-
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - cmovgeq (%rax), %rdi
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - cmovleq (%rax), %rdi
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - - 0.50 - cmovgq (%rax), %rdi
-
# CHECK-NEXT: - - 0.33 0.33 0.33 0.33 1.00 1.33 - 0.33 vcvtps2ph $0, %xmm0, (%rax)
# CHECK-NEXT: - - 0.33 0.33 - - - 1.33 - - vcvtps2ph $0, %ymm0, %xmm2
# CHECK-NEXT: - - 0.33 0.33 0.33 0.33 1.00 1.33 - 0.33 vcvtps2ph $0, %ymm0, (%rax)
-
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vfnmsub213ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vfnmsub231ss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vfnmsub231ss (%rax), %xmm1, %xmm2
-
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - lzcntl (%rax), %ecx
# CHECK-NEXT: - - - 1.00 - - - - - - lzcntq %rax, %rcx
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - lzcntq (%rax), %rcx
-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - punpcklwd (%rax), %mm2
# CHECK-NEXT: - - 0.50 - - - - 0.50 - - pxor %mm0, %mm2
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - pxor (%rax), %mm2
-
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - popcntl (%rax), %ecx
# CHECK-NEXT: - - - 1.00 - - - - - - popcntq %rax, %rcx
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - popcntq (%rax), %rcx
-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - unpcklps (%rax), %xmm2
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - xorps %xmm0, %xmm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - xorps (%rax), %xmm2
-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - unpcklpd (%rax), %xmm2
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - xorpd %xmm0, %xmm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - xorpd (%rax), %xmm2
-
# CHECK-NEXT: - - - - 0.50 0.50 - - - - movshdup (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 1.00 - - movsldup %xmm0, %xmm2
# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsldup (%rax), %xmm2
-
# CHECK-NEXT: - - 0.67 0.67 0.50 0.50 - 0.67 - - roundsd $1, (%rax), %xmm2
# CHECK-NEXT: - - 0.67 0.67 - - - 0.67 - - roundss $1, %xmm0, %xmm2
# CHECK-NEXT: - - 0.67 0.67 0.50 0.50 - 0.67 - - roundss $1, (%rax), %xmm2
-
# CHECK-NEXT: - - 3.00 - 0.50 0.50 - - - - pcmpistrm $1, (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 1.00 - - pcmpgtq %xmm0, %xmm2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - pcmpgtq (%rax), %xmm2
-
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - psignw (%rax), %mm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - psignw %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - psignw (%rax), %xmm2
-
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - xorq %rdi, %rdi
# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 xorq %rdi, (%rax)
# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - xorq (%rax), %rdi
-
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fxtract
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fyl2x
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fyl2xp1
-
# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - adoxl (%rbx), %ecx
# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - adoxq %rbx, %rcx
# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - adoxq (%rbx), %rcx
-
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vxorps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - - - - vzeroall
# CHECK-NEXT: - - - - - - - - - - - - vzeroupper
-
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpunpcklwd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpxor %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpxor (%rax), %ymm1, %ymm2
-
# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - tzcntl (%rax), %ecx
# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - tzcntq %rax, %rcx
# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - tzcntq (%rax), %rcx
-
# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - shrxl %eax, (%rbx), %ecx
# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - shrxq %rax, %rbx, %rcx
# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - shrxq %rax, (%rbx), %rcx
-
# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovgeq (%rax), %rdi
# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovleq (%rax), %rdi
# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovgq (%rax), %rdi
-
# CHECK-NEXT: - - - - - - - - - - - - vcvtps2ph $0, %xmm0, (%rax)
# CHECK-NEXT: - - - - - - - - - - - - vcvtps2ph $0, %ymm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - vcvtps2ph $0, %ymm0, (%rax)
-
# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 - - 0.50 - vfnmsub213ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - 0.50 - - 0.50 - vfnmsub231ss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 - - 0.50 - vfnmsub231ss (%rax), %xmm1, %xmm2
-
# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - lzcntl (%rax), %ecx
# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - lzcntq %rax, %rcx
# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - lzcntq (%rax), %rcx
-
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - punpcklwd (%rax), %mm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - pxor %mm0, %mm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - pxor (%rax), %mm2
-
# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - popcntl (%rax), %ecx
# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - popcntq %rax, %rcx
# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - popcntq (%rax), %rcx
-
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - unpcklps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - xorps %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - xorps (%rax), %xmm2
-
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - unpcklpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - xorpd %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - xorpd (%rax), %xmm2
-
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - movshdup (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - movsldup %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - movsldup (%rax), %xmm2
-
# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - roundsd $1, (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - roundss $1, %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - roundss $1, (%rax), %xmm2
-
# CHECK-NEXT: - - - - - - - - - - - - pcmpistrm $1, (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 0.50 - - 0.50 - pcmpgtq %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 - - 0.50 - pcmpgtq (%rax), %xmm2
-
# CHECK-NEXT: - - - - - - - 0.50 1.00 - 0.50 - insertq $22, $22, %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - movntsd %xmm0, (%rax)
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - movntss %xmm0, (%rax)
-
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - psignw (%rax), %mm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psignw %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - psignw (%rax), %xmm2
-
# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - xorq %rdi, %rdi
# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - xorq %rdi, (%rax)
# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - xorq (%rax), %rdi
-
# CHECK-NEXT: - - - - - - - - - - - - fxtract
# CHECK-NEXT: - - - - - - - - - - - - fyl2x
# CHECK-NEXT: - - - - - - - - - - - - fyl2xp1
-
# ALL: [0] [1] [2] [3]
# ALL-NEXT: 0. 1 1.0 1.0 0.0 addl %edi, %esi
# ALL-NEXT: 1. 1 1.0 0.0 0.0 bextrl %esi, (%rdi), %eax
-
# ALL: [0] [1] [2] [3]
# ALL-NEXT: 0. 1 1.0 1.0 0.0 addl %edi, %esi
# ALL-NEXT: 1. 1 1.0 0.0 0.0 bzhil %esi, (%rdi), %eax
-
# SKX-AVX512-NEXT: Block RThroughput: 0.3
# SLM-NEXT: Block RThroughput: 0.5
# ZNVER1-NEXT: Block RThroughput: 0.3
-
# ALL: [1] [2] [3] [4] [5] [6] Instructions:
# ALL-NEXT: 1 1 0.50 addl %eax, %eax
-
# CUSTOM-NEXT: Block RThroughput: 1.0
# DEFAULT-NEXT: Block RThroughput: 0.5
-
# ALL: [0] [1] [2] [3]
# ALL-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm1
# ALL-NEXT: 1. 1 1.0 0.0 0.0 vfmadd213ps (%rdi), %xmm1, %xmm2
-
# ALL: [0] [1] [2] [3]
# ALL-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm2
# ALL-NEXT: 1. 1 1.0 0.0 0.0 vfmadd213ps (%rdi), %xmm1, %xmm2
-
# RUN: not llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=atom -o %t1 2>&1 | FileCheck %s
# CHECK: error: please specify an out-of-order cpu. 'atom' is an in-order cpu.
-
# INTEL-NEXT: 1 1 0.50 mov ebx, 255
# INTEL-NEXT: 2 3 1.00 imul esi, edi
# INTEL-NEXT: 1 1 0.50 lea eax, [rsi + rdi]
-
# RUN: not llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 %s
invalid_instruction_mnemonic
-
# RUN: not llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=foo -o %t1 2>&1 | FileCheck %s
# CHECK: 'foo' is not a recognized processor for this target (ignoring processor)
-
# RUN: not llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=btver2 -o %t1 2>&1 | FileCheck %s
# CHECK: error: no assembly instructions found.
-
# LLVM-MCA-END
# CHECK: error: no assembly instructions found.
-
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 0.50 addl %edi, %esi
-
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 0.50 addl %edi, %eax
-
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 0.50 addl %edi, %eax
-
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 0.50 addl %edx, %eax
-
# CHECK-NEXT: # LLVM-MCA-BEGIN bar
# CHECK-NEXT: ^
# CHECK-NEXT: error: no assembly instructions found.
-
# CHECK: llvm-mca-markers-7.s:7:2: warning: Ignoring invalid region end
# CHECK-NEXT: # LLVM-MCA-END
# CHECK-NEXT: ^
-
# RUN: not llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=generic < %s 2>&1 | FileCheck %s
# CHECK: error: unable to find instruction-level scheduling information for target triple 'x86_64-unknown-unknown' and cpu 'generic'.
-
# FULLREPORT: Resource pressure by instruction:
# FULLREPORT-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
# FULLREPORT-NEXT: 0.50 0.50 - - - - - - - - - - - - addl %eax, %eax
-
# FULL: Resource pressure by instruction:
# FULL-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
# FULL-NEXT: 0.50 0.50 - - - - - - - - - - - - addl %eax, %eax
-
# FULLREPORT: [0] [1] [2] [3]
# FULLREPORT-NEXT: 0. 10 3.5 0.1 0.0 addl %eax, %eax
-
# FULLREPORT: [0] [1] [2] [3]
# FULLREPORT-NEXT: 0. 10 3.5 0.1 0.0 addl %eax, %eax
-
# SANDY-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# SKYLAKE-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# ZNVER1-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
-
# SANDY-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# SKYLAKE-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# ZNVER1-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
-
output_lines.insert(0, ADVERT)
output_lines.extend(output_check_lines)
+ # The file should not end with two newlines. It creates unnecessary churn.
+ while len(output_lines) > 0 and output_lines[-1] == '':
+ output_lines.pop()
+
if input_lines == output_lines:
sys.stderr.write(' [unchanged]\n')
return
'Writing {} lines to {}...\n\n'.format(len(output_lines), test_path))
with open(test_path, 'wb') as f:
- for line in output_lines:
- f.write('{}\n'.format(line.rstrip()).encode())
-
+ f.writelines(['{}\n'.format(l).encode() for l in output_lines])
def main():
args = _parse_args()