brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.4 KiB · 134e83f Raw
126 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=100 -resource-pressure=false -timeline -timeline-max-iterations=2 < %s | FileCheck %s3 4# In this test, the VDIVPS takes 38 cycles to write to register YMM3.  The first5# VADDPS does not depend on the VDIVPS (the WAW dependency is eliminated at6# register renaming stage). So the first VADDPS can be executed in parallel to7# the VDIVPS. That VADDPS also writes to register XMM3, and the upper half of8# YMM3 is implicitly cleared. As a consequence, the definition of YMM3 from the9# VDIVPS is killed, and the subsequent VADDPS instructions don't need to wait10# for the VDIVPS to complete.11# The block reciprocal throughput is limited by the VDIVPS reciprocal throughput12# (which is 38 cycles). The sequence of VADDPS can be executed in parallel on13# the FPA unit; their latency is "hidden" by the long latency of the VDIVPS.14 15vdivps %ymm0, %ymm1, %ymm316vaddps %xmm0, %xmm1, %xmm317vaddps %ymm3, %ymm1, %ymm418vaddps %ymm3, %ymm1, %ymm419vaddps %ymm3, %ymm1, %ymm420vaddps %ymm3, %ymm1, %ymm421vaddps %ymm3, %ymm1, %ymm422vaddps %ymm3, %ymm1, %ymm423vaddps %ymm3, %ymm1, %ymm424vaddps %ymm3, %ymm1, %ymm425vaddps %ymm3, %ymm1, %ymm426vaddps %ymm3, %ymm1, %ymm427vaddps %ymm3, %ymm1, %ymm428vaddps %ymm3, %ymm1, %ymm429vaddps %ymm3, %ymm1, %ymm430vaddps %ymm3, %ymm1, %ymm431vaddps %ymm3, %ymm1, %ymm432vandps %xmm4, %xmm1, %xmm033 34# CHECK:      Iterations:        10035# CHECK-NEXT: Instructions:      180036# CHECK-NEXT: Total Cycles:      381137# CHECK-NEXT: Total uOps:        340038 39# CHECK:      Dispatch Width:    240# CHECK-NEXT: uOps Per Cycle:    0.8941# CHECK-NEXT: IPC:               0.4742# CHECK-NEXT: Block RThroughput: 38.043 44# CHECK:      Instruction Info:45# CHECK-NEXT: [1]: #uOps46# CHECK-NEXT: [2]: Latency47# CHECK-NEXT: [3]: RThroughput48# CHECK-NEXT: [4]: MayLoad49# CHECK-NEXT: [5]: MayStore50# CHECK-NEXT: [6]: HasSideEffects (U)51 52# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:53# CHECK-NEXT:  2      38    38.00                       vdivps	%ymm0, %ymm1, %ymm354# CHECK-NEXT:  1      3     1.00                        vaddps	%xmm0, %xmm1, %xmm355# CHECK-NEXT:  2      3     2.00                        vaddps	%ymm3, %ymm1, %ymm456# CHECK-NEXT:  2      3     2.00                        vaddps	%ymm3, %ymm1, %ymm457# CHECK-NEXT:  2      3     2.00                        vaddps	%ymm3, %ymm1, %ymm458# CHECK-NEXT:  2      3     2.00                        vaddps	%ymm3, %ymm1, %ymm459# CHECK-NEXT:  2      3     2.00                        vaddps	%ymm3, %ymm1, %ymm460# CHECK-NEXT:  2      3     2.00                        vaddps	%ymm3, %ymm1, %ymm461# CHECK-NEXT:  2      3     2.00                        vaddps	%ymm3, %ymm1, %ymm462# CHECK-NEXT:  2      3     2.00                        vaddps	%ymm3, %ymm1, %ymm463# CHECK-NEXT:  2      3     2.00                        vaddps	%ymm3, %ymm1, %ymm464# CHECK-NEXT:  2      3     2.00                        vaddps	%ymm3, %ymm1, %ymm465# CHECK-NEXT:  2      3     2.00                        vaddps	%ymm3, %ymm1, %ymm466# CHECK-NEXT:  2      3     2.00                        vaddps	%ymm3, %ymm1, %ymm467# CHECK-NEXT:  2      3     2.00                        vaddps	%ymm3, %ymm1, %ymm468# CHECK-NEXT:  2      3     2.00                        vaddps	%ymm3, %ymm1, %ymm469# CHECK-NEXT:  2      3     2.00                        vaddps	%ymm3, %ymm1, %ymm470# CHECK-NEXT:  1      1     0.50                        vandps	%xmm4, %xmm1, %xmm071 72# CHECK:      Timeline view:73# CHECK-NEXT:                     0123456789          0123456789          0123456789          012345678974# CHECK-NEXT: Index     0123456789          0123456789          0123456789          012345678975 76# CHECK:      [0,0]     DeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeER    .    .    .    .    .    .    .   .   vdivps	%ymm0, %ymm1, %ymm377# CHECK-NEXT: [0,1]     .DeeeE----------------------------------R    .    .    .    .    .    .    .   .   vaddps	%xmm0, %xmm1, %xmm378# CHECK-NEXT: [0,2]     . D==eeeE--------------------------------R   .    .    .    .    .    .    .   .   vaddps	%ymm3, %ymm1, %ymm479# CHECK-NEXT: [0,3]     .  D===eeeE------------------------------R   .    .    .    .    .    .    .   .   vaddps	%ymm3, %ymm1, %ymm480# CHECK-NEXT: [0,4]     .   D====eeeE-----------------------------R  .    .    .    .    .    .    .   .   vaddps	%ymm3, %ymm1, %ymm481# CHECK-NEXT: [0,5]     .    D=====eeeE---------------------------R  .    .    .    .    .    .    .   .   vaddps	%ymm3, %ymm1, %ymm482# CHECK-NEXT: [0,6]     .    .D======eeeE--------------------------R .    .    .    .    .    .    .   .   vaddps	%ymm3, %ymm1, %ymm483# CHECK-NEXT: [0,7]     .    . D=======eeeE------------------------R .    .    .    .    .    .    .   .   vaddps	%ymm3, %ymm1, %ymm484# CHECK-NEXT: [0,8]     .    .  D========eeeE-----------------------R.    .    .    .    .    .    .   .   vaddps	%ymm3, %ymm1, %ymm485# CHECK-NEXT: [0,9]     .    .   D=========eeeE---------------------R.    .    .    .    .    .    .   .   vaddps	%ymm3, %ymm1, %ymm486# CHECK-NEXT: [0,10]    .    .    D==========eeeE--------------------R    .    .    .    .    .    .   .   vaddps	%ymm3, %ymm1, %ymm487# CHECK-NEXT: [0,11]    .    .    .D===========eeeE------------------R    .    .    .    .    .    .   .   vaddps	%ymm3, %ymm1, %ymm488# CHECK-NEXT: [0,12]    .    .    . D============eeeE-----------------R   .    .    .    .    .    .   .   vaddps	%ymm3, %ymm1, %ymm489# CHECK-NEXT: [0,13]    .    .    .  D=============eeeE---------------R   .    .    .    .    .    .   .   vaddps	%ymm3, %ymm1, %ymm490# CHECK-NEXT: [0,14]    .    .    .   D==============eeeE--------------R  .    .    .    .    .    .   .   vaddps	%ymm3, %ymm1, %ymm491# CHECK-NEXT: [0,15]    .    .    .    D===============eeeE------------R  .    .    .    .    .    .   .   vaddps	%ymm3, %ymm1, %ymm492# CHECK-NEXT: [0,16]    .    .    .    .D================eeeE-----------R .    .    .    .    .    .   .   vaddps	%ymm3, %ymm1, %ymm493# CHECK-NEXT: [0,17]    .    .    .    . D==================eE----------R .    .    .    .    .    .   .   vandps	%xmm4, %xmm1, %xmm094# CHECK-NEXT: [1,0]     .    .    .    .  D====================eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeER.   vdivps	%ymm0, %ymm1, %ymm395# CHECK-NEXT: [1,1]     .    .    .    .   D=================eeeE-------------------------------------R.   vaddps	%xmm0, %xmm1, %xmm396# CHECK-NEXT: [1,2]     .    .    .    .    D===================eeeE-----------------------------------R   vaddps	%ymm3, %ymm1, %ymm497# CHECK-NEXT: [1,3]     .    .    .    .    .D====================eeeE---------------------------------R   vaddps	%ymm3, %ymm1, %ymm498# CHECK-NEXT: Truncated display due to cycle limit99 100# CHECK:      Average Wait times (based on the timeline view):101# CHECK-NEXT: [0]: Executions102# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue103# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready104# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage105 106# CHECK:            [0]    [1]    [2]    [3]107# CHECK-NEXT: 0.     2     11.0   1.5    0.0       vdivps	%ymm0, %ymm1, %ymm3108# CHECK-NEXT: 1.     2     9.5    0.5    35.5      vaddps	%xmm0, %xmm1, %xmm3109# CHECK-NEXT: 2.     2     11.5   0.0    33.5      vaddps	%ymm3, %ymm1, %ymm4110# CHECK-NEXT: 3.     2     12.5   2.0    31.5      vaddps	%ymm3, %ymm1, %ymm4111# CHECK-NEXT: 4.     2     13.5   4.0    30.5      vaddps	%ymm3, %ymm1, %ymm4112# CHECK-NEXT: 5.     2     14.5   6.0    28.5      vaddps	%ymm3, %ymm1, %ymm4113# CHECK-NEXT: 6.     2     15.5   7.5    27.5      vaddps	%ymm3, %ymm1, %ymm4114# CHECK-NEXT: 7.     2     16.5   9.0    25.5      vaddps	%ymm3, %ymm1, %ymm4115# CHECK-NEXT: 8.     2     17.5   10.5   24.5      vaddps	%ymm3, %ymm1, %ymm4116# CHECK-NEXT: 9.     2     18.5   12.0   22.5      vaddps	%ymm3, %ymm1, %ymm4117# CHECK-NEXT: 10.    2     19.5   13.5   21.5      vaddps	%ymm3, %ymm1, %ymm4118# CHECK-NEXT: 11.    2     20.5   15.0   19.5      vaddps	%ymm3, %ymm1, %ymm4119# CHECK-NEXT: 12.    2     21.5   16.5   18.5      vaddps	%ymm3, %ymm1, %ymm4120# CHECK-NEXT: 13.    2     22.5   18.0   16.5      vaddps	%ymm3, %ymm1, %ymm4121# CHECK-NEXT: 14.    2     23.5   19.5   15.5      vaddps	%ymm3, %ymm1, %ymm4122# CHECK-NEXT: 15.    2     21.0   21.0   13.5      vaddps	%ymm3, %ymm1, %ymm4123# CHECK-NEXT: 16.    2     22.0   22.0   12.5      vaddps	%ymm3, %ymm1, %ymm4124# CHECK-NEXT: 17.    2     24.0   0.0    11.5      vandps	%xmm4, %xmm1, %xmm0125# CHECK-NEXT:        2     17.5   9.9    21.6      <total>126