1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=500 < %s | FileCheck %s 3 4# LLVM-MCA-BEGIN 5vcvtsi2ss %ecx, %xmm0, %xmm0 6# LLVM-MCA-END 7 8# LLVM-MCA-BEGIN 9vcvtsi2sd %ecx, %xmm0, %xmm0 10# LLVM-MCA-END 11 12# LLVM-MCA-BEGIN 13cvtsi2ss %ecx, %xmm0 14# LLVM-MCA-END 15 16# LLVM-MCA-BEGIN 17cvtsi2sd %ecx, %xmm0 18# LLVM-MCA-END 19 20# LLVM-MCA-BEGIN 21movd %ecx, %xmm0 22# LLVM-MCA-END 23 24# LLVM-MCA-BEGIN 25movq %rcx, %xmm0 26# LLVM-MCA-END 27 28# CHECK: [0] Code Region 29 30# CHECK: Iterations: 500 31# CHECK-NEXT: Instructions: 500 32# CHECK-NEXT: Total Cycles: 2003 33# CHECK-NEXT: Total uOps: 1000 34 35# CHECK: Dispatch Width: 4 36# CHECK-NEXT: uOps Per Cycle: 0.50 37# CHECK-NEXT: IPC: 0.25 38# CHECK-NEXT: Block RThroughput: 1.0 39 40# CHECK: Instruction Info: 41# CHECK-NEXT: [1]: #uOps 42# CHECK-NEXT: [2]: Latency 43# CHECK-NEXT: [3]: RThroughput 44# CHECK-NEXT: [4]: MayLoad 45# CHECK-NEXT: [5]: MayStore 46# CHECK-NEXT: [6]: HasSideEffects (U) 47 48# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 49# CHECK-NEXT: 2 14 1.00 vcvtsi2ss %ecx, %xmm0, %xmm0 50 51# CHECK: Resources: 52# CHECK-NEXT: [0.0] - PdAGLU01 53# CHECK-NEXT: [0.1] - PdAGLU01 54# CHECK-NEXT: [1] - PdBranch 55# CHECK-NEXT: [2] - PdCount 56# CHECK-NEXT: [3] - PdDiv 57# CHECK-NEXT: [4] - PdEX0 58# CHECK-NEXT: [5] - PdEX1 59# CHECK-NEXT: [6] - PdFPCVT 60# CHECK-NEXT: [7.0] - PdFPFMA 61# CHECK-NEXT: [7.1] - PdFPFMA 62# CHECK-NEXT: [8.0] - PdFPMAL 63# CHECK-NEXT: [8.1] - PdFPMAL 64# CHECK-NEXT: [9] - PdFPMMA 65# CHECK-NEXT: [10] - PdFPSTO 66# CHECK-NEXT: [11] - PdFPU0 67# CHECK-NEXT: [12] - PdFPU1 68# CHECK-NEXT: [13] - PdFPU2 69# CHECK-NEXT: [14] - PdFPU3 70# CHECK-NEXT: [15] - PdFPXBR 71# CHECK-NEXT: [16.0] - PdLoad 72# CHECK-NEXT: [16.1] - PdLoad 73# CHECK-NEXT: [17] - PdMul 74# CHECK-NEXT: [18] - PdStore 75 76# CHECK: Resource pressure per iteration: 77# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] 78# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - 79 80# CHECK: Resource pressure by instruction: 81# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions: 82# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - vcvtsi2ss %ecx, %xmm0, %xmm0 83 84# CHECK: [1] Code Region 85 86# CHECK: Iterations: 500 87# CHECK-NEXT: Instructions: 500 88# CHECK-NEXT: Total Cycles: 2003 89# CHECK-NEXT: Total uOps: 1000 90 91# CHECK: Dispatch Width: 4 92# CHECK-NEXT: uOps Per Cycle: 0.50 93# CHECK-NEXT: IPC: 0.25 94# CHECK-NEXT: Block RThroughput: 1.0 95 96# CHECK: Instruction Info: 97# CHECK-NEXT: [1]: #uOps 98# CHECK-NEXT: [2]: Latency 99# CHECK-NEXT: [3]: RThroughput 100# CHECK-NEXT: [4]: MayLoad 101# CHECK-NEXT: [5]: MayStore 102# CHECK-NEXT: [6]: HasSideEffects (U) 103 104# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 105# CHECK-NEXT: 2 14 1.00 vcvtsi2sd %ecx, %xmm0, %xmm0 106 107# CHECK: Resources: 108# CHECK-NEXT: [0.0] - PdAGLU01 109# CHECK-NEXT: [0.1] - PdAGLU01 110# CHECK-NEXT: [1] - PdBranch 111# CHECK-NEXT: [2] - PdCount 112# CHECK-NEXT: [3] - PdDiv 113# CHECK-NEXT: [4] - PdEX0 114# CHECK-NEXT: [5] - PdEX1 115# CHECK-NEXT: [6] - PdFPCVT 116# CHECK-NEXT: [7.0] - PdFPFMA 117# CHECK-NEXT: [7.1] - PdFPFMA 118# CHECK-NEXT: [8.0] - PdFPMAL 119# CHECK-NEXT: [8.1] - PdFPMAL 120# CHECK-NEXT: [9] - PdFPMMA 121# CHECK-NEXT: [10] - PdFPSTO 122# CHECK-NEXT: [11] - PdFPU0 123# CHECK-NEXT: [12] - PdFPU1 124# CHECK-NEXT: [13] - PdFPU2 125# CHECK-NEXT: [14] - PdFPU3 126# CHECK-NEXT: [15] - PdFPXBR 127# CHECK-NEXT: [16.0] - PdLoad 128# CHECK-NEXT: [16.1] - PdLoad 129# CHECK-NEXT: [17] - PdMul 130# CHECK-NEXT: [18] - PdStore 131 132# CHECK: Resource pressure per iteration: 133# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] 134# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - 135 136# CHECK: Resource pressure by instruction: 137# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions: 138# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - vcvtsi2sd %ecx, %xmm0, %xmm0 139 140# CHECK: [2] Code Region 141 142# CHECK: Iterations: 500 143# CHECK-NEXT: Instructions: 500 144# CHECK-NEXT: Total Cycles: 2003 145# CHECK-NEXT: Total uOps: 1000 146 147# CHECK: Dispatch Width: 4 148# CHECK-NEXT: uOps Per Cycle: 0.50 149# CHECK-NEXT: IPC: 0.25 150# CHECK-NEXT: Block RThroughput: 1.0 151 152# CHECK: Instruction Info: 153# CHECK-NEXT: [1]: #uOps 154# CHECK-NEXT: [2]: Latency 155# CHECK-NEXT: [3]: RThroughput 156# CHECK-NEXT: [4]: MayLoad 157# CHECK-NEXT: [5]: MayStore 158# CHECK-NEXT: [6]: HasSideEffects (U) 159 160# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 161# CHECK-NEXT: 2 14 1.00 cvtsi2ss %ecx, %xmm0 162 163# CHECK: Resources: 164# CHECK-NEXT: [0.0] - PdAGLU01 165# CHECK-NEXT: [0.1] - PdAGLU01 166# CHECK-NEXT: [1] - PdBranch 167# CHECK-NEXT: [2] - PdCount 168# CHECK-NEXT: [3] - PdDiv 169# CHECK-NEXT: [4] - PdEX0 170# CHECK-NEXT: [5] - PdEX1 171# CHECK-NEXT: [6] - PdFPCVT 172# CHECK-NEXT: [7.0] - PdFPFMA 173# CHECK-NEXT: [7.1] - PdFPFMA 174# CHECK-NEXT: [8.0] - PdFPMAL 175# CHECK-NEXT: [8.1] - PdFPMAL 176# CHECK-NEXT: [9] - PdFPMMA 177# CHECK-NEXT: [10] - PdFPSTO 178# CHECK-NEXT: [11] - PdFPU0 179# CHECK-NEXT: [12] - PdFPU1 180# CHECK-NEXT: [13] - PdFPU2 181# CHECK-NEXT: [14] - PdFPU3 182# CHECK-NEXT: [15] - PdFPXBR 183# CHECK-NEXT: [16.0] - PdLoad 184# CHECK-NEXT: [16.1] - PdLoad 185# CHECK-NEXT: [17] - PdMul 186# CHECK-NEXT: [18] - PdStore 187 188# CHECK: Resource pressure per iteration: 189# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] 190# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - 191 192# CHECK: Resource pressure by instruction: 193# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions: 194# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - cvtsi2ss %ecx, %xmm0 195 196# CHECK: [3] Code Region 197 198# CHECK: Iterations: 500 199# CHECK-NEXT: Instructions: 500 200# CHECK-NEXT: Total Cycles: 2003 201# CHECK-NEXT: Total uOps: 1000 202 203# CHECK: Dispatch Width: 4 204# CHECK-NEXT: uOps Per Cycle: 0.50 205# CHECK-NEXT: IPC: 0.25 206# CHECK-NEXT: Block RThroughput: 1.0 207 208# CHECK: Instruction Info: 209# CHECK-NEXT: [1]: #uOps 210# CHECK-NEXT: [2]: Latency 211# CHECK-NEXT: [3]: RThroughput 212# CHECK-NEXT: [4]: MayLoad 213# CHECK-NEXT: [5]: MayStore 214# CHECK-NEXT: [6]: HasSideEffects (U) 215 216# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 217# CHECK-NEXT: 2 14 1.00 cvtsi2sd %ecx, %xmm0 218 219# CHECK: Resources: 220# CHECK-NEXT: [0.0] - PdAGLU01 221# CHECK-NEXT: [0.1] - PdAGLU01 222# CHECK-NEXT: [1] - PdBranch 223# CHECK-NEXT: [2] - PdCount 224# CHECK-NEXT: [3] - PdDiv 225# CHECK-NEXT: [4] - PdEX0 226# CHECK-NEXT: [5] - PdEX1 227# CHECK-NEXT: [6] - PdFPCVT 228# CHECK-NEXT: [7.0] - PdFPFMA 229# CHECK-NEXT: [7.1] - PdFPFMA 230# CHECK-NEXT: [8.0] - PdFPMAL 231# CHECK-NEXT: [8.1] - PdFPMAL 232# CHECK-NEXT: [9] - PdFPMMA 233# CHECK-NEXT: [10] - PdFPSTO 234# CHECK-NEXT: [11] - PdFPU0 235# CHECK-NEXT: [12] - PdFPU1 236# CHECK-NEXT: [13] - PdFPU2 237# CHECK-NEXT: [14] - PdFPU3 238# CHECK-NEXT: [15] - PdFPXBR 239# CHECK-NEXT: [16.0] - PdLoad 240# CHECK-NEXT: [16.1] - PdLoad 241# CHECK-NEXT: [17] - PdMul 242# CHECK-NEXT: [18] - PdStore 243 244# CHECK: Resource pressure per iteration: 245# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] 246# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - 247 248# CHECK: Resource pressure by instruction: 249# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions: 250# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - cvtsi2sd %ecx, %xmm0 251 252# CHECK: [4] Code Region 253 254# CHECK: Iterations: 500 255# CHECK-NEXT: Instructions: 500 256# CHECK-NEXT: Total Cycles: 512 257# CHECK-NEXT: Total uOps: 1000 258 259# CHECK: Dispatch Width: 4 260# CHECK-NEXT: uOps Per Cycle: 1.95 261# CHECK-NEXT: IPC: 0.98 262# CHECK-NEXT: Block RThroughput: 1.0 263 264# CHECK: Instruction Info: 265# CHECK-NEXT: [1]: #uOps 266# CHECK-NEXT: [2]: Latency 267# CHECK-NEXT: [3]: RThroughput 268# CHECK-NEXT: [4]: MayLoad 269# CHECK-NEXT: [5]: MayStore 270# CHECK-NEXT: [6]: HasSideEffects (U) 271 272# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 273# CHECK-NEXT: 2 11 1.00 movd %ecx, %xmm0 274 275# CHECK: Resources: 276# CHECK-NEXT: [0.0] - PdAGLU01 277# CHECK-NEXT: [0.1] - PdAGLU01 278# CHECK-NEXT: [1] - PdBranch 279# CHECK-NEXT: [2] - PdCount 280# CHECK-NEXT: [3] - PdDiv 281# CHECK-NEXT: [4] - PdEX0 282# CHECK-NEXT: [5] - PdEX1 283# CHECK-NEXT: [6] - PdFPCVT 284# CHECK-NEXT: [7.0] - PdFPFMA 285# CHECK-NEXT: [7.1] - PdFPFMA 286# CHECK-NEXT: [8.0] - PdFPMAL 287# CHECK-NEXT: [8.1] - PdFPMAL 288# CHECK-NEXT: [9] - PdFPMMA 289# CHECK-NEXT: [10] - PdFPSTO 290# CHECK-NEXT: [11] - PdFPU0 291# CHECK-NEXT: [12] - PdFPU1 292# CHECK-NEXT: [13] - PdFPU2 293# CHECK-NEXT: [14] - PdFPU3 294# CHECK-NEXT: [15] - PdFPXBR 295# CHECK-NEXT: [16.0] - PdLoad 296# CHECK-NEXT: [16.1] - PdLoad 297# CHECK-NEXT: [17] - PdMul 298# CHECK-NEXT: [18] - PdStore 299 300# CHECK: Resource pressure per iteration: 301# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] 302# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - 303 304# CHECK: Resource pressure by instruction: 305# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions: 306# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - movd %ecx, %xmm0 307 308# CHECK: [5] Code Region 309 310# CHECK: Iterations: 500 311# CHECK-NEXT: Instructions: 500 312# CHECK-NEXT: Total Cycles: 512 313# CHECK-NEXT: Total uOps: 1000 314 315# CHECK: Dispatch Width: 4 316# CHECK-NEXT: uOps Per Cycle: 1.95 317# CHECK-NEXT: IPC: 0.98 318# CHECK-NEXT: Block RThroughput: 1.0 319 320# CHECK: Instruction Info: 321# CHECK-NEXT: [1]: #uOps 322# CHECK-NEXT: [2]: Latency 323# CHECK-NEXT: [3]: RThroughput 324# CHECK-NEXT: [4]: MayLoad 325# CHECK-NEXT: [5]: MayStore 326# CHECK-NEXT: [6]: HasSideEffects (U) 327 328# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 329# CHECK-NEXT: 2 11 1.00 movq %rcx, %xmm0 330 331# CHECK: Resources: 332# CHECK-NEXT: [0.0] - PdAGLU01 333# CHECK-NEXT: [0.1] - PdAGLU01 334# CHECK-NEXT: [1] - PdBranch 335# CHECK-NEXT: [2] - PdCount 336# CHECK-NEXT: [3] - PdDiv 337# CHECK-NEXT: [4] - PdEX0 338# CHECK-NEXT: [5] - PdEX1 339# CHECK-NEXT: [6] - PdFPCVT 340# CHECK-NEXT: [7.0] - PdFPFMA 341# CHECK-NEXT: [7.1] - PdFPFMA 342# CHECK-NEXT: [8.0] - PdFPMAL 343# CHECK-NEXT: [8.1] - PdFPMAL 344# CHECK-NEXT: [9] - PdFPMMA 345# CHECK-NEXT: [10] - PdFPSTO 346# CHECK-NEXT: [11] - PdFPU0 347# CHECK-NEXT: [12] - PdFPU1 348# CHECK-NEXT: [13] - PdFPU2 349# CHECK-NEXT: [14] - PdFPU3 350# CHECK-NEXT: [15] - PdFPXBR 351# CHECK-NEXT: [16.0] - PdLoad 352# CHECK-NEXT: [16.1] - PdLoad 353# CHECK-NEXT: [17] - PdMul 354# CHECK-NEXT: [18] - PdStore 355 356# CHECK: Resource pressure per iteration: 357# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] 358# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - 359 360# CHECK: Resource pressure by instruction: 361# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions: 362# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - movq %rcx, %xmm0 363