1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -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: 2 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 10 1.00 vcvtsi2ss %ecx, %xmm0, %xmm0 50 51# CHECK: Resources: 52# CHECK-NEXT: [0] - JALU0 53# CHECK-NEXT: [1] - JALU1 54# CHECK-NEXT: [2] - JDiv 55# CHECK-NEXT: [3] - JFPA 56# CHECK-NEXT: [4] - JFPM 57# CHECK-NEXT: [5] - JFPU0 58# CHECK-NEXT: [6] - JFPU1 59# CHECK-NEXT: [7] - JLAGU 60# CHECK-NEXT: [8] - JMul 61# CHECK-NEXT: [9] - JSAGU 62# CHECK-NEXT: [10] - JSTC 63# CHECK-NEXT: [11] - JVALU0 64# CHECK-NEXT: [12] - JVALU1 65# CHECK-NEXT: [13] - JVIMUL 66 67# CHECK: Resource pressure per iteration: 68# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 69# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - 70 71# CHECK: Resource pressure by instruction: 72# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: 73# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - vcvtsi2ss %ecx, %xmm0, %xmm0 74 75# CHECK: [1] Code Region 76 77# CHECK: Iterations: 500 78# CHECK-NEXT: Instructions: 500 79# CHECK-NEXT: Total Cycles: 2003 80# CHECK-NEXT: Total uOps: 1000 81 82# CHECK: Dispatch Width: 2 83# CHECK-NEXT: uOps Per Cycle: 0.50 84# CHECK-NEXT: IPC: 0.25 85# CHECK-NEXT: Block RThroughput: 1.0 86 87# CHECK: Instruction Info: 88# CHECK-NEXT: [1]: #uOps 89# CHECK-NEXT: [2]: Latency 90# CHECK-NEXT: [3]: RThroughput 91# CHECK-NEXT: [4]: MayLoad 92# CHECK-NEXT: [5]: MayStore 93# CHECK-NEXT: [6]: HasSideEffects (U) 94 95# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 96# CHECK-NEXT: 2 10 1.00 vcvtsi2sd %ecx, %xmm0, %xmm0 97 98# CHECK: Resources: 99# CHECK-NEXT: [0] - JALU0 100# CHECK-NEXT: [1] - JALU1 101# CHECK-NEXT: [2] - JDiv 102# CHECK-NEXT: [3] - JFPA 103# CHECK-NEXT: [4] - JFPM 104# CHECK-NEXT: [5] - JFPU0 105# CHECK-NEXT: [6] - JFPU1 106# CHECK-NEXT: [7] - JLAGU 107# CHECK-NEXT: [8] - JMul 108# CHECK-NEXT: [9] - JSAGU 109# CHECK-NEXT: [10] - JSTC 110# CHECK-NEXT: [11] - JVALU0 111# CHECK-NEXT: [12] - JVALU1 112# CHECK-NEXT: [13] - JVIMUL 113 114# CHECK: Resource pressure per iteration: 115# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 116# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - 117 118# CHECK: Resource pressure by instruction: 119# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: 120# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - vcvtsi2sd %ecx, %xmm0, %xmm0 121 122# CHECK: [2] Code Region 123 124# CHECK: Iterations: 500 125# CHECK-NEXT: Instructions: 500 126# CHECK-NEXT: Total Cycles: 2003 127# CHECK-NEXT: Total uOps: 1000 128 129# CHECK: Dispatch Width: 2 130# CHECK-NEXT: uOps Per Cycle: 0.50 131# CHECK-NEXT: IPC: 0.25 132# CHECK-NEXT: Block RThroughput: 1.0 133 134# CHECK: Instruction Info: 135# CHECK-NEXT: [1]: #uOps 136# CHECK-NEXT: [2]: Latency 137# CHECK-NEXT: [3]: RThroughput 138# CHECK-NEXT: [4]: MayLoad 139# CHECK-NEXT: [5]: MayStore 140# CHECK-NEXT: [6]: HasSideEffects (U) 141 142# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 143# CHECK-NEXT: 2 10 1.00 cvtsi2ss %ecx, %xmm0 144 145# CHECK: Resources: 146# CHECK-NEXT: [0] - JALU0 147# CHECK-NEXT: [1] - JALU1 148# CHECK-NEXT: [2] - JDiv 149# CHECK-NEXT: [3] - JFPA 150# CHECK-NEXT: [4] - JFPM 151# CHECK-NEXT: [5] - JFPU0 152# CHECK-NEXT: [6] - JFPU1 153# CHECK-NEXT: [7] - JLAGU 154# CHECK-NEXT: [8] - JMul 155# CHECK-NEXT: [9] - JSAGU 156# CHECK-NEXT: [10] - JSTC 157# CHECK-NEXT: [11] - JVALU0 158# CHECK-NEXT: [12] - JVALU1 159# CHECK-NEXT: [13] - JVIMUL 160 161# CHECK: Resource pressure per iteration: 162# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 163# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - 164 165# CHECK: Resource pressure by instruction: 166# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: 167# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - cvtsi2ss %ecx, %xmm0 168 169# CHECK: [3] Code Region 170 171# CHECK: Iterations: 500 172# CHECK-NEXT: Instructions: 500 173# CHECK-NEXT: Total Cycles: 2003 174# CHECK-NEXT: Total uOps: 1000 175 176# CHECK: Dispatch Width: 2 177# CHECK-NEXT: uOps Per Cycle: 0.50 178# CHECK-NEXT: IPC: 0.25 179# CHECK-NEXT: Block RThroughput: 1.0 180 181# CHECK: Instruction Info: 182# CHECK-NEXT: [1]: #uOps 183# CHECK-NEXT: [2]: Latency 184# CHECK-NEXT: [3]: RThroughput 185# CHECK-NEXT: [4]: MayLoad 186# CHECK-NEXT: [5]: MayStore 187# CHECK-NEXT: [6]: HasSideEffects (U) 188 189# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 190# CHECK-NEXT: 2 10 1.00 cvtsi2sd %ecx, %xmm0 191 192# CHECK: Resources: 193# CHECK-NEXT: [0] - JALU0 194# CHECK-NEXT: [1] - JALU1 195# CHECK-NEXT: [2] - JDiv 196# CHECK-NEXT: [3] - JFPA 197# CHECK-NEXT: [4] - JFPM 198# CHECK-NEXT: [5] - JFPU0 199# CHECK-NEXT: [6] - JFPU1 200# CHECK-NEXT: [7] - JLAGU 201# CHECK-NEXT: [8] - JMul 202# CHECK-NEXT: [9] - JSAGU 203# CHECK-NEXT: [10] - JSTC 204# CHECK-NEXT: [11] - JVALU0 205# CHECK-NEXT: [12] - JVALU1 206# CHECK-NEXT: [13] - JVIMUL 207 208# CHECK: Resource pressure per iteration: 209# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 210# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - 211 212# CHECK: Resource pressure by instruction: 213# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: 214# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - cvtsi2sd %ecx, %xmm0 215 216# CHECK: [4] Code Region 217 218# CHECK: Iterations: 500 219# CHECK-NEXT: Instructions: 500 220# CHECK-NEXT: Total Cycles: 510 221# CHECK-NEXT: Total uOps: 1000 222 223# CHECK: Dispatch Width: 2 224# CHECK-NEXT: uOps Per Cycle: 1.96 225# CHECK-NEXT: IPC: 0.98 226# CHECK-NEXT: Block RThroughput: 1.0 227 228# CHECK: Instruction Info: 229# CHECK-NEXT: [1]: #uOps 230# CHECK-NEXT: [2]: Latency 231# CHECK-NEXT: [3]: RThroughput 232# CHECK-NEXT: [4]: MayLoad 233# CHECK-NEXT: [5]: MayStore 234# CHECK-NEXT: [6]: HasSideEffects (U) 235 236# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 237# CHECK-NEXT: 2 8 0.50 movd %ecx, %xmm0 238 239# CHECK: Resources: 240# CHECK-NEXT: [0] - JALU0 241# CHECK-NEXT: [1] - JALU1 242# CHECK-NEXT: [2] - JDiv 243# CHECK-NEXT: [3] - JFPA 244# CHECK-NEXT: [4] - JFPM 245# CHECK-NEXT: [5] - JFPU0 246# CHECK-NEXT: [6] - JFPU1 247# CHECK-NEXT: [7] - JLAGU 248# CHECK-NEXT: [8] - JMul 249# CHECK-NEXT: [9] - JSAGU 250# CHECK-NEXT: [10] - JSTC 251# CHECK-NEXT: [11] - JVALU0 252# CHECK-NEXT: [12] - JVALU1 253# CHECK-NEXT: [13] - JVIMUL 254 255# CHECK: Resource pressure per iteration: 256# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 257# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - 258 259# CHECK: Resource pressure by instruction: 260# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: 261# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - movd %ecx, %xmm0 262 263# CHECK: [5] Code Region 264 265# CHECK: Iterations: 500 266# CHECK-NEXT: Instructions: 500 267# CHECK-NEXT: Total Cycles: 510 268# CHECK-NEXT: Total uOps: 1000 269 270# CHECK: Dispatch Width: 2 271# CHECK-NEXT: uOps Per Cycle: 1.96 272# CHECK-NEXT: IPC: 0.98 273# CHECK-NEXT: Block RThroughput: 1.0 274 275# CHECK: Instruction Info: 276# CHECK-NEXT: [1]: #uOps 277# CHECK-NEXT: [2]: Latency 278# CHECK-NEXT: [3]: RThroughput 279# CHECK-NEXT: [4]: MayLoad 280# CHECK-NEXT: [5]: MayStore 281# CHECK-NEXT: [6]: HasSideEffects (U) 282 283# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 284# CHECK-NEXT: 2 8 0.50 movq %rcx, %xmm0 285 286# CHECK: Resources: 287# CHECK-NEXT: [0] - JALU0 288# CHECK-NEXT: [1] - JALU1 289# CHECK-NEXT: [2] - JDiv 290# CHECK-NEXT: [3] - JFPA 291# CHECK-NEXT: [4] - JFPM 292# CHECK-NEXT: [5] - JFPU0 293# CHECK-NEXT: [6] - JFPU1 294# CHECK-NEXT: [7] - JLAGU 295# CHECK-NEXT: [8] - JMul 296# CHECK-NEXT: [9] - JSAGU 297# CHECK-NEXT: [10] - JSTC 298# CHECK-NEXT: [11] - JVALU0 299# CHECK-NEXT: [12] - JVALU1 300# CHECK-NEXT: [13] - JVIMUL 301 302# CHECK: Resource pressure per iteration: 303# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 304# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - 305 306# CHECK: Resource pressure by instruction: 307# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: 308# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - movq %rcx, %xmm0 309