Home | History | Annotate | Download | only in SkylakeServer
      1 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
      2 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake-avx512 -instruction-tables < %s | FileCheck %s
      3 
      4 pabsb       %mm0, %mm2
      5 pabsb       (%rax), %mm2
      6 
      7 pabsb       %xmm0, %xmm2
      8 pabsb       (%rax), %xmm2
      9 
     10 pabsd       %mm0, %mm2
     11 pabsd       (%rax), %mm2
     12 
     13 pabsd       %xmm0, %xmm2
     14 pabsd       (%rax), %xmm2
     15 
     16 pabsw       %mm0, %mm2
     17 pabsw       (%rax), %mm2
     18 
     19 pabsw       %xmm0, %xmm2
     20 pabsw       (%rax), %xmm2
     21 
     22 palignr     $1, %mm0, %mm2
     23 palignr     $1, (%rax), %mm2
     24 
     25 palignr     $1, %xmm0, %xmm2
     26 palignr     $1, (%rax), %xmm2
     27 
     28 phaddd      %mm0, %mm2
     29 phaddd      (%rax), %mm2
     30 
     31 phaddd      %xmm0, %xmm2
     32 phaddd      (%rax), %xmm2
     33 
     34 phaddsw     %mm0, %mm2
     35 phaddsw     (%rax), %mm2
     36 
     37 phaddsw     %xmm0, %xmm2
     38 phaddsw     (%rax), %xmm2
     39 
     40 phaddw      %mm0, %mm2
     41 phaddw      (%rax), %mm2
     42 
     43 phaddw      %xmm0, %xmm2
     44 phaddw      (%rax), %xmm2
     45 
     46 phsubd      %mm0, %mm2
     47 phsubd      (%rax), %mm2
     48 
     49 phsubd      %xmm0, %xmm2
     50 phsubd      (%rax), %xmm2
     51 
     52 phsubsw     %mm0, %mm2
     53 phsubsw     (%rax), %mm2
     54 
     55 phsubsw     %xmm0, %xmm2
     56 phsubsw     (%rax), %xmm2
     57 
     58 phsubw      %mm0, %mm2
     59 phsubw      (%rax), %mm2
     60 
     61 phsubw      %xmm0, %xmm2
     62 phsubw      (%rax), %xmm2
     63 
     64 pmaddubsw   %mm0, %mm2
     65 pmaddubsw   (%rax), %mm2
     66 
     67 pmaddubsw   %xmm0, %xmm2
     68 pmaddubsw   (%rax), %xmm2
     69 
     70 pmulhrsw    %mm0, %mm2
     71 pmulhrsw    (%rax), %mm2
     72 
     73 pmulhrsw    %xmm0, %xmm2
     74 pmulhrsw    (%rax), %xmm2
     75 
     76 pshufb      %mm0, %mm2
     77 pshufb      (%rax), %mm2
     78 
     79 pshufb      %xmm0, %xmm2
     80 pshufb      (%rax), %xmm2
     81 
     82 psignb      %mm0, %mm2
     83 psignb      (%rax), %mm2
     84 
     85 psignb      %xmm0, %xmm2
     86 psignb      (%rax), %xmm2
     87 
     88 psignd      %mm0, %mm2
     89 psignd      (%rax), %mm2
     90 
     91 psignd      %xmm0, %xmm2
     92 psignd      (%rax), %xmm2
     93 
     94 psignw      %mm0, %mm2
     95 psignw      (%rax), %mm2
     96 
     97 psignw      %xmm0, %xmm2
     98 psignw      (%rax), %xmm2
     99 
    100 # CHECK:      Instruction Info:
    101 # CHECK-NEXT: [1]: #uOps
    102 # CHECK-NEXT: [2]: Latency
    103 # CHECK-NEXT: [3]: RThroughput
    104 # CHECK-NEXT: [4]: MayLoad
    105 # CHECK-NEXT: [5]: MayStore
    106 # CHECK-NEXT: [6]: HasSideEffects (U)
    107 
    108 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
    109 # CHECK-NEXT:  1      1     0.50                        pabsb	%mm0, %mm2
    110 # CHECK-NEXT:  2      6     0.50    *                   pabsb	(%rax), %mm2
    111 # CHECK-NEXT:  1      1     0.50                        pabsb	%xmm0, %xmm2
    112 # CHECK-NEXT:  2      7     0.50    *                   pabsb	(%rax), %xmm2
    113 # CHECK-NEXT:  1      1     0.50                        pabsd	%mm0, %mm2
    114 # CHECK-NEXT:  2      6     0.50    *                   pabsd	(%rax), %mm2
    115 # CHECK-NEXT:  1      1     0.50                        pabsd	%xmm0, %xmm2
    116 # CHECK-NEXT:  2      7     0.50    *                   pabsd	(%rax), %xmm2
    117 # CHECK-NEXT:  1      1     0.50                        pabsw	%mm0, %mm2
    118 # CHECK-NEXT:  2      6     0.50    *                   pabsw	(%rax), %mm2
    119 # CHECK-NEXT:  1      1     0.50                        pabsw	%xmm0, %xmm2
    120 # CHECK-NEXT:  2      7     0.50    *                   pabsw	(%rax), %xmm2
    121 # CHECK-NEXT:  1      1     1.00                        palignr	$1, %mm0, %mm2
    122 # CHECK-NEXT:  2      6     1.00    *                   palignr	$1, (%rax), %mm2
    123 # CHECK-NEXT:  1      1     1.00                        palignr	$1, %xmm0, %xmm2
    124 # CHECK-NEXT:  2      7     1.00    *                   palignr	$1, (%rax), %xmm2
    125 # CHECK-NEXT:  3      3     2.00                        phaddd	%mm0, %mm2
    126 # CHECK-NEXT:  4      8     2.00    *                   phaddd	(%rax), %mm2
    127 # CHECK-NEXT:  3      3     2.00                        phaddd	%xmm0, %xmm2
    128 # CHECK-NEXT:  4      9     2.00    *                   phaddd	(%rax), %xmm2
    129 # CHECK-NEXT:  3      3     2.00                        phaddsw	%mm0, %mm2
    130 # CHECK-NEXT:  4      8     2.00    *                   phaddsw	(%rax), %mm2
    131 # CHECK-NEXT:  3      3     2.00                        phaddsw	%xmm0, %xmm2
    132 # CHECK-NEXT:  4      9     2.00    *                   phaddsw	(%rax), %xmm2
    133 # CHECK-NEXT:  3      3     2.00                        phaddw	%mm0, %mm2
    134 # CHECK-NEXT:  4      8     2.00    *                   phaddw	(%rax), %mm2
    135 # CHECK-NEXT:  3      3     2.00                        phaddw	%xmm0, %xmm2
    136 # CHECK-NEXT:  4      9     2.00    *                   phaddw	(%rax), %xmm2
    137 # CHECK-NEXT:  3      3     2.00                        phsubd	%mm0, %mm2
    138 # CHECK-NEXT:  4      8     2.00    *                   phsubd	(%rax), %mm2
    139 # CHECK-NEXT:  3      3     2.00                        phsubd	%xmm0, %xmm2
    140 # CHECK-NEXT:  4      9     2.00    *                   phsubd	(%rax), %xmm2
    141 # CHECK-NEXT:  3      3     2.00                        phsubsw	%mm0, %mm2
    142 # CHECK-NEXT:  4      8     2.00    *                   phsubsw	(%rax), %mm2
    143 # CHECK-NEXT:  3      3     2.00                        phsubsw	%xmm0, %xmm2
    144 # CHECK-NEXT:  4      9     2.00    *                   phsubsw	(%rax), %xmm2
    145 # CHECK-NEXT:  3      3     2.00                        phsubw	%mm0, %mm2
    146 # CHECK-NEXT:  4      8     2.00    *                   phsubw	(%rax), %mm2
    147 # CHECK-NEXT:  3      3     2.00                        phsubw	%xmm0, %xmm2
    148 # CHECK-NEXT:  4      9     2.00    *                   phsubw	(%rax), %xmm2
    149 # CHECK-NEXT:  1      4     1.00                        pmaddubsw	%mm0, %mm2
    150 # CHECK-NEXT:  2      9     1.00    *                   pmaddubsw	(%rax), %mm2
    151 # CHECK-NEXT:  1      4     0.50                        pmaddubsw	%xmm0, %xmm2
    152 # CHECK-NEXT:  2      10    0.50    *                   pmaddubsw	(%rax), %xmm2
    153 # CHECK-NEXT:  1      4     1.00                        pmulhrsw	%mm0, %mm2
    154 # CHECK-NEXT:  2      9     1.00    *                   pmulhrsw	(%rax), %mm2
    155 # CHECK-NEXT:  1      4     0.50                        pmulhrsw	%xmm0, %xmm2
    156 # CHECK-NEXT:  2      10    0.50    *                   pmulhrsw	(%rax), %xmm2
    157 # CHECK-NEXT:  1      1     1.00                        pshufb	%mm0, %mm2
    158 # CHECK-NEXT:  2      6     1.00    *                   pshufb	(%rax), %mm2
    159 # CHECK-NEXT:  1      1     1.00                        pshufb	%xmm0, %xmm2
    160 # CHECK-NEXT:  2      7     1.00    *                   pshufb	(%rax), %xmm2
    161 # CHECK-NEXT:  1      1     0.50                        psignb	%mm0, %mm2
    162 # CHECK-NEXT:  2      6     0.50    *                   psignb	(%rax), %mm2
    163 # CHECK-NEXT:  1      1     0.50                        psignb	%xmm0, %xmm2
    164 # CHECK-NEXT:  2      7     0.50    *                   psignb	(%rax), %xmm2
    165 # CHECK-NEXT:  1      1     0.50                        psignd	%mm0, %mm2
    166 # CHECK-NEXT:  2      6     0.50    *                   psignd	(%rax), %mm2
    167 # CHECK-NEXT:  1      1     0.50                        psignd	%xmm0, %xmm2
    168 # CHECK-NEXT:  2      7     0.50    *                   psignd	(%rax), %xmm2
    169 # CHECK-NEXT:  1      1     0.50                        psignw	%mm0, %mm2
    170 # CHECK-NEXT:  2      6     0.50    *                   psignw	(%rax), %mm2
    171 # CHECK-NEXT:  1      1     0.50                        psignw	%xmm0, %xmm2
    172 # CHECK-NEXT:  2      7     0.50    *                   psignw	(%rax), %xmm2
    173 
    174 # CHECK:      Resources:
    175 # CHECK-NEXT: [0]   - SKXDivider
    176 # CHECK-NEXT: [1]   - SKXFPDivider
    177 # CHECK-NEXT: [2]   - SKXPort0
    178 # CHECK-NEXT: [3]   - SKXPort1
    179 # CHECK-NEXT: [4]   - SKXPort2
    180 # CHECK-NEXT: [5]   - SKXPort3
    181 # CHECK-NEXT: [6]   - SKXPort4
    182 # CHECK-NEXT: [7]   - SKXPort5
    183 # CHECK-NEXT: [8]   - SKXPort6
    184 # CHECK-NEXT: [9]   - SKXPort7
    185 
    186 # CHECK:      Resource pressure per iteration:
    187 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
    188 # CHECK-NEXT:  -      -     30.67  12.67  16.00  16.00   -     68.67   -      -
    189 
    190 # CHECK:      Resource pressure by instruction:
    191 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
    192 # CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     pabsb	%mm0, %mm2
    193 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     pabsb	(%rax), %mm2
    194 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     pabsb	%xmm0, %xmm2
    195 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     pabsb	(%rax), %xmm2
    196 # CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     pabsd	%mm0, %mm2
    197 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     pabsd	(%rax), %mm2
    198 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     pabsd	%xmm0, %xmm2
    199 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     pabsd	(%rax), %xmm2
    200 # CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     pabsw	%mm0, %mm2
    201 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     pabsw	(%rax), %mm2
    202 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     pabsw	%xmm0, %xmm2
    203 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     pabsw	(%rax), %xmm2
    204 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     palignr	$1, %mm0, %mm2
    205 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     palignr	$1, (%rax), %mm2
    206 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     palignr	$1, %xmm0, %xmm2
    207 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     palignr	$1, (%rax), %xmm2
    208 # CHECK-NEXT:  -      -     0.50    -      -      -      -     2.50    -      -     phaddd	%mm0, %mm2
    209 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     2.50    -      -     phaddd	(%rax), %mm2
    210 # CHECK-NEXT:  -      -     0.33   0.33    -      -      -     2.33    -      -     phaddd	%xmm0, %xmm2
    211 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     2.33    -      -     phaddd	(%rax), %xmm2
    212 # CHECK-NEXT:  -      -     1.00    -      -      -      -     2.00    -      -     phaddsw	%mm0, %mm2
    213 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -     2.00    -      -     phaddsw	(%rax), %mm2
    214 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -     2.00    -      -     phaddsw	%xmm0, %xmm2
    215 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -     2.00    -      -     phaddsw	(%rax), %xmm2
    216 # CHECK-NEXT:  -      -     0.50    -      -      -      -     2.50    -      -     phaddw	%mm0, %mm2
    217 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     2.50    -      -     phaddw	(%rax), %mm2
    218 # CHECK-NEXT:  -      -     0.33   0.33    -      -      -     2.33    -      -     phaddw	%xmm0, %xmm2
    219 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     2.33    -      -     phaddw	(%rax), %xmm2
    220 # CHECK-NEXT:  -      -     0.50    -      -      -      -     2.50    -      -     phsubd	%mm0, %mm2
    221 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     2.50    -      -     phsubd	(%rax), %mm2
    222 # CHECK-NEXT:  -      -     0.33   0.33    -      -      -     2.33    -      -     phsubd	%xmm0, %xmm2
    223 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     2.33    -      -     phsubd	(%rax), %xmm2
    224 # CHECK-NEXT:  -      -     1.00    -      -      -      -     2.00    -      -     phsubsw	%mm0, %mm2
    225 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -     2.00    -      -     phsubsw	(%rax), %mm2
    226 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -     2.00    -      -     phsubsw	%xmm0, %xmm2
    227 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -     2.00    -      -     phsubsw	(%rax), %xmm2
    228 # CHECK-NEXT:  -      -     0.50    -      -      -      -     2.50    -      -     phsubw	%mm0, %mm2
    229 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     2.50    -      -     phsubw	(%rax), %mm2
    230 # CHECK-NEXT:  -      -     0.33   0.33    -      -      -     2.33    -      -     phsubw	%xmm0, %xmm2
    231 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     2.33    -      -     phsubw	(%rax), %xmm2
    232 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     pmaddubsw	%mm0, %mm2
    233 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     pmaddubsw	(%rax), %mm2
    234 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     pmaddubsw	%xmm0, %xmm2
    235 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     pmaddubsw	(%rax), %xmm2
    236 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     pmulhrsw	%mm0, %mm2
    237 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     pmulhrsw	(%rax), %mm2
    238 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     pmulhrsw	%xmm0, %xmm2
    239 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     pmulhrsw	(%rax), %xmm2
    240 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     pshufb	%mm0, %mm2
    241 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     pshufb	(%rax), %mm2
    242 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     pshufb	%xmm0, %xmm2
    243 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     pshufb	(%rax), %xmm2
    244 # CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     psignb	%mm0, %mm2
    245 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     psignb	(%rax), %mm2
    246 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     psignb	%xmm0, %xmm2
    247 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     psignb	(%rax), %xmm2
    248 # CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     psignd	%mm0, %mm2
    249 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     psignd	(%rax), %mm2
    250 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     psignd	%xmm0, %xmm2
    251 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     psignd	(%rax), %xmm2
    252 # CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     psignw	%mm0, %mm2
    253 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     psignw	(%rax), %mm2
    254 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     psignw	%xmm0, %xmm2
    255 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     psignw	(%rax), %xmm2
    256