[X86][BtVer2] ADC/SBB take 2cy on an ALU pipe, not 1cy like ADD/SUB
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 17 May 2018 15:43:23 +0000 (15:43 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 17 May 2018 15:43:23 +0000 (15:43 +0000)
llvm-svn: 332616

llvm/lib/Target/X86/X86ScheduleBtVer2.td
llvm/test/CodeGen/X86/avx-schedule.ll
llvm/test/CodeGen/X86/schedule-x86_64.ll
llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s

index 60148f9..824db47 100644 (file)
@@ -156,7 +156,7 @@ def : WriteRes<WriteRMW, [JSAGU]>;
 ////////////////////////////////////////////////////////////////////////////////
 
 defm : JWriteResIntPair<WriteALU,    [JALU01], 1>;
-defm : JWriteResIntPair<WriteADC,    [JALU01], 1>;
+defm : JWriteResIntPair<WriteADC,    [JALU01], 1, [2]>;
 defm : JWriteResIntPair<WriteIMul,   [JALU1, JMul], 3, [1, 1], 2>; // i8/i16/i32 multiplication
 defm : JWriteResIntPair<WriteIMul64, [JALU1, JMul], 6, [1, 4], 2>; // i64 multiplication
 defm : X86WriteRes<WriteIMulH,       [JALU1], 6, [4], 1>;
index e4a5b83..6e1c54c 100644 (file)
@@ -4695,7 +4695,7 @@ define i32 @test_testpd(<2 x double> %a0, <2 x double> %a1, <2 x double> *%a2) {
 ; BTVER2-NEXT:    vtestpd %xmm1, %xmm0 # sched: [3:1.00]
 ; BTVER2-NEXT:    setb %al # sched: [1:0.50]
 ; BTVER2-NEXT:    vtestpd (%rdi), %xmm0 # sched: [8:1.00]
-; BTVER2-NEXT:    adcl $0, %eax # sched: [1:0.50]
+; BTVER2-NEXT:    adcl $0, %eax # sched: [1:1.00]
 ; BTVER2-NEXT:    retq # sched: [4:1.00]
 ;
 ; ZNVER1-LABEL: test_testpd:
@@ -4781,7 +4781,7 @@ define i32 @test_testpd_ymm(<4 x double> %a0, <4 x double> %a1, <4 x double> *%a
 ; BTVER2-NEXT:    vtestpd %ymm1, %ymm0 # sched: [4:2.00]
 ; BTVER2-NEXT:    setb %al # sched: [1:0.50]
 ; BTVER2-NEXT:    vtestpd (%rdi), %ymm0 # sched: [9:2.00]
-; BTVER2-NEXT:    adcl $0, %eax # sched: [1:0.50]
+; BTVER2-NEXT:    adcl $0, %eax # sched: [1:1.00]
 ; BTVER2-NEXT:    retq # sched: [4:1.00]
 ;
 ; ZNVER1-LABEL: test_testpd_ymm:
@@ -4862,7 +4862,7 @@ define i32 @test_testps(<4 x float> %a0, <4 x float> %a1, <4 x float> *%a2) {
 ; BTVER2-NEXT:    vtestps %xmm1, %xmm0 # sched: [3:1.00]
 ; BTVER2-NEXT:    setb %al # sched: [1:0.50]
 ; BTVER2-NEXT:    vtestps (%rdi), %xmm0 # sched: [8:1.00]
-; BTVER2-NEXT:    adcl $0, %eax # sched: [1:0.50]
+; BTVER2-NEXT:    adcl $0, %eax # sched: [1:1.00]
 ; BTVER2-NEXT:    retq # sched: [4:1.00]
 ;
 ; ZNVER1-LABEL: test_testps:
@@ -4948,7 +4948,7 @@ define i32 @test_testps_ymm(<8 x float> %a0, <8 x float> %a1, <8 x float> *%a2)
 ; BTVER2-NEXT:    vtestps %ymm1, %ymm0 # sched: [4:2.00]
 ; BTVER2-NEXT:    setb %al # sched: [1:0.50]
 ; BTVER2-NEXT:    vtestps (%rdi), %ymm0 # sched: [9:2.00]
-; BTVER2-NEXT:    adcl $0, %eax # sched: [1:0.50]
+; BTVER2-NEXT:    adcl $0, %eax # sched: [1:1.00]
 ; BTVER2-NEXT:    retq # sched: [4:1.00]
 ;
 ; ZNVER1-LABEL: test_testps_ymm:
index 3f22a01..56f3558 100644 (file)
@@ -111,10 +111,10 @@ define void @test_adc_8(i8 %a0, i8* %a1) optsize {
 ; BTVER2-LABEL: test_adc_8:
 ; BTVER2:       # %bb.0:
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    adcb $7, %al # sched: [1:0.50]
-; BTVER2-NEXT:    adcb $7, %dil # sched: [1:0.50]
+; BTVER2-NEXT:    adcb $7, %al # sched: [1:1.00]
+; BTVER2-NEXT:    adcb $7, %dil # sched: [1:1.00]
 ; BTVER2-NEXT:    adcb $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT:    adcb %dil, %dil # sched: [1:0.50]
+; BTVER2-NEXT:    adcb %dil, %dil # sched: [1:1.00]
 ; BTVER2-NEXT:    adcb %dil, (%rsi) # sched: [5:1.00]
 ; BTVER2-NEXT:    adcb (%rsi), %dil # sched: [4:1.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -275,14 +275,14 @@ define void @test_adc_16(i16 %a0, i16* %a1) optsize {
 ; BTVER2:       # %bb.0:
 ; BTVER2-NEXT:    #APP
 ; BTVER2-NEXT:    adcw $511, %ax # imm = 0x1FF
-; BTVER2-NEXT:    # sched: [1:0.50]
+; BTVER2-NEXT:    # sched: [1:1.00]
 ; BTVER2-NEXT:    adcw $511, %di # imm = 0x1FF
-; BTVER2-NEXT:    # sched: [1:0.50]
+; BTVER2-NEXT:    # sched: [1:1.00]
 ; BTVER2-NEXT:    adcw $511, (%rsi) # imm = 0x1FF
 ; BTVER2-NEXT:    # sched: [5:1.00]
-; BTVER2-NEXT:    adcw $7, %di # sched: [1:0.50]
+; BTVER2-NEXT:    adcw $7, %di # sched: [1:1.00]
 ; BTVER2-NEXT:    adcw $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT:    adcw %di, %di # sched: [1:0.50]
+; BTVER2-NEXT:    adcw %di, %di # sched: [1:1.00]
 ; BTVER2-NEXT:    adcw %di, (%rsi) # sched: [5:1.00]
 ; BTVER2-NEXT:    adcw (%rsi), %di # sched: [4:1.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -448,14 +448,14 @@ define void @test_adc_32(i32 %a0, i32* %a1) optsize {
 ; BTVER2:       # %bb.0:
 ; BTVER2-NEXT:    #APP
 ; BTVER2-NEXT:    adcl $665536, %eax # imm = 0xA27C0
-; BTVER2-NEXT:    # sched: [1:0.50]
+; BTVER2-NEXT:    # sched: [1:1.00]
 ; BTVER2-NEXT:    adcl $665536, %edi # imm = 0xA27C0
-; BTVER2-NEXT:    # sched: [1:0.50]
+; BTVER2-NEXT:    # sched: [1:1.00]
 ; BTVER2-NEXT:    adcl $665536, (%rsi) # imm = 0xA27C0
 ; BTVER2-NEXT:    # sched: [5:1.00]
-; BTVER2-NEXT:    adcl $7, %edi # sched: [1:0.50]
+; BTVER2-NEXT:    adcl $7, %edi # sched: [1:1.00]
 ; BTVER2-NEXT:    adcl $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT:    adcl %edi, %edi # sched: [1:0.50]
+; BTVER2-NEXT:    adcl %edi, %edi # sched: [1:1.00]
 ; BTVER2-NEXT:    adcl %edi, (%rsi) # sched: [5:1.00]
 ; BTVER2-NEXT:    adcl (%rsi), %edi # sched: [4:1.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -621,14 +621,14 @@ define void @test_adc_64(i64 %a0, i64* %a1) optsize {
 ; BTVER2:       # %bb.0:
 ; BTVER2-NEXT:    #APP
 ; BTVER2-NEXT:    adcq $665536, %rax # imm = 0xA27C0
-; BTVER2-NEXT:    # sched: [1:0.50]
+; BTVER2-NEXT:    # sched: [1:1.00]
 ; BTVER2-NEXT:    adcq $665536, %rdi # imm = 0xA27C0
-; BTVER2-NEXT:    # sched: [1:0.50]
+; BTVER2-NEXT:    # sched: [1:1.00]
 ; BTVER2-NEXT:    adcq $665536, (%rsi) # imm = 0xA27C0
 ; BTVER2-NEXT:    # sched: [5:1.00]
-; BTVER2-NEXT:    adcq $7, %rdi # sched: [1:0.50]
+; BTVER2-NEXT:    adcq $7, %rdi # sched: [1:1.00]
 ; BTVER2-NEXT:    adcq $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT:    adcq %rdi, %rdi # sched: [1:0.50]
+; BTVER2-NEXT:    adcq %rdi, %rdi # sched: [1:1.00]
 ; BTVER2-NEXT:    adcq %rdi, (%rsi) # sched: [5:1.00]
 ; BTVER2-NEXT:    adcq (%rsi), %rdi # sched: [4:1.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -12873,10 +12873,10 @@ define void @test_sbb_8(i8 %a0, i8* %a1) optsize {
 ; BTVER2-LABEL: test_sbb_8:
 ; BTVER2:       # %bb.0:
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    sbbb $7, %al # sched: [1:0.50]
-; BTVER2-NEXT:    sbbb $7, %dil # sched: [1:0.50]
+; BTVER2-NEXT:    sbbb $7, %al # sched: [1:1.00]
+; BTVER2-NEXT:    sbbb $7, %dil # sched: [1:1.00]
 ; BTVER2-NEXT:    sbbb $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT:    sbbb %dil, %dil # sched: [1:0.50]
+; BTVER2-NEXT:    sbbb %dil, %dil # sched: [1:1.00]
 ; BTVER2-NEXT:    sbbb %dil, (%rsi) # sched: [5:1.00]
 ; BTVER2-NEXT:    sbbb (%rsi), %dil # sched: [4:1.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -13037,14 +13037,14 @@ define void @test_sbb_16(i16 %a0, i16* %a1) optsize {
 ; BTVER2:       # %bb.0:
 ; BTVER2-NEXT:    #APP
 ; BTVER2-NEXT:    sbbw $511, %ax # imm = 0x1FF
-; BTVER2-NEXT:    # sched: [1:0.50]
+; BTVER2-NEXT:    # sched: [1:1.00]
 ; BTVER2-NEXT:    sbbw $511, %di # imm = 0x1FF
-; BTVER2-NEXT:    # sched: [1:0.50]
+; BTVER2-NEXT:    # sched: [1:1.00]
 ; BTVER2-NEXT:    sbbw $511, (%rsi) # imm = 0x1FF
 ; BTVER2-NEXT:    # sched: [5:1.00]
-; BTVER2-NEXT:    sbbw $7, %di # sched: [1:0.50]
+; BTVER2-NEXT:    sbbw $7, %di # sched: [1:1.00]
 ; BTVER2-NEXT:    sbbw $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT:    sbbw %di, %di # sched: [1:0.50]
+; BTVER2-NEXT:    sbbw %di, %di # sched: [1:1.00]
 ; BTVER2-NEXT:    sbbw %di, (%rsi) # sched: [5:1.00]
 ; BTVER2-NEXT:    sbbw (%rsi), %di # sched: [4:1.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -13210,14 +13210,14 @@ define void @test_sbb_32(i32 %a0, i32* %a1) optsize {
 ; BTVER2:       # %bb.0:
 ; BTVER2-NEXT:    #APP
 ; BTVER2-NEXT:    sbbl $665536, %eax # imm = 0xA27C0
-; BTVER2-NEXT:    # sched: [1:0.50]
+; BTVER2-NEXT:    # sched: [1:1.00]
 ; BTVER2-NEXT:    sbbl $665536, %edi # imm = 0xA27C0
-; BTVER2-NEXT:    # sched: [1:0.50]
+; BTVER2-NEXT:    # sched: [1:1.00]
 ; BTVER2-NEXT:    sbbl $665536, (%rsi) # imm = 0xA27C0
 ; BTVER2-NEXT:    # sched: [5:1.00]
-; BTVER2-NEXT:    sbbl $7, %edi # sched: [1:0.50]
+; BTVER2-NEXT:    sbbl $7, %edi # sched: [1:1.00]
 ; BTVER2-NEXT:    sbbl $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT:    sbbl %edi, %edi # sched: [1:0.50]
+; BTVER2-NEXT:    sbbl %edi, %edi # sched: [1:1.00]
 ; BTVER2-NEXT:    sbbl %edi, (%rsi) # sched: [5:1.00]
 ; BTVER2-NEXT:    sbbl (%rsi), %edi # sched: [4:1.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -13383,14 +13383,14 @@ define void @test_sbb_64(i64 %a0, i64* %a1) optsize {
 ; BTVER2:       # %bb.0:
 ; BTVER2-NEXT:    #APP
 ; BTVER2-NEXT:    sbbq $665536, %rax # imm = 0xA27C0
-; BTVER2-NEXT:    # sched: [1:0.50]
+; BTVER2-NEXT:    # sched: [1:1.00]
 ; BTVER2-NEXT:    sbbq $665536, %rdi # imm = 0xA27C0
-; BTVER2-NEXT:    # sched: [1:0.50]
+; BTVER2-NEXT:    # sched: [1:1.00]
 ; BTVER2-NEXT:    sbbq $665536, (%rsi) # imm = 0xA27C0
 ; BTVER2-NEXT:    # sched: [5:1.00]
-; BTVER2-NEXT:    sbbq $7, %rdi # sched: [1:0.50]
+; BTVER2-NEXT:    sbbq $7, %rdi # sched: [1:1.00]
 ; BTVER2-NEXT:    sbbq $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT:    sbbq %rdi, %rdi # sched: [1:0.50]
+; BTVER2-NEXT:    sbbq %rdi, %rdi # sched: [1:1.00]
 ; BTVER2-NEXT:    sbbq %rdi, (%rsi) # sched: [5:1.00]
 ; BTVER2-NEXT:    sbbq (%rsi), %rdi # sched: [4:1.00]
 ; BTVER2-NEXT:    #NO_APP
index f6590b8..c11fd16 100644 (file)
@@ -607,34 +607,34 @@ xorq (%rax), %rdi
 # CHECK-NEXT: [6]: HasSideEffects
 
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
-# CHECK-NEXT:  1      1     0.50                        adcb   $7, %al
-# CHECK-NEXT:  1      1     0.50                        adcb   $7, %dil
+# CHECK-NEXT:  1      1     1.00                        adcb   $7, %al
+# CHECK-NEXT:  1      1     1.00                        adcb   $7, %dil
 # CHECK-NEXT:  2      5     1.00    *      *            adcb   $7, (%rax)
-# CHECK-NEXT:  1      1     0.50                        adcb   %dil, %dil
+# CHECK-NEXT:  1      1     1.00                        adcb   %dil, %dil
 # CHECK-NEXT:  2      5     1.00    *      *            adcb   %dil, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   adcb   (%rax), %dil
-# CHECK-NEXT:  1      1     0.50                        adcw   $511, %ax
-# CHECK-NEXT:  1      1     0.50                        adcw   $511, %di
+# CHECK-NEXT:  1      1     1.00                        adcw   $511, %ax
+# CHECK-NEXT:  1      1     1.00                        adcw   $511, %di
 # CHECK-NEXT:  2      5     1.00    *      *            adcw   $511, (%rax)
-# CHECK-NEXT:  1      1     0.50                        adcw   $7, %di
+# CHECK-NEXT:  1      1     1.00                        adcw   $7, %di
 # CHECK-NEXT:  2      5     1.00    *      *            adcw   $7, (%rax)
-# CHECK-NEXT:  1      1     0.50                        adcw   %di, %di
+# CHECK-NEXT:  1      1     1.00                        adcw   %di, %di
 # CHECK-NEXT:  2      5     1.00    *      *            adcw   %di, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   adcw   (%rax), %di
-# CHECK-NEXT:  1      1     0.50                        adcl   $665536, %eax
-# CHECK-NEXT:  1      1     0.50                        adcl   $665536, %edi
+# CHECK-NEXT:  1      1     1.00                        adcl   $665536, %eax
+# CHECK-NEXT:  1      1     1.00                        adcl   $665536, %edi
 # CHECK-NEXT:  2      5     1.00    *      *            adcl   $665536, (%rax)
-# CHECK-NEXT:  1      1     0.50                        adcl   $7, %edi
+# CHECK-NEXT:  1      1     1.00                        adcl   $7, %edi
 # CHECK-NEXT:  2      5     1.00    *      *            adcl   $7, (%rax)
-# CHECK-NEXT:  1      1     0.50                        adcl   %edi, %edi
+# CHECK-NEXT:  1      1     1.00                        adcl   %edi, %edi
 # CHECK-NEXT:  2      5     1.00    *      *            adcl   %edi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   adcl   (%rax), %edi
-# CHECK-NEXT:  1      1     0.50                        adcq   $665536, %rax
-# CHECK-NEXT:  1      1     0.50                        adcq   $665536, %rdi
+# CHECK-NEXT:  1      1     1.00                        adcq   $665536, %rax
+# CHECK-NEXT:  1      1     1.00                        adcq   $665536, %rdi
 # CHECK-NEXT:  2      5     1.00    *      *            adcq   $665536, (%rax)
-# CHECK-NEXT:  1      1     0.50                        adcq   $7, %rdi
+# CHECK-NEXT:  1      1     1.00                        adcq   $7, %rdi
 # CHECK-NEXT:  2      5     1.00    *      *            adcq   $7, (%rax)
-# CHECK-NEXT:  1      1     0.50                        adcq   %rdi, %rdi
+# CHECK-NEXT:  1      1     1.00                        adcq   %rdi, %rdi
 # CHECK-NEXT:  2      5     1.00    *      *            adcq   %rdi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   adcq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        addb   $7, %al
@@ -1032,34 +1032,34 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      4     1.00    *      *            sarq   %cl, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            shlq   %cl, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            shrq   %cl, (%rax)
-# CHECK-NEXT:  1      1     0.50                        sbbb   $7, %al
-# CHECK-NEXT:  1      1     0.50                        sbbb   $7, %dil
+# CHECK-NEXT:  1      1     1.00                        sbbb   $7, %al
+# CHECK-NEXT:  1      1     1.00                        sbbb   $7, %dil
 # CHECK-NEXT:  2      5     1.00    *      *            sbbb   $7, (%rax)
-# CHECK-NEXT:  1      1     0.50                        sbbb   %dil, %dil
+# CHECK-NEXT:  1      1     1.00                        sbbb   %dil, %dil
 # CHECK-NEXT:  2      5     1.00    *      *            sbbb   %dil, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   sbbb   (%rax), %dil
-# CHECK-NEXT:  1      1     0.50                        sbbw   $511, %ax
-# CHECK-NEXT:  1      1     0.50                        sbbw   $511, %di
+# CHECK-NEXT:  1      1     1.00                        sbbw   $511, %ax
+# CHECK-NEXT:  1      1     1.00                        sbbw   $511, %di
 # CHECK-NEXT:  2      5     1.00    *      *            sbbw   $511, (%rax)
-# CHECK-NEXT:  1      1     0.50                        sbbw   $7, %di
+# CHECK-NEXT:  1      1     1.00                        sbbw   $7, %di
 # CHECK-NEXT:  2      5     1.00    *      *            sbbw   $7, (%rax)
-# CHECK-NEXT:  1      1     0.50                        sbbw   %di, %di
+# CHECK-NEXT:  1      1     1.00                        sbbw   %di, %di
 # CHECK-NEXT:  2      5     1.00    *      *            sbbw   %di, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   sbbw   (%rax), %di
-# CHECK-NEXT:  1      1     0.50                        sbbl   $665536, %eax
-# CHECK-NEXT:  1      1     0.50                        sbbl   $665536, %edi
+# CHECK-NEXT:  1      1     1.00                        sbbl   $665536, %eax
+# CHECK-NEXT:  1      1     1.00                        sbbl   $665536, %edi
 # CHECK-NEXT:  2      5     1.00    *      *            sbbl   $665536, (%rax)
-# CHECK-NEXT:  1      1     0.50                        sbbl   $7, %edi
+# CHECK-NEXT:  1      1     1.00                        sbbl   $7, %edi
 # CHECK-NEXT:  2      5     1.00    *      *            sbbl   $7, (%rax)
-# CHECK-NEXT:  1      1     0.50                        sbbl   %edi, %edi
+# CHECK-NEXT:  1      1     1.00                        sbbl   %edi, %edi
 # CHECK-NEXT:  2      5     1.00    *      *            sbbl   %edi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   sbbl   (%rax), %edi
-# CHECK-NEXT:  1      1     0.50                        sbbq   $665536, %rax
-# CHECK-NEXT:  1      1     0.50                        sbbq   $665536, %rdi
+# CHECK-NEXT:  1      1     1.00                        sbbq   $665536, %rax
+# CHECK-NEXT:  1      1     1.00                        sbbq   $665536, %rdi
 # CHECK-NEXT:  2      5     1.00    *      *            sbbq   $665536, (%rax)
-# CHECK-NEXT:  1      1     0.50                        sbbq   $7, %rdi
+# CHECK-NEXT:  1      1     1.00                        sbbq   $7, %rdi
 # CHECK-NEXT:  2      5     1.00    *      *            sbbq   $7, (%rax)
-# CHECK-NEXT:  1      1     0.50                        sbbq   %rdi, %rdi
+# CHECK-NEXT:  1      1     1.00                        sbbq   %rdi, %rdi
 # CHECK-NEXT:  2      5     1.00    *      *            sbbq   %rdi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   sbbq   (%rax), %rdi
 # CHECK-NEXT:  7      4     4.00                        shldw  %cl, %si, %di
@@ -1165,40 +1165,40 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
-# CHECK-NEXT: 406.50 456.50 380.00  -      -      -      -     263.00 64.00  195.00  -      -      -      -
+# CHECK-NEXT: 436.50 486.50 380.00  -      -      -      -     263.00 64.00  195.00  -      -      -      -
 
 # 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    -      -      -      -      -      -      -      -      -      -      -      -     adcb   $7, %al
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     adcb   $7, %dil
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcb   $7, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     adcb   %dil, %dil
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcb   %dil, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     adcb   (%rax), %dil
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     adcw   $511, %ax
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     adcw   $511, %di
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcw   $511, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     adcw   $7, %di
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcw   $7, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     adcw   %di, %di
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcw   %di, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     adcw   (%rax), %di
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     adcl   $665536, %eax
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     adcl   $665536, %edi
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcl   $665536, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     adcl   $7, %edi
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcl   $7, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     adcl   %edi, %edi
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcl   %edi, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     adcl   (%rax), %edi
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     adcq   $665536, %rax
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     adcq   $665536, %rdi
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcq   $665536, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     adcq   $7, %rdi
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcq   $7, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     adcq   %rdi, %rdi
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcq   %rdi, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     adcq   (%rax), %rdi
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcb   $7, %al
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcb   $7, %dil
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcb   $7, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcb   %dil, %dil
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcb   %dil, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     adcb   (%rax), %dil
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcw   $511, %ax
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcw   $511, %di
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcw   $511, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcw   $7, %di
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcw   $7, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcw   %di, %di
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcw   %di, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     adcw   (%rax), %di
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcl   $665536, %eax
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcl   $665536, %edi
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcl   $665536, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcl   $7, %edi
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcl   $7, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcl   %edi, %edi
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcl   %edi, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     adcl   (%rax), %edi
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcq   $665536, %rax
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcq   $665536, %rdi
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcq   $665536, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcq   $7, %rdi
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcq   $7, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcq   %rdi, %rdi
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcq   %rdi, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     adcq   (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     addb   $7, %al
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     addb   $7, %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     addb   $7, (%rax)
@@ -1594,36 +1594,36 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sarq   %cl, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     shlq   %cl, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     shrq   %cl, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     sbbb   $7, %al
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     sbbb   $7, %dil
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbb   $7, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     sbbb   %dil, %dil
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbb   %dil, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     sbbb   (%rax), %dil
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     sbbw   $511, %ax
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     sbbw   $511, %di
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbw   $511, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     sbbw   $7, %di
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbw   $7, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     sbbw   %di, %di
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbw   %di, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     sbbw   (%rax), %di
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     sbbl   $665536, %eax
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     sbbl   $665536, %edi
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbl   $665536, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     sbbl   $7, %edi
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbl   $7, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     sbbl   %edi, %edi
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbl   %edi, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     sbbl   (%rax), %edi
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     sbbq   $665536, %rax
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     sbbq   $665536, %rdi
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbq   $665536, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     sbbq   $7, %rdi
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbq   $7, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     sbbq   %rdi, %rdi
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbq   %rdi, (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     sbbq   (%rax), %rdi
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbb   $7, %al
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbb   $7, %dil
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbb   $7, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbb   %dil, %dil
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbb   %dil, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     sbbb   (%rax), %dil
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbw   $511, %ax
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbw   $511, %di
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbw   $511, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbw   $7, %di
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbw   $7, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbw   %di, %di
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbw   %di, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     sbbw   (%rax), %di
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbl   $665536, %eax
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbl   $665536, %edi
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbl   $665536, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbl   $7, %edi
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbl   $7, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbl   %edi, %edi
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbl   %edi, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     sbbl   (%rax), %edi
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbq   $665536, %rax
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbq   $665536, %rdi
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbq   $665536, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbq   $7, %rdi
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbq   $7, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbq   %rdi, %rdi
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbq   %rdi, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     sbbq   (%rax), %rdi
 # CHECK-NEXT: 4.00   4.00    -      -      -      -      -      -      -      -      -      -      -      -     shldw  %cl, %si, %di
 # CHECK-NEXT: 4.00   4.00    -      -      -      -      -      -      -      -      -      -      -      -     shrdw  %cl, %si, %di
 # CHECK-NEXT: 11.00  11.00   -      -      -      -      -     1.00    -      -      -      -      -      -     shldw  %cl, %si, (%rax)