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 -iterations=1 -all-views=false -timeline < %s | FileCheck %s -check-prefixes=ALL,BARCELONA 3# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1 -all-views=false -timeline < %s | FileCheck %s -check-prefixes=ALL,BDVER2 4# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -all-views=false -timeline < %s | FileCheck %s -check-prefixes=ALL,BTVER2 5# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -all-views=false -timeline < %s | FileCheck %s -check-prefixes=ALL,ZNVER1 6# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver2 -iterations=1 -all-views=false -timeline < %s | FileCheck %s -check-prefixes=ALL,ZNVER2 7# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -all-views=false -timeline < %s | FileCheck %s -check-prefixes=ALL,HASWELL 8# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=1 -all-views=false -timeline < %s | FileCheck %s -check-prefixes=ALL,BROADWELL 9# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=1 -all-views=false -timeline < %s | FileCheck %s -check-prefixes=ALL,SKYLAKE 10# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=icelake-server -iterations=1 -all-views=false -timeline < %s | FileCheck %s -check-prefixes=ALL,SKYLAKE 11 12#LLVM-MCA-BEGIN test_sqrtss 13leaq 8(%rsp, %rdi, 2), %rax 14sqrtss (%rax), %xmm1 15#LLVM-MCA-END 16 17#LLVM-MCA-BEGIN test_sqrtsd 18leaq 8(%rsp, %rdi, 2), %rax 19sqrtsd (%rax), %xmm1 20#LLVM-MCA-END 21 22#LLVM-MCA-BEGIN test_rsqrtss 23leaq 8(%rsp, %rdi, 2), %rax 24rsqrtss (%rax), %xmm1 25#LLVM-MCA-END 26 27#LLVM-MCA-BEGIN test_rcp 28leaq 8(%rsp, %rdi, 2), %rax 29rcpss (%rax), %xmm1 30#LLVM-MCA-END 31 32# ALL: [0] Code Region - test_sqrtss 33 34# ALL: Timeline view: 35 36# BARCELONA-NEXT: 0123456789 37# BARCELONA-NEXT: Index 0123456789 0123 38 39# BDVER2-NEXT: 012345678 40# BDVER2-NEXT: Index 0123456789 41 42# BROADWELL-NEXT: 0123456789 43# BROADWELL-NEXT: Index 0123456789 44 45# BTVER2-NEXT: 0123456789 0 46# BTVER2-NEXT: Index 0123456789 0123456789 47 48# HASWELL-NEXT: 0123456789 49# HASWELL-NEXT: Index 0123456789 50 51# SKYLAKE-NEXT: 0123456789 52# SKYLAKE-NEXT: Index 0123456789 0 53 54# ZNVER1-NEXT: 0123456789 55# ZNVER1-NEXT: Index 0123456789 01234 56 57# ZNVER2-NEXT: 0123456789 58# ZNVER2-NEXT: Index 0123456789 01234 59 60# BARCELONA: [0,0] DeER . . . . . leaq 8(%rsp,%rdi,2), %rax 61# BARCELONA-NEXT: [0,1] D=eeeeeeeeeeeeeeeeeeeeER sqrtss (%rax), %xmm1 62 63# BDVER2: [0,0] DeeER. . . . leaq 8(%rsp,%rdi,2), %rax 64# BDVER2-NEXT: [0,1] D==eeeeeeeeeeeeeeER sqrtss (%rax), %xmm1 65 66# BROADWELL: [0,0] DeER . . . . leaq 8(%rsp,%rdi,2), %rax 67# BROADWELL-NEXT: [0,1] D=eeeeeeeeeeeeeeeeER sqrtss (%rax), %xmm1 68 69# BTVER2: [0,0] DeeER. . . . . . leaq 8(%rsp,%rdi,2), %rax 70# BTVER2-NEXT: [0,1] D==eeeeeeeeeeeeeeeeeeeeeeeeeeER sqrtss (%rax), %xmm1 71 72# HASWELL: [0,0] DeER . . . . leaq 8(%rsp,%rdi,2), %rax 73# HASWELL-NEXT: [0,1] D=eeeeeeeeeeeeeeeeER sqrtss (%rax), %xmm1 74 75# SKYLAKE: [0,0] DeER . . . . leaq 8(%rsp,%rdi,2), %rax 76# SKYLAKE-NEXT: [0,1] D=eeeeeeeeeeeeeeeeeER sqrtss (%rax), %xmm1 77 78# ZNVER1: [0,0] DeER . . . . . leaq 8(%rsp,%rdi,2), %rax 79# ZNVER1-NEXT: [0,1] D=eeeeeeeeeeeeeeeeeeeeeER sqrtss (%rax), %xmm1 80 81# ZNVER2: [0,0] DeER . . . . . leaq 8(%rsp,%rdi,2), %rax 82# ZNVER2-NEXT: [0,1] D=eeeeeeeeeeeeeeeeeeeeeER sqrtss (%rax), %xmm1 83 84# ALL: Average Wait times (based on the timeline view): 85# ALL-NEXT: [0]: Executions 86# ALL-NEXT: [1]: Average time spent waiting in a scheduler's queue 87# ALL-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 88# ALL-NEXT: [3]: Average time elapsed from WB until retire stage 89 90# ALL: [0] [1] [2] [3] 91# ALL-NEXT: 0. 1 1.0 1.0 0.0 leaq 8(%rsp,%rdi,2), %rax 92 93# BARCELONA-NEXT: 1. 1 2.0 0.0 0.0 sqrtss (%rax), %xmm1 94# BARCELONA-NEXT: 1 1.5 0.5 0.0 <total> 95 96# BDVER2-NEXT: 1. 1 3.0 0.0 0.0 sqrtss (%rax), %xmm1 97# BDVER2-NEXT: 1 2.0 0.5 0.0 <total> 98 99# BROADWELL-NEXT: 1. 1 2.0 0.0 0.0 sqrtss (%rax), %xmm1 100# BROADWELL-NEXT: 1 1.5 0.5 0.0 <total> 101 102# BTVER2-NEXT: 1. 1 3.0 0.0 0.0 sqrtss (%rax), %xmm1 103# BTVER2-NEXT: 1 2.0 0.5 0.0 <total> 104 105# HASWELL-NEXT: 1. 1 2.0 0.0 0.0 sqrtss (%rax), %xmm1 106# HASWELL-NEXT: 1 1.5 0.5 0.0 <total> 107 108# SKYLAKE-NEXT: 1. 1 2.0 0.0 0.0 sqrtss (%rax), %xmm1 109# SKYLAKE-NEXT: 1 1.5 0.5 0.0 <total> 110 111# ZNVER1-NEXT: 1. 1 2.0 0.0 0.0 sqrtss (%rax), %xmm1 112# ZNVER1-NEXT: 1 1.5 0.5 0.0 <total> 113 114# ZNVER2-NEXT: 1. 1 2.0 0.0 0.0 sqrtss (%rax), %xmm1 115# ZNVER2-NEXT: 1 1.5 0.5 0.0 <total> 116 117# ALL: [1] Code Region - test_sqrtsd 118 119# ALL: Timeline view: 120 121# BARCELONA-NEXT: 0123456789 0 122# BARCELONA-NEXT: Index 0123456789 0123456789 123 124# BDVER2-NEXT: 012345678 125# BDVER2-NEXT: Index 0123456789 126 127# BROADWELL-NEXT: 0123456789 128# BROADWELL-NEXT: Index 0123456789 01234 129 130# BTVER2-NEXT: 0123456789 0123456 131# BTVER2-NEXT: Index 0123456789 0123456789 132 133# HASWELL-NEXT: 0123456789 134# HASWELL-NEXT: Index 0123456789 01234 135 136# SKYLAKE-NEXT: 0123456789 137# SKYLAKE-NEXT: Index 0123456789 0123456 138 139# ZNVER1-NEXT: 0123456789 0 140# ZNVER1-NEXT: Index 0123456789 0123456789 141 142# ZNVER2-NEXT: 0123456789 0 143# ZNVER2-NEXT: Index 0123456789 0123456789 144 145# BARCELONA: [0,0] DeER . . . . . . leaq 8(%rsp,%rdi,2), %rax 146# BARCELONA-NEXT: [0,1] D=eeeeeeeeeeeeeeeeeeeeeeeeeeeER sqrtsd (%rax), %xmm1 147 148# BDVER2: [0,0] DeeER. . . . leaq 8(%rsp,%rdi,2), %rax 149# BDVER2-NEXT: [0,1] D==eeeeeeeeeeeeeeER sqrtsd (%rax), %xmm1 150 151# BROADWELL: [0,0] DeER . . . . . leaq 8(%rsp,%rdi,2), %rax 152# BROADWELL-NEXT: [0,1] D=eeeeeeeeeeeeeeeeeeeeeER sqrtsd (%rax), %xmm1 153 154# BTVER2: [0,0] DeeER. . . . . . .. leaq 8(%rsp,%rdi,2), %rax 155# BTVER2-NEXT: [0,1] D==eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeER sqrtsd (%rax), %xmm1 156 157# HASWELL: [0,0] DeER . . . . . leaq 8(%rsp,%rdi,2), %rax 158# HASWELL-NEXT: [0,1] D=eeeeeeeeeeeeeeeeeeeeeER sqrtsd (%rax), %xmm1 159 160# SKYLAKE: [0,0] DeER . . . . .. leaq 8(%rsp,%rdi,2), %rax 161# SKYLAKE-NEXT: [0,1] D=eeeeeeeeeeeeeeeeeeeeeeeER sqrtsd (%rax), %xmm1 162 163# ZNVER1: [0,0] DeER . . . . . . leaq 8(%rsp,%rdi,2), %rax 164# ZNVER1-NEXT: [0,1] D=eeeeeeeeeeeeeeeeeeeeeeeeeeeER sqrtsd (%rax), %xmm1 165 166# ZNVER2: [0,0] DeER . . . . . . leaq 8(%rsp,%rdi,2), %rax 167# ZNVER2-NEXT: [0,1] D=eeeeeeeeeeeeeeeeeeeeeeeeeeeER sqrtsd (%rax), %xmm1 168 169# ALL: Average Wait times (based on the timeline view): 170# ALL-NEXT: [0]: Executions 171# ALL-NEXT: [1]: Average time spent waiting in a scheduler's queue 172# ALL-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 173# ALL-NEXT: [3]: Average time elapsed from WB until retire stage 174 175# ALL: [0] [1] [2] [3] 176# ALL-NEXT: 0. 1 1.0 1.0 0.0 leaq 8(%rsp,%rdi,2), %rax 177 178# BARCELONA-NEXT: 1. 1 2.0 0.0 0.0 sqrtsd (%rax), %xmm1 179# BARCELONA-NEXT: 1 1.5 0.5 0.0 <total> 180 181# BDVER2-NEXT: 1. 1 3.0 0.0 0.0 sqrtsd (%rax), %xmm1 182# BDVER2-NEXT: 1 2.0 0.5 0.0 <total> 183 184# BROADWELL-NEXT: 1. 1 2.0 0.0 0.0 sqrtsd (%rax), %xmm1 185# BROADWELL-NEXT: 1 1.5 0.5 0.0 <total> 186 187# BTVER2-NEXT: 1. 1 3.0 0.0 0.0 sqrtsd (%rax), %xmm1 188# BTVER2-NEXT: 1 2.0 0.5 0.0 <total> 189 190# HASWELL-NEXT: 1. 1 2.0 0.0 0.0 sqrtsd (%rax), %xmm1 191# HASWELL-NEXT: 1 1.5 0.5 0.0 <total> 192 193# SKYLAKE-NEXT: 1. 1 2.0 0.0 0.0 sqrtsd (%rax), %xmm1 194# SKYLAKE-NEXT: 1 1.5 0.5 0.0 <total> 195 196# ZNVER1-NEXT: 1. 1 2.0 0.0 0.0 sqrtsd (%rax), %xmm1 197# ZNVER1-NEXT: 1 1.5 0.5 0.0 <total> 198 199# ZNVER2-NEXT: 1. 1 2.0 0.0 0.0 sqrtsd (%rax), %xmm1 200# ZNVER2-NEXT: 1 1.5 0.5 0.0 <total> 201 202# ALL: [2] Code Region - test_rsqrtss 203 204# ALL: Timeline view: 205 206# BARCELONA-NEXT: 01234 207# BDVER2-NEXT: 01234 208# BROADWELL-NEXT: 0123 209# BTVER2-NEXT: 01 210# HASWELL-NEXT: 0123 211# SKYLAKE-NEXT: 012 212# ZNVER1-NEXT: 012345 213# ZNVER2-NEXT: 012345 214 215# ALL-NEXT: Index 0123456789 216 217# BARCELONA: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax 218# BARCELONA-NEXT: [0,1] D=eeeeeeeeeeeER rsqrtss (%rax), %xmm1 219 220# BDVER2: [0,0] DeeER. . . leaq 8(%rsp,%rdi,2), %rax 221# BDVER2-NEXT: [0,1] D==eeeeeeeeeeER rsqrtss (%rax), %xmm1 222 223# BROADWELL: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax 224# BROADWELL-NEXT: [0,1] D=eeeeeeeeeeER rsqrtss (%rax), %xmm1 225 226# BTVER2: [0,0] DeeER. .. leaq 8(%rsp,%rdi,2), %rax 227# BTVER2-NEXT: [0,1] D==eeeeeeeER rsqrtss (%rax), %xmm1 228 229# HASWELL: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax 230# HASWELL-NEXT: [0,1] D=eeeeeeeeeeER rsqrtss (%rax), %xmm1 231 232# SKYLAKE: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax 233# SKYLAKE-NEXT: [0,1] D=eeeeeeeeeER rsqrtss (%rax), %xmm1 234 235# ZNVER1: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax 236# ZNVER1-NEXT: [0,1] D=eeeeeeeeeeeeER rsqrtss (%rax), %xmm1 237 238# ZNVER2: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax 239# ZNVER2-NEXT: [0,1] D=eeeeeeeeeeeeER rsqrtss (%rax), %xmm1 240 241# ALL: Average Wait times (based on the timeline view): 242# ALL-NEXT: [0]: Executions 243# ALL-NEXT: [1]: Average time spent waiting in a scheduler's queue 244# ALL-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 245# ALL-NEXT: [3]: Average time elapsed from WB until retire stage 246 247# ALL: [0] [1] [2] [3] 248# ALL-NEXT: 0. 1 1.0 1.0 0.0 leaq 8(%rsp,%rdi,2), %rax 249 250# BARCELONA-NEXT: 1. 1 2.0 0.0 0.0 rsqrtss (%rax), %xmm1 251# BARCELONA-NEXT: 1 1.5 0.5 0.0 <total> 252 253# BDVER2-NEXT: 1. 1 3.0 0.0 0.0 rsqrtss (%rax), %xmm1 254# BDVER2-NEXT: 1 2.0 0.5 0.0 <total> 255 256# BROADWELL-NEXT: 1. 1 2.0 0.0 0.0 rsqrtss (%rax), %xmm1 257# BROADWELL-NEXT: 1 1.5 0.5 0.0 <total> 258 259# BTVER2-NEXT: 1. 1 3.0 0.0 0.0 rsqrtss (%rax), %xmm1 260# BTVER2-NEXT: 1 2.0 0.5 0.0 <total> 261 262# HASWELL-NEXT: 1. 1 2.0 0.0 0.0 rsqrtss (%rax), %xmm1 263# HASWELL-NEXT: 1 1.5 0.5 0.0 <total> 264 265# SKYLAKE-NEXT: 1. 1 2.0 0.0 0.0 rsqrtss (%rax), %xmm1 266# SKYLAKE-NEXT: 1 1.5 0.5 0.0 <total> 267 268# ZNVER1-NEXT: 1. 1 2.0 0.0 0.0 rsqrtss (%rax), %xmm1 269# ZNVER1-NEXT: 1 1.5 0.5 0.0 <total> 270 271# ZNVER2-NEXT: 1. 1 2.0 0.0 0.0 rsqrtss (%rax), %xmm1 272# ZNVER2-NEXT: 1 1.5 0.5 0.0 <total> 273 274# ALL: [3] Code Region - test_rcp 275 276# ALL: Timeline view: 277 278# BARCELONA-NEXT: 01234 279# BDVER2-NEXT: 01234 280# BROADWELL-NEXT: 0123 281# BTVER2-NEXT: 01 282# HASWELL-NEXT: 0123 283# SKYLAKE-NEXT: 012 284# ZNVER1-NEXT: 012345 285# ZNVER2-NEXT: 012345 286 287# ALL-NEXT: Index 0123456789 288 289# BARCELONA: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax 290# BARCELONA-NEXT: [0,1] D=eeeeeeeeeeeER rcpss (%rax), %xmm1 291 292# BDVER2: [0,0] DeeER. . . leaq 8(%rsp,%rdi,2), %rax 293# BDVER2-NEXT: [0,1] D==eeeeeeeeeeER rcpss (%rax), %xmm1 294 295# BROADWELL: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax 296# BROADWELL-NEXT: [0,1] D=eeeeeeeeeeER rcpss (%rax), %xmm1 297 298# BTVER2: [0,0] DeeER. .. leaq 8(%rsp,%rdi,2), %rax 299# BTVER2-NEXT: [0,1] D==eeeeeeeER rcpss (%rax), %xmm1 300 301# HASWELL: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax 302# HASWELL-NEXT: [0,1] D=eeeeeeeeeeER rcpss (%rax), %xmm1 303 304# SKYLAKE: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax 305# SKYLAKE-NEXT: [0,1] D=eeeeeeeeeER rcpss (%rax), %xmm1 306 307# ZNVER1: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax 308# ZNVER1-NEXT: [0,1] D=eeeeeeeeeeeeER rcpss (%rax), %xmm1 309 310# ZNVER2: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax 311# ZNVER2-NEXT: [0,1] D=eeeeeeeeeeeeER rcpss (%rax), %xmm1 312 313# ALL: Average Wait times (based on the timeline view): 314# ALL-NEXT: [0]: Executions 315# ALL-NEXT: [1]: Average time spent waiting in a scheduler's queue 316# ALL-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 317# ALL-NEXT: [3]: Average time elapsed from WB until retire stage 318 319# ALL: [0] [1] [2] [3] 320# ALL-NEXT: 0. 1 1.0 1.0 0.0 leaq 8(%rsp,%rdi,2), %rax 321 322# BARCELONA-NEXT: 1. 1 2.0 0.0 0.0 rcpss (%rax), %xmm1 323# BARCELONA-NEXT: 1 1.5 0.5 0.0 <total> 324 325# BDVER2-NEXT: 1. 1 3.0 0.0 0.0 rcpss (%rax), %xmm1 326# BDVER2-NEXT: 1 2.0 0.5 0.0 <total> 327 328# BROADWELL-NEXT: 1. 1 2.0 0.0 0.0 rcpss (%rax), %xmm1 329# BROADWELL-NEXT: 1 1.5 0.5 0.0 <total> 330 331# BTVER2-NEXT: 1. 1 3.0 0.0 0.0 rcpss (%rax), %xmm1 332# BTVER2-NEXT: 1 2.0 0.5 0.0 <total> 333 334# HASWELL-NEXT: 1. 1 2.0 0.0 0.0 rcpss (%rax), %xmm1 335# HASWELL-NEXT: 1 1.5 0.5 0.0 <total> 336 337# SKYLAKE-NEXT: 1. 1 2.0 0.0 0.0 rcpss (%rax), %xmm1 338# SKYLAKE-NEXT: 1 1.5 0.5 0.0 <total> 339 340# ZNVER1-NEXT: 1. 1 2.0 0.0 0.0 rcpss (%rax), %xmm1 341# ZNVER1-NEXT: 1 1.5 0.5 0.0 <total> 342 343# ZNVER2-NEXT: 1. 1 2.0 0.0 0.0 rcpss (%rax), %xmm1 344# ZNVER2-NEXT: 1 1.5 0.5 0.0 <total> 345