diff --git a/llvm/lib/Target/X86/X86ScheduleAtom.td b/llvm/lib/Target/X86/X86ScheduleAtom.td index 704919cbafb0..d00c2e3718d3 100644 --- a/llvm/lib/Target/X86/X86ScheduleAtom.td +++ b/llvm/lib/Target/X86/X86ScheduleAtom.td @@ -313,30 +313,30 @@ defm : X86WriteResPairUnsupported; // Conversions. //////////////////////////////////////////////////////////////////////////////// -defm : AtomWriteResPair; -defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; defm : X86WriteResPairUnsupported; defm : X86WriteResPairUnsupported; -defm : AtomWriteResPair; -defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; defm : X86WriteResPairUnsupported; defm : X86WriteResPairUnsupported; -defm : AtomWriteResPair; -defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; defm : X86WriteResPairUnsupported; defm : X86WriteResPairUnsupported; -defm : AtomWriteResPair; -defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; defm : X86WriteResPairUnsupported; defm : X86WriteResPairUnsupported; -defm : AtomWriteResPair; -defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; defm : X86WriteResPairUnsupported; defm : X86WriteResPairUnsupported; -defm : AtomWriteResPair; -defm : AtomWriteResPair; +defm : AtomWriteResPair; +defm : AtomWriteResPair; defm : X86WriteResPairUnsupported; defm : X86WriteResPairUnsupported; diff --git a/llvm/test/tools/llvm-mca/X86/Atom/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/Atom/resources-sse1.s index b12beef35b38..fb6aba02155f 100644 --- a/llvm/test/tools/llvm-mca/X86/Atom/resources-sse1.s +++ b/llvm/test/tools/llvm-mca/X86/Atom/resources-sse1.s @@ -212,19 +212,19 @@ xorps (%rax), %xmm2 # CHECK-NEXT: 1 5 5.00 * cvtpi2ps (%rax), %xmm2 # CHECK-NEXT: 1 5 5.00 cvtps2pi %xmm0, %mm2 # CHECK-NEXT: 1 5 5.00 * cvtps2pi (%rax), %mm2 -# CHECK-NEXT: 1 6 3.00 cvtsi2ss %ecx, %xmm2 -# CHECK-NEXT: 1 6 3.00 cvtsi2ss %rcx, %xmm2 -# CHECK-NEXT: 1 7 3.50 * cvtsi2ssl (%rax), %xmm2 -# CHECK-NEXT: 1 7 3.50 * cvtsi2ssl (%rax), %xmm2 -# CHECK-NEXT: 1 8 4.00 cvtss2si %xmm0, %ecx +# CHECK-NEXT: 1 6 5.00 cvtsi2ss %ecx, %xmm2 +# CHECK-NEXT: 1 6 5.00 cvtsi2ss %rcx, %xmm2 +# CHECK-NEXT: 1 7 6.00 * cvtsi2ssl (%rax), %xmm2 +# CHECK-NEXT: 1 7 6.00 * cvtsi2ssl (%rax), %xmm2 +# CHECK-NEXT: 1 8 7.00 cvtss2si %xmm0, %ecx # CHECK-NEXT: 1 9 4.50 cvtss2si %xmm0, %rcx -# CHECK-NEXT: 1 9 4.50 * cvtss2si (%rax), %ecx +# CHECK-NEXT: 1 9 6.00 * cvtss2si (%rax), %ecx # CHECK-NEXT: 1 10 5.00 * cvtss2si (%rax), %rcx # CHECK-NEXT: 1 5 5.00 cvttps2pi %xmm0, %mm2 # CHECK-NEXT: 1 5 5.00 * cvttps2pi (%rax), %mm2 -# CHECK-NEXT: 1 8 4.00 cvttss2si %xmm0, %ecx +# CHECK-NEXT: 1 8 7.00 cvttss2si %xmm0, %ecx # CHECK-NEXT: 1 9 4.50 cvttss2si %xmm0, %rcx -# CHECK-NEXT: 1 9 4.50 * cvttss2si (%rax), %ecx +# CHECK-NEXT: 1 9 6.00 * cvttss2si (%rax), %ecx # CHECK-NEXT: 1 10 5.00 * cvttss2si (%rax), %rcx # CHECK-NEXT: 1 70 35.00 divps %xmm0, %xmm2 # CHECK-NEXT: 1 70 35.00 * divps (%rax), %xmm2 @@ -325,7 +325,7 @@ xorps (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] -# CHECK-NEXT: 438.00 393.00 +# CHECK-NEXT: 456.00 411.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] Instructions: @@ -347,19 +347,19 @@ xorps (%rax), %xmm2 # CHECK-NEXT: - 5.00 cvtpi2ps (%rax), %xmm2 # CHECK-NEXT: - 5.00 cvtps2pi %xmm0, %mm2 # CHECK-NEXT: 5.00 5.00 cvtps2pi (%rax), %mm2 -# CHECK-NEXT: 3.00 3.00 cvtsi2ss %ecx, %xmm2 -# CHECK-NEXT: 3.00 3.00 cvtsi2ss %rcx, %xmm2 -# CHECK-NEXT: 3.50 3.50 cvtsi2ssl (%rax), %xmm2 -# CHECK-NEXT: 3.50 3.50 cvtsi2ssl (%rax), %xmm2 -# CHECK-NEXT: 4.00 4.00 cvtss2si %xmm0, %ecx +# CHECK-NEXT: 5.00 5.00 cvtsi2ss %ecx, %xmm2 +# CHECK-NEXT: 5.00 5.00 cvtsi2ss %rcx, %xmm2 +# CHECK-NEXT: 6.00 6.00 cvtsi2ssl (%rax), %xmm2 +# CHECK-NEXT: 6.00 6.00 cvtsi2ssl (%rax), %xmm2 +# CHECK-NEXT: 7.00 7.00 cvtss2si %xmm0, %ecx # CHECK-NEXT: 4.50 4.50 cvtss2si %xmm0, %rcx -# CHECK-NEXT: 4.50 4.50 cvtss2si (%rax), %ecx +# CHECK-NEXT: 6.00 6.00 cvtss2si (%rax), %ecx # CHECK-NEXT: 5.00 5.00 cvtss2si (%rax), %rcx # CHECK-NEXT: - 5.00 cvttps2pi %xmm0, %mm2 # CHECK-NEXT: 5.00 5.00 cvttps2pi (%rax), %mm2 -# CHECK-NEXT: 4.00 4.00 cvttss2si %xmm0, %ecx +# CHECK-NEXT: 7.00 7.00 cvttss2si %xmm0, %ecx # CHECK-NEXT: 4.50 4.50 cvttss2si %xmm0, %rcx -# CHECK-NEXT: 4.50 4.50 cvttss2si (%rax), %ecx +# CHECK-NEXT: 6.00 6.00 cvttss2si (%rax), %ecx # CHECK-NEXT: 5.00 5.00 cvttss2si (%rax), %rcx # CHECK-NEXT: 35.00 35.00 divps %xmm0, %xmm2 # CHECK-NEXT: 35.00 35.00 divps (%rax), %xmm2 diff --git a/llvm/test/tools/llvm-mca/X86/Atom/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/Atom/resources-sse2.s index c19ca8180411..4536b7f21a7b 100644 --- a/llvm/test/tools/llvm-mca/X86/Atom/resources-sse2.s +++ b/llvm/test/tools/llvm-mca/X86/Atom/resources-sse2.s @@ -422,44 +422,44 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 1 5 1.00 * cmpeqsd (%rax), %xmm2 # CHECK-NEXT: 1 9 4.50 comisd %xmm0, %xmm1 # CHECK-NEXT: 1 10 5.00 * comisd (%rax), %xmm1 -# CHECK-NEXT: 1 7 3.50 cvtdq2pd %xmm0, %xmm2 -# CHECK-NEXT: 1 8 4.00 * cvtdq2pd (%rax), %xmm2 -# CHECK-NEXT: 1 6 3.00 cvtdq2ps %xmm0, %xmm2 -# CHECK-NEXT: 1 7 3.50 * cvtdq2ps (%rax), %xmm2 -# CHECK-NEXT: 1 7 3.50 cvtpd2dq %xmm0, %xmm2 -# CHECK-NEXT: 1 8 4.00 * cvtpd2dq (%rax), %xmm2 -# CHECK-NEXT: 1 7 3.50 cvtpd2pi %xmm0, %mm2 -# CHECK-NEXT: 1 8 4.00 * cvtpd2pi (%rax), %mm2 -# CHECK-NEXT: 1 7 3.50 cvtpd2ps %xmm0, %xmm2 -# CHECK-NEXT: 1 8 4.00 * cvtpd2ps (%rax), %xmm2 -# CHECK-NEXT: 1 7 3.50 cvtpi2pd %mm0, %xmm2 -# CHECK-NEXT: 1 8 4.00 * cvtpi2pd (%rax), %xmm2 -# CHECK-NEXT: 1 6 3.00 cvtps2dq %xmm0, %xmm2 -# CHECK-NEXT: 1 7 3.50 * cvtps2dq (%rax), %xmm2 -# CHECK-NEXT: 1 7 3.50 cvtps2pd %xmm0, %xmm2 -# CHECK-NEXT: 1 8 4.00 * cvtps2pd (%rax), %xmm2 -# CHECK-NEXT: 1 8 4.00 cvtsd2si %xmm0, %ecx -# CHECK-NEXT: 1 8 4.00 cvtsd2si %xmm0, %rcx -# CHECK-NEXT: 1 9 4.50 * cvtsd2si (%rax), %ecx -# CHECK-NEXT: 1 9 4.50 * cvtsd2si (%rax), %rcx -# CHECK-NEXT: 1 6 3.00 cvtsd2ss %xmm0, %xmm2 -# CHECK-NEXT: 1 7 3.50 * cvtsd2ss (%rax), %xmm2 -# CHECK-NEXT: 1 6 3.00 cvtsi2sd %ecx, %xmm2 -# CHECK-NEXT: 1 6 3.00 cvtsi2sd %rcx, %xmm2 -# CHECK-NEXT: 1 7 3.50 * cvtsi2sdl (%rax), %xmm2 -# CHECK-NEXT: 1 7 3.50 * cvtsi2sdl (%rax), %xmm2 -# CHECK-NEXT: 1 6 3.00 cvtss2sd %xmm0, %xmm2 -# CHECK-NEXT: 1 7 3.50 * cvtss2sd (%rax), %xmm2 -# CHECK-NEXT: 1 7 3.50 cvttpd2dq %xmm0, %xmm2 -# CHECK-NEXT: 1 8 4.00 * cvttpd2dq (%rax), %xmm2 -# CHECK-NEXT: 1 7 3.50 cvttpd2pi %xmm0, %mm2 -# CHECK-NEXT: 1 8 4.00 * cvttpd2pi (%rax), %mm2 -# CHECK-NEXT: 1 6 3.00 cvttps2dq %xmm0, %xmm2 -# CHECK-NEXT: 1 7 3.50 * cvttps2dq (%rax), %xmm2 -# CHECK-NEXT: 1 8 4.00 cvttsd2si %xmm0, %ecx -# CHECK-NEXT: 1 8 4.00 cvttsd2si %xmm0, %rcx -# CHECK-NEXT: 1 9 4.50 * cvttsd2si (%rax), %ecx -# CHECK-NEXT: 1 9 4.50 * cvttsd2si (%rax), %rcx +# CHECK-NEXT: 1 7 6.00 cvtdq2pd %xmm0, %xmm2 +# CHECK-NEXT: 1 8 7.00 * cvtdq2pd (%rax), %xmm2 +# CHECK-NEXT: 1 6 5.00 cvtdq2ps %xmm0, %xmm2 +# CHECK-NEXT: 1 7 6.00 * cvtdq2ps (%rax), %xmm2 +# CHECK-NEXT: 1 7 6.00 cvtpd2dq %xmm0, %xmm2 +# CHECK-NEXT: 1 8 7.00 * cvtpd2dq (%rax), %xmm2 +# CHECK-NEXT: 1 7 6.00 cvtpd2pi %xmm0, %mm2 +# CHECK-NEXT: 1 8 7.00 * cvtpd2pi (%rax), %mm2 +# CHECK-NEXT: 1 7 6.00 cvtpd2ps %xmm0, %xmm2 +# CHECK-NEXT: 1 8 7.00 * cvtpd2ps (%rax), %xmm2 +# CHECK-NEXT: 1 7 6.00 cvtpi2pd %mm0, %xmm2 +# CHECK-NEXT: 1 8 7.00 * cvtpi2pd (%rax), %xmm2 +# CHECK-NEXT: 1 6 5.00 cvtps2dq %xmm0, %xmm2 +# CHECK-NEXT: 1 7 6.00 * cvtps2dq (%rax), %xmm2 +# CHECK-NEXT: 1 7 6.00 cvtps2pd %xmm0, %xmm2 +# CHECK-NEXT: 1 8 7.00 * cvtps2pd (%rax), %xmm2 +# CHECK-NEXT: 1 8 7.00 cvtsd2si %xmm0, %ecx +# CHECK-NEXT: 1 8 7.00 cvtsd2si %xmm0, %rcx +# CHECK-NEXT: 1 9 6.00 * cvtsd2si (%rax), %ecx +# CHECK-NEXT: 1 9 6.00 * cvtsd2si (%rax), %rcx +# CHECK-NEXT: 1 6 5.00 cvtsd2ss %xmm0, %xmm2 +# CHECK-NEXT: 1 7 6.00 * cvtsd2ss (%rax), %xmm2 +# CHECK-NEXT: 1 6 5.00 cvtsi2sd %ecx, %xmm2 +# CHECK-NEXT: 1 6 5.00 cvtsi2sd %rcx, %xmm2 +# CHECK-NEXT: 1 7 6.00 * cvtsi2sdl (%rax), %xmm2 +# CHECK-NEXT: 1 7 6.00 * cvtsi2sdl (%rax), %xmm2 +# CHECK-NEXT: 1 6 5.00 cvtss2sd %xmm0, %xmm2 +# CHECK-NEXT: 1 7 6.00 * cvtss2sd (%rax), %xmm2 +# CHECK-NEXT: 1 7 6.00 cvttpd2dq %xmm0, %xmm2 +# CHECK-NEXT: 1 8 7.00 * cvttpd2dq (%rax), %xmm2 +# CHECK-NEXT: 1 7 6.00 cvttpd2pi %xmm0, %mm2 +# CHECK-NEXT: 1 8 7.00 * cvttpd2pi (%rax), %mm2 +# CHECK-NEXT: 1 6 5.00 cvttps2dq %xmm0, %xmm2 +# CHECK-NEXT: 1 7 6.00 * cvttps2dq (%rax), %xmm2 +# CHECK-NEXT: 1 8 7.00 cvttsd2si %xmm0, %ecx +# CHECK-NEXT: 1 8 7.00 cvttsd2si %xmm0, %rcx +# CHECK-NEXT: 1 9 6.00 * cvttsd2si (%rax), %ecx +# CHECK-NEXT: 1 9 6.00 * cvttsd2si (%rax), %rcx # CHECK-NEXT: 1 125 62.50 divpd %xmm0, %xmm2 # CHECK-NEXT: 1 125 62.50 * divpd (%rax), %xmm2 # CHECK-NEXT: 1 62 31.00 divsd %xmm0, %xmm2 @@ -681,7 +681,7 @@ xorpd (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] -# CHECK-NEXT: 818.50 680.50 +# CHECK-NEXT: 912.00 774.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] Instructions: @@ -700,44 +700,44 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 1.00 1.00 cmpeqsd (%rax), %xmm2 # CHECK-NEXT: 4.50 4.50 comisd %xmm0, %xmm1 # CHECK-NEXT: 5.00 5.00 comisd (%rax), %xmm1 -# CHECK-NEXT: 3.50 3.50 cvtdq2pd %xmm0, %xmm2 -# CHECK-NEXT: 4.00 4.00 cvtdq2pd (%rax), %xmm2 -# CHECK-NEXT: 3.00 3.00 cvtdq2ps %xmm0, %xmm2 -# CHECK-NEXT: 3.50 3.50 cvtdq2ps (%rax), %xmm2 -# CHECK-NEXT: 3.50 3.50 cvtpd2dq %xmm0, %xmm2 -# CHECK-NEXT: 4.00 4.00 cvtpd2dq (%rax), %xmm2 -# CHECK-NEXT: 3.50 3.50 cvtpd2pi %xmm0, %mm2 -# CHECK-NEXT: 4.00 4.00 cvtpd2pi (%rax), %mm2 -# CHECK-NEXT: 3.50 3.50 cvtpd2ps %xmm0, %xmm2 -# CHECK-NEXT: 4.00 4.00 cvtpd2ps (%rax), %xmm2 -# CHECK-NEXT: 3.50 3.50 cvtpi2pd %mm0, %xmm2 -# CHECK-NEXT: 4.00 4.00 cvtpi2pd (%rax), %xmm2 -# CHECK-NEXT: 3.00 3.00 cvtps2dq %xmm0, %xmm2 -# CHECK-NEXT: 3.50 3.50 cvtps2dq (%rax), %xmm2 -# CHECK-NEXT: 3.50 3.50 cvtps2pd %xmm0, %xmm2 -# CHECK-NEXT: 4.00 4.00 cvtps2pd (%rax), %xmm2 -# CHECK-NEXT: 4.00 4.00 cvtsd2si %xmm0, %ecx -# CHECK-NEXT: 4.00 4.00 cvtsd2si %xmm0, %rcx -# CHECK-NEXT: 4.50 4.50 cvtsd2si (%rax), %ecx -# CHECK-NEXT: 4.50 4.50 cvtsd2si (%rax), %rcx -# CHECK-NEXT: 3.00 3.00 cvtsd2ss %xmm0, %xmm2 -# CHECK-NEXT: 3.50 3.50 cvtsd2ss (%rax), %xmm2 -# CHECK-NEXT: 3.00 3.00 cvtsi2sd %ecx, %xmm2 -# CHECK-NEXT: 3.00 3.00 cvtsi2sd %rcx, %xmm2 -# CHECK-NEXT: 3.50 3.50 cvtsi2sdl (%rax), %xmm2 -# CHECK-NEXT: 3.50 3.50 cvtsi2sdl (%rax), %xmm2 -# CHECK-NEXT: 3.00 3.00 cvtss2sd %xmm0, %xmm2 -# CHECK-NEXT: 3.50 3.50 cvtss2sd (%rax), %xmm2 -# CHECK-NEXT: 3.50 3.50 cvttpd2dq %xmm0, %xmm2 -# CHECK-NEXT: 4.00 4.00 cvttpd2dq (%rax), %xmm2 -# CHECK-NEXT: 3.50 3.50 cvttpd2pi %xmm0, %mm2 -# CHECK-NEXT: 4.00 4.00 cvttpd2pi (%rax), %mm2 -# CHECK-NEXT: 3.00 3.00 cvttps2dq %xmm0, %xmm2 -# CHECK-NEXT: 3.50 3.50 cvttps2dq (%rax), %xmm2 -# CHECK-NEXT: 4.00 4.00 cvttsd2si %xmm0, %ecx -# CHECK-NEXT: 4.00 4.00 cvttsd2si %xmm0, %rcx -# CHECK-NEXT: 4.50 4.50 cvttsd2si (%rax), %ecx -# CHECK-NEXT: 4.50 4.50 cvttsd2si (%rax), %rcx +# CHECK-NEXT: 6.00 6.00 cvtdq2pd %xmm0, %xmm2 +# CHECK-NEXT: 7.00 7.00 cvtdq2pd (%rax), %xmm2 +# CHECK-NEXT: 5.00 5.00 cvtdq2ps %xmm0, %xmm2 +# CHECK-NEXT: 6.00 6.00 cvtdq2ps (%rax), %xmm2 +# CHECK-NEXT: 6.00 6.00 cvtpd2dq %xmm0, %xmm2 +# CHECK-NEXT: 7.00 7.00 cvtpd2dq (%rax), %xmm2 +# CHECK-NEXT: 6.00 6.00 cvtpd2pi %xmm0, %mm2 +# CHECK-NEXT: 7.00 7.00 cvtpd2pi (%rax), %mm2 +# CHECK-NEXT: 6.00 6.00 cvtpd2ps %xmm0, %xmm2 +# CHECK-NEXT: 7.00 7.00 cvtpd2ps (%rax), %xmm2 +# CHECK-NEXT: 6.00 6.00 cvtpi2pd %mm0, %xmm2 +# CHECK-NEXT: 7.00 7.00 cvtpi2pd (%rax), %xmm2 +# CHECK-NEXT: 5.00 5.00 cvtps2dq %xmm0, %xmm2 +# CHECK-NEXT: 6.00 6.00 cvtps2dq (%rax), %xmm2 +# CHECK-NEXT: 6.00 6.00 cvtps2pd %xmm0, %xmm2 +# CHECK-NEXT: 7.00 7.00 cvtps2pd (%rax), %xmm2 +# CHECK-NEXT: 7.00 7.00 cvtsd2si %xmm0, %ecx +# CHECK-NEXT: 7.00 7.00 cvtsd2si %xmm0, %rcx +# CHECK-NEXT: 6.00 6.00 cvtsd2si (%rax), %ecx +# CHECK-NEXT: 6.00 6.00 cvtsd2si (%rax), %rcx +# CHECK-NEXT: 5.00 5.00 cvtsd2ss %xmm0, %xmm2 +# CHECK-NEXT: 6.00 6.00 cvtsd2ss (%rax), %xmm2 +# CHECK-NEXT: 5.00 5.00 cvtsi2sd %ecx, %xmm2 +# CHECK-NEXT: 5.00 5.00 cvtsi2sd %rcx, %xmm2 +# CHECK-NEXT: 6.00 6.00 cvtsi2sdl (%rax), %xmm2 +# CHECK-NEXT: 6.00 6.00 cvtsi2sdl (%rax), %xmm2 +# CHECK-NEXT: 5.00 5.00 cvtss2sd %xmm0, %xmm2 +# CHECK-NEXT: 6.00 6.00 cvtss2sd (%rax), %xmm2 +# CHECK-NEXT: 6.00 6.00 cvttpd2dq %xmm0, %xmm2 +# CHECK-NEXT: 7.00 7.00 cvttpd2dq (%rax), %xmm2 +# CHECK-NEXT: 6.00 6.00 cvttpd2pi %xmm0, %mm2 +# CHECK-NEXT: 7.00 7.00 cvttpd2pi (%rax), %mm2 +# CHECK-NEXT: 5.00 5.00 cvttps2dq %xmm0, %xmm2 +# CHECK-NEXT: 6.00 6.00 cvttps2dq (%rax), %xmm2 +# CHECK-NEXT: 7.00 7.00 cvttsd2si %xmm0, %ecx +# CHECK-NEXT: 7.00 7.00 cvttsd2si %xmm0, %rcx +# CHECK-NEXT: 6.00 6.00 cvttsd2si (%rax), %ecx +# CHECK-NEXT: 6.00 6.00 cvttsd2si (%rax), %rcx # CHECK-NEXT: 62.50 62.50 divpd %xmm0, %xmm2 # CHECK-NEXT: 62.50 62.50 divpd (%rax), %xmm2 # CHECK-NEXT: 31.00 31.00 divsd %xmm0, %xmm2