1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,SANDY 3 4# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=ivybridge -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,IVY 5 6# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,HASWELL 7 8# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,BDWELL 9 10# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,SKYLAKE 11 12# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=icelake-server -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,SKYLAKE 13 14# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,BDVER2 15 16# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,BTVER2 17 18# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,ZNVER1 19 20# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver2 -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,ZNVER2 21 22vaddps %xmm0, %xmm0, %xmm1 23vblendvps %xmm1, (%rdi), %xmm2, %xmm3 24 25# ALL: Iterations: 1 26# ALL-NEXT: Instructions: 2 27 28# BDVER2-NEXT: Total Cycles: 10 29# BDVER2-NEXT: Total uOps: 2 30 31# BDWELL-NEXT: Total Cycles: 10 32# BDWELL-NEXT: Total uOps: 4 33 34# BTVER2-NEXT: Total Cycles: 11 35# BTVER2-NEXT: Total uOps: 4 36 37# HASWELL-NEXT: Total Cycles: 11 38# HASWELL-NEXT: Total uOps: 4 39 40# IVY-NEXT: Total Cycles: 11 41# IVY-NEXT: Total uOps: 4 42 43# SANDY-NEXT: Total Cycles: 11 44# SANDY-NEXT: Total uOps: 4 45 46# SKYLAKE-NEXT: Total Cycles: 11 47# SKYLAKE-NEXT: Total uOps: 4 48 49# ZNVER1-NEXT: Total Cycles: 11 50# ZNVER1-NEXT: Total uOps: 2 51 52# ZNVER2-NEXT: Total Cycles: 11 53# ZNVER2-NEXT: Total uOps: 2 54 55# BDVER2: Dispatch Width: 4 56# BDVER2-NEXT: uOps Per Cycle: 0.20 57# BDVER2-NEXT: IPC: 0.20 58# BDVER2-NEXT: Block RThroughput: 1.5 59 60# BDWELL: Dispatch Width: 4 61# BDWELL-NEXT: uOps Per Cycle: 0.40 62# BDWELL-NEXT: IPC: 0.20 63# BDWELL-NEXT: Block RThroughput: 2.0 64 65# BTVER2: Dispatch Width: 2 66# BTVER2-NEXT: uOps Per Cycle: 0.36 67# BTVER2-NEXT: IPC: 0.18 68# BTVER2-NEXT: Block RThroughput: 2.0 69 70# HASWELL: Dispatch Width: 4 71# HASWELL-NEXT: uOps Per Cycle: 0.36 72# HASWELL-NEXT: IPC: 0.18 73# HASWELL-NEXT: Block RThroughput: 2.0 74 75# IVY: Dispatch Width: 4 76# IVY-NEXT: uOps Per Cycle: 0.36 77# IVY-NEXT: IPC: 0.18 78# IVY-NEXT: Block RThroughput: 1.0 79 80# SANDY: Dispatch Width: 4 81# SANDY-NEXT: uOps Per Cycle: 0.36 82# SANDY-NEXT: IPC: 0.18 83# SANDY-NEXT: Block RThroughput: 1.0 84 85# SKYLAKE: Dispatch Width: 6 86# SKYLAKE-NEXT: uOps Per Cycle: 0.36 87# SKYLAKE-NEXT: IPC: 0.18 88# SKYLAKE-NEXT: Block RThroughput: 0.7 89 90# ZNVER1: Dispatch Width: 4 91# ZNVER1-NEXT: uOps Per Cycle: 0.18 92# ZNVER1-NEXT: IPC: 0.18 93# ZNVER1-NEXT: Block RThroughput: 0.5 94 95# ZNVER2: Dispatch Width: 4 96# ZNVER2-NEXT: uOps Per Cycle: 0.18 97# ZNVER2-NEXT: IPC: 0.18 98# ZNVER2-NEXT: Block RThroughput: 0.5 99 100# BDVER2: Timeline view: 101# BDVER2-NEXT: Index 0123456789 102 103# BDWELL: Timeline view: 104# BDWELL-NEXT: Index 0123456789 105 106# BTVER2: Timeline view: 107# BTVER2-NEXT: 0 108# BTVER2-NEXT: Index 0123456789 109 110# HASWELL: Timeline view: 111# HASWELL-NEXT: 0 112# HASWELL-NEXT: Index 0123456789 113 114# IVY: Timeline view: 115# IVY-NEXT: 0 116# IVY-NEXT: Index 0123456789 117 118# SANDY: Timeline view: 119# SANDY-NEXT: 0 120# SANDY-NEXT: Index 0123456789 121 122# SKYLAKE: Timeline view: 123# SKYLAKE-NEXT: 0 124# SKYLAKE-NEXT: Index 0123456789 125 126# ZNVER1: Timeline view: 127# ZNVER1-NEXT: 0 128# ZNVER1-NEXT: Index 0123456789 129 130# ZNVER2: Timeline view: 131# ZNVER2-NEXT: 0 132# ZNVER2-NEXT: Index 0123456789 133 134# BDVER2: [0,0] DeeeeeER . vaddps %xmm0, %xmm0, %xmm1 135# BDVER2-NEXT: [0,1] DeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3 136 137# BDWELL: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1 138# BDWELL-NEXT: [0,1] DeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3 139 140# BTVER2: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1 141# BTVER2-NEXT: [0,1] .DeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3 142 143# HASWELL: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1 144# HASWELL-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3 145 146# IVY: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1 147# IVY-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3 148 149# SANDY: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1 150# SANDY-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3 151 152# SKYLAKE: [0,0] DeeeeER . vaddps %xmm0, %xmm0, %xmm1 153# SKYLAKE-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3 154 155# ZNVER1: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1 156# ZNVER1-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3 157 158# ZNVER2: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1 159# ZNVER2-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3 160 161# ALL: Average Wait times (based on the timeline view): 162# ALL-NEXT: [0]: Executions 163# ALL-NEXT: [1]: Average time spent waiting in a scheduler's queue 164# ALL-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 165# ALL-NEXT: [3]: Average time elapsed from WB until retire stage 166 167# ALL: [0] [1] [2] [3] 168# ALL-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm1 169 170# BDVER2-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3 171# BDVER2-NEXT: 1 1.0 0.5 0.0 <total> 172 173# BDWELL-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3 174# BDWELL-NEXT: 1 1.0 0.5 0.0 <total> 175 176# BTVER2-NEXT: 1. 1 1.0 1.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3 177# BTVER2-NEXT: 1 1.0 1.0 0.0 <total> 178 179# HASWELL-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3 180# HASWELL-NEXT: 1 1.0 0.5 0.0 <total> 181 182# IVY-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3 183# IVY-NEXT: 1 1.0 0.5 0.0 <total> 184 185# SANDY-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3 186# SANDY-NEXT: 1 1.0 0.5 0.0 <total> 187 188# SKYLAKE-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3 189# SKYLAKE-NEXT: 1 1.0 0.5 0.0 <total> 190 191# ZNVER1-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3 192# ZNVER1-NEXT: 1 1.0 0.5 0.0 <total> 193 194# ZNVER2-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3 195# ZNVER2-NEXT: 1 1.0 0.5 0.0 <total> 196