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