Home | History | Annotate | Download | only in SkylakeClient
      1 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
      2 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -instruction-tables < %s | FileCheck %s
      3 
      4 bzhi        %eax, %ebx, %ecx
      5 bzhi        %eax, (%rbx), %ecx
      6 
      7 bzhi        %rax, %rbx, %rcx
      8 bzhi        %rax, (%rbx), %rcx
      9 
     10 mulx        %eax, %ebx, %ecx
     11 mulx        (%rax), %ebx, %ecx
     12 
     13 mulx        %rax, %rbx, %rcx
     14 mulx        (%rax), %rbx, %rcx
     15 
     16 pdep        %eax, %ebx, %ecx
     17 pdep        (%rax), %ebx, %ecx
     18 
     19 pdep        %rax, %rbx, %rcx
     20 pdep        (%rax), %rbx, %rcx
     21 
     22 pext        %eax, %ebx, %ecx
     23 pext        (%rax), %ebx, %ecx
     24 
     25 pext        %rax, %rbx, %rcx
     26 pext        (%rax), %rbx, %rcx
     27 
     28 rorx        $1, %eax, %ecx
     29 rorx        $1, (%rax), %ecx
     30 
     31 rorx        $1, %rax, %rcx
     32 rorx        $1, (%rax), %rcx
     33 
     34 sarx        %eax, %ebx, %ecx
     35 sarx        %eax, (%rbx), %ecx
     36 
     37 sarx        %rax, %rbx, %rcx
     38 sarx        %rax, (%rbx), %rcx
     39 
     40 shlx        %eax, %ebx, %ecx
     41 shlx        %eax, (%rbx), %ecx
     42 
     43 shlx        %rax, %rbx, %rcx
     44 shlx        %rax, (%rbx), %rcx
     45 
     46 shrx        %eax, %ebx, %ecx
     47 shrx        %eax, (%rbx), %ecx
     48 
     49 shrx        %rax, %rbx, %rcx
     50 shrx        %rax, (%rbx), %rcx
     51 
     52 # CHECK:      Instruction Info:
     53 # CHECK-NEXT: [1]: #uOps
     54 # CHECK-NEXT: [2]: Latency
     55 # CHECK-NEXT: [3]: RThroughput
     56 # CHECK-NEXT: [4]: MayLoad
     57 # CHECK-NEXT: [5]: MayStore
     58 # CHECK-NEXT: [6]: HasSideEffects (U)
     59 
     60 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
     61 # CHECK-NEXT:  1      1     0.50                        bzhil	%eax, %ebx, %ecx
     62 # CHECK-NEXT:  2      6     0.50    *                   bzhil	%eax, (%rbx), %ecx
     63 # CHECK-NEXT:  1      1     0.50                        bzhiq	%rax, %rbx, %rcx
     64 # CHECK-NEXT:  2      6     0.50    *                   bzhiq	%rax, (%rbx), %rcx
     65 # CHECK-NEXT:  3      4     1.00                        mulxl	%eax, %ebx, %ecx
     66 # CHECK-NEXT:  4      9     1.00    *                   mulxl	(%rax), %ebx, %ecx
     67 # CHECK-NEXT:  2      4     1.00                        mulxq	%rax, %rbx, %rcx
     68 # CHECK-NEXT:  3      9     1.00    *                   mulxq	(%rax), %rbx, %rcx
     69 # CHECK-NEXT:  1      3     1.00                        pdepl	%eax, %ebx, %ecx
     70 # CHECK-NEXT:  2      8     1.00    *                   pdepl	(%rax), %ebx, %ecx
     71 # CHECK-NEXT:  1      3     1.00                        pdepq	%rax, %rbx, %rcx
     72 # CHECK-NEXT:  2      8     1.00    *                   pdepq	(%rax), %rbx, %rcx
     73 # CHECK-NEXT:  1      3     1.00                        pextl	%eax, %ebx, %ecx
     74 # CHECK-NEXT:  2      8     1.00    *                   pextl	(%rax), %ebx, %ecx
     75 # CHECK-NEXT:  1      3     1.00                        pextq	%rax, %rbx, %rcx
     76 # CHECK-NEXT:  2      8     1.00    *                   pextq	(%rax), %rbx, %rcx
     77 # CHECK-NEXT:  1      1     0.50                        rorxl	$1, %eax, %ecx
     78 # CHECK-NEXT:  2      6     0.50    *                   rorxl	$1, (%rax), %ecx
     79 # CHECK-NEXT:  1      1     0.50                        rorxq	$1, %rax, %rcx
     80 # CHECK-NEXT:  2      6     0.50    *                   rorxq	$1, (%rax), %rcx
     81 # CHECK-NEXT:  1      1     0.50                        sarxl	%eax, %ebx, %ecx
     82 # CHECK-NEXT:  2      6     0.50    *                   sarxl	%eax, (%rbx), %ecx
     83 # CHECK-NEXT:  1      1     0.50                        sarxq	%rax, %rbx, %rcx
     84 # CHECK-NEXT:  2      6     0.50    *                   sarxq	%rax, (%rbx), %rcx
     85 # CHECK-NEXT:  1      1     0.50                        shlxl	%eax, %ebx, %ecx
     86 # CHECK-NEXT:  2      6     0.50    *                   shlxl	%eax, (%rbx), %ecx
     87 # CHECK-NEXT:  1      1     0.50                        shlxq	%rax, %rbx, %rcx
     88 # CHECK-NEXT:  2      6     0.50    *                   shlxq	%rax, (%rbx), %rcx
     89 # CHECK-NEXT:  1      1     0.50                        shrxl	%eax, %ebx, %ecx
     90 # CHECK-NEXT:  2      6     0.50    *                   shrxl	%eax, (%rbx), %ecx
     91 # CHECK-NEXT:  1      1     0.50                        shrxq	%rax, %rbx, %rcx
     92 # CHECK-NEXT:  2      6     0.50    *                   shrxq	%rax, (%rbx), %rcx
     93 
     94 # CHECK:      Resources:
     95 # CHECK-NEXT: [0]   - SKLDivider
     96 # CHECK-NEXT: [1]   - SKLFPDivider
     97 # CHECK-NEXT: [2]   - SKLPort0
     98 # CHECK-NEXT: [3]   - SKLPort1
     99 # CHECK-NEXT: [4]   - SKLPort2
    100 # CHECK-NEXT: [5]   - SKLPort3
    101 # CHECK-NEXT: [6]   - SKLPort4
    102 # CHECK-NEXT: [7]   - SKLPort5
    103 # CHECK-NEXT: [8]   - SKLPort6
    104 # CHECK-NEXT: [9]   - SKLPort7
    105 
    106 # CHECK:      Resource pressure per iteration:
    107 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
    108 # CHECK-NEXT:  -      -     9.50   14.50  8.00   8.00    -     4.50   9.50    -
    109 
    110 # CHECK:      Resource pressure by instruction:
    111 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
    112 # CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -     bzhil	%eax, %ebx, %ecx
    113 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50    -     0.50    -      -     bzhil	%eax, (%rbx), %ecx
    114 # CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -     bzhiq	%rax, %rbx, %rcx
    115 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50    -     0.50    -      -     bzhiq	%rax, (%rbx), %rcx
    116 # CHECK-NEXT:  -      -     0.75   1.25    -      -      -     0.25   0.75    -     mulxl	%eax, %ebx, %ecx
    117 # CHECK-NEXT:  -      -     0.75   1.25   0.50   0.50    -     0.25   0.75    -     mulxl	(%rax), %ebx, %ecx
    118 # CHECK-NEXT:  -      -      -     1.00    -      -      -     1.00    -      -     mulxq	%rax, %rbx, %rcx
    119 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -     1.00    -      -     mulxq	(%rax), %rbx, %rcx
    120 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     pdepl	%eax, %ebx, %ecx
    121 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     pdepl	(%rax), %ebx, %ecx
    122 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     pdepq	%rax, %rbx, %rcx
    123 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     pdepq	(%rax), %rbx, %rcx
    124 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     pextl	%eax, %ebx, %ecx
    125 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     pextl	(%rax), %ebx, %ecx
    126 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     pextq	%rax, %rbx, %rcx
    127 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     pextq	(%rax), %rbx, %rcx
    128 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     rorxl	$1, %eax, %ecx
    129 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     rorxl	$1, (%rax), %ecx
    130 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     rorxq	$1, %rax, %rcx
    131 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     rorxq	$1, (%rax), %rcx
    132 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sarxl	%eax, %ebx, %ecx
    133 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     sarxl	%eax, (%rbx), %ecx
    134 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sarxq	%rax, %rbx, %rcx
    135 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     sarxq	%rax, (%rbx), %rcx
    136 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     shlxl	%eax, %ebx, %ecx
    137 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     shlxl	%eax, (%rbx), %ecx
    138 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     shlxq	%rax, %rbx, %rcx
    139 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     shlxq	%rax, (%rbx), %rcx
    140 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     shrxl	%eax, %ebx, %ecx
    141 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     shrxl	%eax, (%rbx), %ecx
    142 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     shrxq	%rax, %rbx, %rcx
    143 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     shrxq	%rax, (%rbx), %rcx
    144