Home | History | Annotate | Download | only in Generic
      1 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
      2 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
      3 
      4 vaddpd            %zmm16, %zmm17, %zmm19
      5 vaddpd            (%rax), %zmm17, %zmm19
      6 vaddpd            %zmm16, %zmm17, %zmm19 {k1}
      7 vaddpd            (%rax), %zmm17, %zmm19 {k1}
      8 vaddpd            %zmm16, %zmm17, %zmm19 {z}{k1}
      9 vaddpd            (%rax), %zmm17, %zmm19 {z}{k1}
     10 
     11 vaddps            %zmm16, %zmm17, %zmm19
     12 vaddps            (%rax), %zmm17, %zmm19
     13 vaddps            %zmm16, %zmm17, %zmm19 {k1}
     14 vaddps            (%rax), %zmm17, %zmm19 {k1}
     15 vaddps            %zmm16, %zmm17, %zmm19 {z}{k1}
     16 vaddps            (%rax), %zmm17, %zmm19 {z}{k1}
     17 
     18 vdivpd            %zmm16, %zmm17, %zmm19
     19 vdivpd            (%rax), %zmm17, %zmm19
     20 vdivpd            %zmm16, %zmm17, %zmm19 {k1}
     21 vdivpd            (%rax), %zmm17, %zmm19 {k1}
     22 vdivpd            %zmm16, %zmm17, %zmm19 {z}{k1}
     23 vdivpd            (%rax), %zmm17, %zmm19 {z}{k1}
     24 
     25 vdivps            %zmm16, %zmm17, %zmm19
     26 vdivps            (%rax), %zmm17, %zmm19
     27 vdivps            %zmm16, %zmm17, %zmm19 {k1}
     28 vdivps            (%rax), %zmm17, %zmm19 {k1}
     29 vdivps            %zmm16, %zmm17, %zmm19 {z}{k1}
     30 vdivps            (%rax), %zmm17, %zmm19 {z}{k1}
     31 
     32 vmulpd            %zmm16, %zmm17, %zmm19
     33 vmulpd            (%rax), %zmm17, %zmm19
     34 vmulpd            %zmm16, %zmm17, %zmm19 {k1}
     35 vmulpd            (%rax), %zmm17, %zmm19 {k1}
     36 vmulpd            %zmm16, %zmm17, %zmm19 {z}{k1}
     37 vmulpd            (%rax), %zmm17, %zmm19 {z}{k1}
     38 
     39 vmulps            %zmm16, %zmm17, %zmm19
     40 vmulps            (%rax), %zmm17, %zmm19
     41 vmulps            %zmm16, %zmm17, %zmm19 {k1}
     42 vmulps            (%rax), %zmm17, %zmm19 {k1}
     43 vmulps            %zmm16, %zmm17, %zmm19 {z}{k1}
     44 vmulps            (%rax), %zmm17, %zmm19 {z}{k1}
     45 
     46 vsubpd            %zmm16, %zmm17, %zmm19
     47 vsubpd            (%rax), %zmm17, %zmm19
     48 vsubpd            %zmm16, %zmm17, %zmm19 {k1}
     49 vsubpd            (%rax), %zmm17, %zmm19 {k1}
     50 vsubpd            %zmm16, %zmm17, %zmm19 {z}{k1}
     51 vsubpd            (%rax), %zmm17, %zmm19 {z}{k1}
     52 
     53 vsubps            %zmm16, %zmm17, %zmm19
     54 vsubps            (%rax), %zmm17, %zmm19
     55 vsubps            %zmm16, %zmm17, %zmm19 {k1}
     56 vsubps            (%rax), %zmm17, %zmm19 {k1}
     57 vsubps            %zmm16, %zmm17, %zmm19 {z}{k1}
     58 vsubps            (%rax), %zmm17, %zmm19 {z}{k1}
     59 
     60 # CHECK:      Instruction Info:
     61 # CHECK-NEXT: [1]: #uOps
     62 # CHECK-NEXT: [2]: Latency
     63 # CHECK-NEXT: [3]: RThroughput
     64 # CHECK-NEXT: [4]: MayLoad
     65 # CHECK-NEXT: [5]: MayStore
     66 # CHECK-NEXT: [6]: HasSideEffects (U)
     67 
     68 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
     69 # CHECK-NEXT:  1      3     1.00                        vaddpd	%zmm16, %zmm17, %zmm19
     70 # CHECK-NEXT:  2      10    1.00    *                   vaddpd	(%rax), %zmm17, %zmm19
     71 # CHECK-NEXT:  1      3     1.00                        vaddpd	%zmm16, %zmm17, %zmm19 {%k1}
     72 # CHECK-NEXT:  2      10    1.00    *                   vaddpd	(%rax), %zmm17, %zmm19 {%k1}
     73 # CHECK-NEXT:  1      3     1.00                        vaddpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
     74 # CHECK-NEXT:  2      10    1.00    *                   vaddpd	(%rax), %zmm17, %zmm19 {%k1} {z}
     75 # CHECK-NEXT:  1      3     1.00                        vaddps	%zmm16, %zmm17, %zmm19
     76 # CHECK-NEXT:  2      10    1.00    *                   vaddps	(%rax), %zmm17, %zmm19
     77 # CHECK-NEXT:  1      3     1.00                        vaddps	%zmm16, %zmm17, %zmm19 {%k1}
     78 # CHECK-NEXT:  2      10    1.00    *                   vaddps	(%rax), %zmm17, %zmm19 {%k1}
     79 # CHECK-NEXT:  1      3     1.00                        vaddps	%zmm16, %zmm17, %zmm19 {%k1} {z}
     80 # CHECK-NEXT:  2      10    1.00    *                   vaddps	(%rax), %zmm17, %zmm19 {%k1} {z}
     81 # CHECK-NEXT:  3      45    44.00                       vdivpd	%zmm16, %zmm17, %zmm19
     82 # CHECK-NEXT:  4      52    44.00   *                   vdivpd	(%rax), %zmm17, %zmm19
     83 # CHECK-NEXT:  3      45    44.00                       vdivpd	%zmm16, %zmm17, %zmm19 {%k1}
     84 # CHECK-NEXT:  4      52    44.00   *                   vdivpd	(%rax), %zmm17, %zmm19 {%k1}
     85 # CHECK-NEXT:  3      45    44.00                       vdivpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
     86 # CHECK-NEXT:  4      52    44.00   *                   vdivpd	(%rax), %zmm17, %zmm19 {%k1} {z}
     87 # CHECK-NEXT:  3      29    28.00                       vdivps	%zmm16, %zmm17, %zmm19
     88 # CHECK-NEXT:  4      36    28.00   *                   vdivps	(%rax), %zmm17, %zmm19
     89 # CHECK-NEXT:  3      29    28.00                       vdivps	%zmm16, %zmm17, %zmm19 {%k1}
     90 # CHECK-NEXT:  4      36    28.00   *                   vdivps	(%rax), %zmm17, %zmm19 {%k1}
     91 # CHECK-NEXT:  3      29    28.00                       vdivps	%zmm16, %zmm17, %zmm19 {%k1} {z}
     92 # CHECK-NEXT:  4      36    28.00   *                   vdivps	(%rax), %zmm17, %zmm19 {%k1} {z}
     93 # CHECK-NEXT:  1      5     1.00                        vmulpd	%zmm16, %zmm17, %zmm19
     94 # CHECK-NEXT:  2      12    1.00    *                   vmulpd	(%rax), %zmm17, %zmm19
     95 # CHECK-NEXT:  1      5     1.00                        vmulpd	%zmm16, %zmm17, %zmm19 {%k1}
     96 # CHECK-NEXT:  2      12    1.00    *                   vmulpd	(%rax), %zmm17, %zmm19 {%k1}
     97 # CHECK-NEXT:  1      5     1.00                        vmulpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
     98 # CHECK-NEXT:  2      12    1.00    *                   vmulpd	(%rax), %zmm17, %zmm19 {%k1} {z}
     99 # CHECK-NEXT:  1      5     1.00                        vmulps	%zmm16, %zmm17, %zmm19
    100 # CHECK-NEXT:  2      12    1.00    *                   vmulps	(%rax), %zmm17, %zmm19
    101 # CHECK-NEXT:  1      5     1.00                        vmulps	%zmm16, %zmm17, %zmm19 {%k1}
    102 # CHECK-NEXT:  2      12    1.00    *                   vmulps	(%rax), %zmm17, %zmm19 {%k1}
    103 # CHECK-NEXT:  1      5     1.00                        vmulps	%zmm16, %zmm17, %zmm19 {%k1} {z}
    104 # CHECK-NEXT:  2      12    1.00    *                   vmulps	(%rax), %zmm17, %zmm19 {%k1} {z}
    105 # CHECK-NEXT:  1      3     1.00                        vsubpd	%zmm16, %zmm17, %zmm19
    106 # CHECK-NEXT:  2      10    1.00    *                   vsubpd	(%rax), %zmm17, %zmm19
    107 # CHECK-NEXT:  1      3     1.00                        vsubpd	%zmm16, %zmm17, %zmm19 {%k1}
    108 # CHECK-NEXT:  2      10    1.00    *                   vsubpd	(%rax), %zmm17, %zmm19 {%k1}
    109 # CHECK-NEXT:  1      3     1.00                        vsubpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
    110 # CHECK-NEXT:  2      10    1.00    *                   vsubpd	(%rax), %zmm17, %zmm19 {%k1} {z}
    111 # CHECK-NEXT:  1      3     1.00                        vsubps	%zmm16, %zmm17, %zmm19
    112 # CHECK-NEXT:  2      10    1.00    *                   vsubps	(%rax), %zmm17, %zmm19
    113 # CHECK-NEXT:  1      3     1.00                        vsubps	%zmm16, %zmm17, %zmm19 {%k1}
    114 # CHECK-NEXT:  2      10    1.00    *                   vsubps	(%rax), %zmm17, %zmm19 {%k1}
    115 # CHECK-NEXT:  1      3     1.00                        vsubps	%zmm16, %zmm17, %zmm19 {%k1} {z}
    116 # CHECK-NEXT:  2      10    1.00    *                   vsubps	(%rax), %zmm17, %zmm19 {%k1} {z}
    117 
    118 # CHECK:      Resources:
    119 # CHECK-NEXT: [0]   - SBDivider
    120 # CHECK-NEXT: [1]   - SBFPDivider
    121 # CHECK-NEXT: [2]   - SBPort0
    122 # CHECK-NEXT: [3]   - SBPort1
    123 # CHECK-NEXT: [4]   - SBPort4
    124 # CHECK-NEXT: [5]   - SBPort5
    125 # CHECK-NEXT: [6.0] - SBPort23
    126 # CHECK-NEXT: [6.1] - SBPort23
    127 
    128 # CHECK:      Resource pressure per iteration:
    129 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
    130 # CHECK-NEXT:  -     432.00 42.00  24.00   -     6.00   12.00  12.00
    131 
    132 # CHECK:      Resource pressure by instruction:
    133 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
    134 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vaddpd	%zmm16, %zmm17, %zmm19
    135 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vaddpd	(%rax), %zmm17, %zmm19
    136 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vaddpd	%zmm16, %zmm17, %zmm19 {%k1}
    137 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vaddpd	(%rax), %zmm17, %zmm19 {%k1}
    138 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vaddpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
    139 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vaddpd	(%rax), %zmm17, %zmm19 {%k1} {z}
    140 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vaddps	%zmm16, %zmm17, %zmm19
    141 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vaddps	(%rax), %zmm17, %zmm19
    142 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vaddps	%zmm16, %zmm17, %zmm19 {%k1}
    143 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vaddps	(%rax), %zmm17, %zmm19 {%k1}
    144 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vaddps	%zmm16, %zmm17, %zmm19 {%k1} {z}
    145 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vaddps	(%rax), %zmm17, %zmm19 {%k1} {z}
    146 # CHECK-NEXT:  -     44.00  2.50    -      -     0.50    -      -     vdivpd	%zmm16, %zmm17, %zmm19
    147 # CHECK-NEXT:  -     44.00  2.50    -      -     0.50   0.50   0.50   vdivpd	(%rax), %zmm17, %zmm19
    148 # CHECK-NEXT:  -     44.00  2.50    -      -     0.50    -      -     vdivpd	%zmm16, %zmm17, %zmm19 {%k1}
    149 # CHECK-NEXT:  -     44.00  2.50    -      -     0.50   0.50   0.50   vdivpd	(%rax), %zmm17, %zmm19 {%k1}
    150 # CHECK-NEXT:  -     44.00  2.50    -      -     0.50    -      -     vdivpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
    151 # CHECK-NEXT:  -     44.00  2.50    -      -     0.50   0.50   0.50   vdivpd	(%rax), %zmm17, %zmm19 {%k1} {z}
    152 # CHECK-NEXT:  -     28.00  2.50    -      -     0.50    -      -     vdivps	%zmm16, %zmm17, %zmm19
    153 # CHECK-NEXT:  -     28.00  2.50    -      -     0.50   0.50   0.50   vdivps	(%rax), %zmm17, %zmm19
    154 # CHECK-NEXT:  -     28.00  2.50    -      -     0.50    -      -     vdivps	%zmm16, %zmm17, %zmm19 {%k1}
    155 # CHECK-NEXT:  -     28.00  2.50    -      -     0.50   0.50   0.50   vdivps	(%rax), %zmm17, %zmm19 {%k1}
    156 # CHECK-NEXT:  -     28.00  2.50    -      -     0.50    -      -     vdivps	%zmm16, %zmm17, %zmm19 {%k1} {z}
    157 # CHECK-NEXT:  -     28.00  2.50    -      -     0.50   0.50   0.50   vdivps	(%rax), %zmm17, %zmm19 {%k1} {z}
    158 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vmulpd	%zmm16, %zmm17, %zmm19
    159 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vmulpd	(%rax), %zmm17, %zmm19
    160 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vmulpd	%zmm16, %zmm17, %zmm19 {%k1}
    161 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vmulpd	(%rax), %zmm17, %zmm19 {%k1}
    162 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vmulpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
    163 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vmulpd	(%rax), %zmm17, %zmm19 {%k1} {z}
    164 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vmulps	%zmm16, %zmm17, %zmm19
    165 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vmulps	(%rax), %zmm17, %zmm19
    166 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vmulps	%zmm16, %zmm17, %zmm19 {%k1}
    167 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vmulps	(%rax), %zmm17, %zmm19 {%k1}
    168 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vmulps	%zmm16, %zmm17, %zmm19 {%k1} {z}
    169 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vmulps	(%rax), %zmm17, %zmm19 {%k1} {z}
    170 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vsubpd	%zmm16, %zmm17, %zmm19
    171 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vsubpd	(%rax), %zmm17, %zmm19
    172 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vsubpd	%zmm16, %zmm17, %zmm19 {%k1}
    173 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vsubpd	(%rax), %zmm17, %zmm19 {%k1}
    174 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vsubpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
    175 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vsubpd	(%rax), %zmm17, %zmm19 {%k1} {z}
    176 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vsubps	%zmm16, %zmm17, %zmm19
    177 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vsubps	(%rax), %zmm17, %zmm19
    178 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vsubps	%zmm16, %zmm17, %zmm19 {%k1}
    179 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vsubps	(%rax), %zmm17, %zmm19 {%k1}
    180 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vsubps	%zmm16, %zmm17, %zmm19 {%k1} {z}
    181 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vsubps	(%rax), %zmm17, %zmm19 {%k1} {z}
    182