1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -timeline -register-file-stats -iterations=1 < %s | FileCheck %s 3 4subl %eax, %eax 5subq %rax, %rax 6xorl %eax, %eax 7xorq %rax, %rax 8 9pcmpgtb %mm2, %mm2 10pcmpgtd %mm2, %mm2 11# pcmpgtq %mm2, %mm2 # invalid operand for instruction 12pcmpgtw %mm2, %mm2 13 14pcmpgtb %xmm2, %xmm2 15pcmpgtd %xmm2, %xmm2 16pcmpgtq %xmm2, %xmm2 17pcmpgtw %xmm2, %xmm2 18 19vpcmpgtb %xmm3, %xmm3, %xmm3 20vpcmpgtd %xmm3, %xmm3, %xmm3 21vpcmpgtq %xmm3, %xmm3, %xmm3 22vpcmpgtw %xmm3, %xmm3, %xmm3 23 24vpcmpgtb %xmm3, %xmm3, %xmm5 25vpcmpgtd %xmm3, %xmm3, %xmm5 26vpcmpgtq %xmm3, %xmm3, %xmm5 27vpcmpgtw %xmm3, %xmm3, %xmm5 28 29vpcmpgtb %ymm3, %ymm3, %ymm3 30vpcmpgtd %ymm3, %ymm3, %ymm3 31vpcmpgtq %ymm3, %ymm3, %ymm3 32vpcmpgtw %ymm3, %ymm3, %ymm3 33 34vpcmpgtb %ymm3, %ymm3, %ymm5 35vpcmpgtd %ymm3, %ymm3, %ymm5 36vpcmpgtq %ymm3, %ymm3, %ymm5 37vpcmpgtw %ymm3, %ymm3, %ymm5 38 39psubb %mm2, %mm2 40psubd %mm2, %mm2 41psubq %mm2, %mm2 42psubw %mm2, %mm2 43psubb %xmm2, %xmm2 44psubd %xmm2, %xmm2 45psubq %xmm2, %xmm2 46psubw %xmm2, %xmm2 47vpsubb %xmm3, %xmm3, %xmm3 48vpsubd %xmm3, %xmm3, %xmm3 49vpsubq %xmm3, %xmm3, %xmm3 50vpsubw %xmm3, %xmm3, %xmm3 51vpsubb %ymm3, %ymm3, %ymm3 52vpsubd %ymm3, %ymm3, %ymm3 53vpsubq %ymm3, %ymm3, %ymm3 54vpsubw %ymm3, %ymm3, %ymm3 55 56vpsubb %xmm3, %xmm3, %xmm5 57vpsubd %xmm3, %xmm3, %xmm5 58vpsubq %xmm3, %xmm3, %xmm5 59vpsubw %xmm3, %xmm3, %xmm5 60vpsubb %ymm3, %ymm3, %ymm5 61vpsubd %ymm3, %ymm3, %ymm5 62vpsubq %ymm3, %ymm3, %ymm5 63vpsubw %ymm3, %ymm3, %ymm5 64 65andnps %xmm0, %xmm0 66andnpd %xmm1, %xmm1 67vandnps %xmm2, %xmm2, %xmm2 68vandnpd %xmm1, %xmm1, %xmm1 69vandnps %ymm2, %ymm2, %ymm2 70vandnpd %ymm1, %ymm1, %ymm1 71pandn %mm2, %mm2 72pandn %xmm2, %xmm2 73vpandn %xmm3, %xmm3, %xmm3 74vpandn %ymm3, %ymm3, %ymm3 75 76vandnps %xmm2, %xmm2, %xmm5 77vandnpd %xmm1, %xmm1, %xmm5 78vpandn %xmm3, %xmm3, %xmm5 79vandnps %ymm2, %ymm2, %ymm5 80vandnpd %ymm1, %ymm1, %ymm5 81vpandn %ymm3, %ymm3, %ymm5 82 83xorps %xmm0, %xmm0 84xorpd %xmm1, %xmm1 85vxorps %xmm2, %xmm2, %xmm2 86vxorpd %xmm1, %xmm1, %xmm1 87vxorps %ymm2, %ymm2, %ymm2 88vxorpd %ymm1, %ymm1, %ymm1 89pxor %mm2, %mm2 90pxor %xmm2, %xmm2 91vpxor %xmm3, %xmm3, %xmm3 92vpxor %ymm3, %ymm3, %ymm3 93 94vxorps %xmm4, %xmm4, %xmm5 95vxorpd %xmm1, %xmm1, %xmm3 96vxorps %ymm4, %ymm4, %ymm5 97vxorpd %ymm1, %ymm1, %ymm3 98vpxor %xmm3, %xmm3, %xmm5 99vpxor %ymm3, %ymm3, %ymm5 100 101# CHECK: Iterations: 1 102# CHECK-NEXT: Instructions: 83 103# CHECK-NEXT: Total Cycles: 34 104# CHECK-NEXT: Total uOps: 109 105 106# CHECK: Dispatch Width: 4 107# CHECK-NEXT: uOps Per Cycle: 3.21 108# CHECK-NEXT: IPC: 2.44 109# CHECK-NEXT: Block RThroughput: 27.3 110 111# CHECK: Instruction Info: 112# CHECK-NEXT: [1]: #uOps 113# CHECK-NEXT: [2]: Latency 114# CHECK-NEXT: [3]: RThroughput 115# CHECK-NEXT: [4]: MayLoad 116# CHECK-NEXT: [5]: MayStore 117# CHECK-NEXT: [6]: HasSideEffects (U) 118 119# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 120# CHECK-NEXT: 1 1 0.25 subl %eax, %eax 121# CHECK-NEXT: 1 1 0.25 subq %rax, %rax 122# CHECK-NEXT: 1 1 0.25 xorl %eax, %eax 123# CHECK-NEXT: 1 1 0.25 xorq %rax, %rax 124# CHECK-NEXT: 1 1 0.33 pcmpgtb %mm2, %mm2 125# CHECK-NEXT: 1 1 0.33 pcmpgtd %mm2, %mm2 126# CHECK-NEXT: 1 1 0.33 pcmpgtw %mm2, %mm2 127# CHECK-NEXT: 1 1 0.33 pcmpgtb %xmm2, %xmm2 128# CHECK-NEXT: 1 1 0.33 pcmpgtd %xmm2, %xmm2 129# CHECK-NEXT: 1 1 0.50 pcmpgtq %xmm2, %xmm2 130# CHECK-NEXT: 1 1 0.33 pcmpgtw %xmm2, %xmm2 131# CHECK-NEXT: 1 1 0.33 vpcmpgtb %xmm3, %xmm3, %xmm3 132# CHECK-NEXT: 1 1 0.33 vpcmpgtd %xmm3, %xmm3, %xmm3 133# CHECK-NEXT: 1 1 0.50 vpcmpgtq %xmm3, %xmm3, %xmm3 134# CHECK-NEXT: 1 1 0.33 vpcmpgtw %xmm3, %xmm3, %xmm3 135# CHECK-NEXT: 1 1 0.33 vpcmpgtb %xmm3, %xmm3, %xmm5 136# CHECK-NEXT: 1 1 0.33 vpcmpgtd %xmm3, %xmm3, %xmm5 137# CHECK-NEXT: 1 1 0.50 vpcmpgtq %xmm3, %xmm3, %xmm5 138# CHECK-NEXT: 1 1 0.33 vpcmpgtw %xmm3, %xmm3, %xmm5 139# CHECK-NEXT: 2 1 0.67 vpcmpgtb %ymm3, %ymm3, %ymm3 140# CHECK-NEXT: 2 1 0.67 vpcmpgtd %ymm3, %ymm3, %ymm3 141# CHECK-NEXT: 1 1 0.50 vpcmpgtq %ymm3, %ymm3, %ymm3 142# CHECK-NEXT: 2 1 0.67 vpcmpgtw %ymm3, %ymm3, %ymm3 143# CHECK-NEXT: 2 1 0.67 vpcmpgtb %ymm3, %ymm3, %ymm5 144# CHECK-NEXT: 2 1 0.67 vpcmpgtd %ymm3, %ymm3, %ymm5 145# CHECK-NEXT: 1 1 0.50 vpcmpgtq %ymm3, %ymm3, %ymm5 146# CHECK-NEXT: 2 1 0.67 vpcmpgtw %ymm3, %ymm3, %ymm5 147# CHECK-NEXT: 1 1 0.33 psubb %mm2, %mm2 148# CHECK-NEXT: 1 1 0.33 psubd %mm2, %mm2 149# CHECK-NEXT: 1 1 0.33 psubq %mm2, %mm2 150# CHECK-NEXT: 1 1 0.33 psubw %mm2, %mm2 151# CHECK-NEXT: 1 1 0.33 psubb %xmm2, %xmm2 152# CHECK-NEXT: 1 1 0.33 psubd %xmm2, %xmm2 153# CHECK-NEXT: 1 1 0.33 psubq %xmm2, %xmm2 154# CHECK-NEXT: 1 1 0.33 psubw %xmm2, %xmm2 155# CHECK-NEXT: 1 1 0.33 vpsubb %xmm3, %xmm3, %xmm3 156# CHECK-NEXT: 1 1 0.33 vpsubd %xmm3, %xmm3, %xmm3 157# CHECK-NEXT: 1 1 0.33 vpsubq %xmm3, %xmm3, %xmm3 158# CHECK-NEXT: 1 1 0.33 vpsubw %xmm3, %xmm3, %xmm3 159# CHECK-NEXT: 2 1 0.67 vpsubb %ymm3, %ymm3, %ymm3 160# CHECK-NEXT: 2 1 0.67 vpsubd %ymm3, %ymm3, %ymm3 161# CHECK-NEXT: 2 1 0.67 vpsubq %ymm3, %ymm3, %ymm3 162# CHECK-NEXT: 2 1 0.67 vpsubw %ymm3, %ymm3, %ymm3 163# CHECK-NEXT: 1 1 0.33 vpsubb %xmm3, %xmm3, %xmm5 164# CHECK-NEXT: 1 1 0.33 vpsubd %xmm3, %xmm3, %xmm5 165# CHECK-NEXT: 1 1 0.33 vpsubq %xmm3, %xmm3, %xmm5 166# CHECK-NEXT: 1 1 0.33 vpsubw %xmm3, %xmm3, %xmm5 167# CHECK-NEXT: 2 1 0.67 vpsubb %ymm3, %ymm3, %ymm5 168# CHECK-NEXT: 2 1 0.67 vpsubd %ymm3, %ymm3, %ymm5 169# CHECK-NEXT: 2 1 0.67 vpsubq %ymm3, %ymm3, %ymm5 170# CHECK-NEXT: 2 1 0.67 vpsubw %ymm3, %ymm3, %ymm5 171# CHECK-NEXT: 1 1 0.25 andnps %xmm0, %xmm0 172# CHECK-NEXT: 1 1 0.25 andnpd %xmm1, %xmm1 173# CHECK-NEXT: 1 1 0.25 vandnps %xmm2, %xmm2, %xmm2 174# CHECK-NEXT: 1 1 0.25 vandnpd %xmm1, %xmm1, %xmm1 175# CHECK-NEXT: 2 1 0.50 vandnps %ymm2, %ymm2, %ymm2 176# CHECK-NEXT: 2 1 0.50 vandnpd %ymm1, %ymm1, %ymm1 177# CHECK-NEXT: 1 1 0.25 pandn %mm2, %mm2 178# CHECK-NEXT: 1 1 0.25 pandn %xmm2, %xmm2 179# CHECK-NEXT: 1 1 0.25 vpandn %xmm3, %xmm3, %xmm3 180# CHECK-NEXT: 2 1 0.50 vpandn %ymm3, %ymm3, %ymm3 181# CHECK-NEXT: 1 1 0.25 vandnps %xmm2, %xmm2, %xmm5 182# CHECK-NEXT: 1 1 0.25 vandnpd %xmm1, %xmm1, %xmm5 183# CHECK-NEXT: 1 1 0.25 vpandn %xmm3, %xmm3, %xmm5 184# CHECK-NEXT: 2 1 0.50 vandnps %ymm2, %ymm2, %ymm5 185# CHECK-NEXT: 2 1 0.50 vandnpd %ymm1, %ymm1, %ymm5 186# CHECK-NEXT: 2 1 0.50 vpandn %ymm3, %ymm3, %ymm5 187# CHECK-NEXT: 1 1 0.25 xorps %xmm0, %xmm0 188# CHECK-NEXT: 1 1 0.25 xorpd %xmm1, %xmm1 189# CHECK-NEXT: 1 1 0.25 vxorps %xmm2, %xmm2, %xmm2 190# CHECK-NEXT: 1 1 0.25 vxorpd %xmm1, %xmm1, %xmm1 191# CHECK-NEXT: 2 1 0.50 vxorps %ymm2, %ymm2, %ymm2 192# CHECK-NEXT: 2 1 0.50 vxorpd %ymm1, %ymm1, %ymm1 193# CHECK-NEXT: 1 1 0.25 pxor %mm2, %mm2 194# CHECK-NEXT: 1 1 0.25 pxor %xmm2, %xmm2 195# CHECK-NEXT: 1 1 0.25 vpxor %xmm3, %xmm3, %xmm3 196# CHECK-NEXT: 2 1 0.50 vpxor %ymm3, %ymm3, %ymm3 197# CHECK-NEXT: 1 1 0.25 vxorps %xmm4, %xmm4, %xmm5 198# CHECK-NEXT: 1 1 0.25 vxorpd %xmm1, %xmm1, %xmm3 199# CHECK-NEXT: 2 1 0.50 vxorps %ymm4, %ymm4, %ymm5 200# CHECK-NEXT: 2 1 0.50 vxorpd %ymm1, %ymm1, %ymm3 201# CHECK-NEXT: 1 1 0.25 vpxor %xmm3, %xmm3, %xmm5 202# CHECK-NEXT: 2 1 0.50 vpxor %ymm3, %ymm3, %ymm5 203 204# CHECK: Register File statistics: 205# CHECK-NEXT: Total number of mappings created: 0 206# CHECK-NEXT: Max number of mappings used: 0 207 208# CHECK: * Register File #1 -- ZnFpuPRF: 209# CHECK-NEXT: Number of physical registers: 160 210# CHECK-NEXT: Total number of mappings created: 0 211# CHECK-NEXT: Max number of mappings used: 0 212 213# CHECK: * Register File #2 -- ZnIntegerPRF: 214# CHECK-NEXT: Number of physical registers: 168 215# CHECK-NEXT: Total number of mappings created: 0 216# CHECK-NEXT: Max number of mappings used: 0 217 218# CHECK: Resources: 219# CHECK-NEXT: [0] - ZnAGU0 220# CHECK-NEXT: [1] - ZnAGU1 221# CHECK-NEXT: [2] - ZnALU0 222# CHECK-NEXT: [3] - ZnALU1 223# CHECK-NEXT: [4] - ZnALU2 224# CHECK-NEXT: [5] - ZnALU3 225# CHECK-NEXT: [6] - ZnDivider 226# CHECK-NEXT: [7] - ZnFPU0 227# CHECK-NEXT: [8] - ZnFPU1 228# CHECK-NEXT: [9] - ZnFPU2 229# CHECK-NEXT: [10] - ZnFPU3 230# CHECK-NEXT: [11] - ZnMultiplier 231 232# CHECK: Resource pressure per iteration: 233# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] 234# CHECK-NEXT: - - 1.00 1.00 1.00 1.00 - 30.00 30.00 14.00 31.00 - 235 236# CHECK: Resource pressure by instruction: 237# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: 238# CHECK-NEXT: - - - - - 1.00 - - - - - - subl %eax, %eax 239# CHECK-NEXT: - - - - 1.00 - - - - - - - subq %rax, %rax 240# CHECK-NEXT: - - - 1.00 - - - - - - - - xorl %eax, %eax 241# CHECK-NEXT: - - 1.00 - - - - - - - - - xorq %rax, %rax 242# CHECK-NEXT: - - - - - - - - - - 1.00 - pcmpgtb %mm2, %mm2 243# CHECK-NEXT: - - - - - - - - 1.00 - - - pcmpgtd %mm2, %mm2 244# CHECK-NEXT: - - - - - - - 1.00 - - - - pcmpgtw %mm2, %mm2 245# CHECK-NEXT: - - - - - - - - - - 1.00 - pcmpgtb %xmm2, %xmm2 246# CHECK-NEXT: - - - - - - - - 1.00 - - - pcmpgtd %xmm2, %xmm2 247# CHECK-NEXT: - - - - - - - 1.00 - - - - pcmpgtq %xmm2, %xmm2 248# CHECK-NEXT: - - - - - - - - - - 1.00 - pcmpgtw %xmm2, %xmm2 249# CHECK-NEXT: - - - - - - - - 1.00 - - - vpcmpgtb %xmm3, %xmm3, %xmm3 250# CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpgtd %xmm3, %xmm3, %xmm3 251# CHECK-NEXT: - - - - - - - - - - 1.00 - vpcmpgtq %xmm3, %xmm3, %xmm3 252# CHECK-NEXT: - - - - - - - - 1.00 - - - vpcmpgtw %xmm3, %xmm3, %xmm3 253# CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpgtb %xmm3, %xmm3, %xmm5 254# CHECK-NEXT: - - - - - - - - - - 1.00 - vpcmpgtd %xmm3, %xmm3, %xmm5 255# CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpgtq %xmm3, %xmm3, %xmm5 256# CHECK-NEXT: - - - - - - - - 1.00 - - - vpcmpgtw %xmm3, %xmm3, %xmm5 257# CHECK-NEXT: - - - - - - - - - - 2.00 - vpcmpgtb %ymm3, %ymm3, %ymm3 258# CHECK-NEXT: - - - - - - - - 2.00 - - - vpcmpgtd %ymm3, %ymm3, %ymm3 259# CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpgtq %ymm3, %ymm3, %ymm3 260# CHECK-NEXT: - - - - - - - 2.00 - - - - vpcmpgtw %ymm3, %ymm3, %ymm3 261# CHECK-NEXT: - - - - - - - - - - 2.00 - vpcmpgtb %ymm3, %ymm3, %ymm5 262# CHECK-NEXT: - - - - - - - - 2.00 - - - vpcmpgtd %ymm3, %ymm3, %ymm5 263# CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpgtq %ymm3, %ymm3, %ymm5 264# CHECK-NEXT: - - - - - - - - - - 2.00 - vpcmpgtw %ymm3, %ymm3, %ymm5 265# CHECK-NEXT: - - - - - - - - 1.00 - - - psubb %mm2, %mm2 266# CHECK-NEXT: - - - - - - - 1.00 - - - - psubd %mm2, %mm2 267# CHECK-NEXT: - - - - - - - - 1.00 - - - psubq %mm2, %mm2 268# CHECK-NEXT: - - - - - - - 1.00 - - - - psubw %mm2, %mm2 269# CHECK-NEXT: - - - - - - - - - - 1.00 - psubb %xmm2, %xmm2 270# CHECK-NEXT: - - - - - - - - 1.00 - - - psubd %xmm2, %xmm2 271# CHECK-NEXT: - - - - - - - 1.00 - - - - psubq %xmm2, %xmm2 272# CHECK-NEXT: - - - - - - - - - - 1.00 - psubw %xmm2, %xmm2 273# CHECK-NEXT: - - - - - - - - 1.00 - - - vpsubb %xmm3, %xmm3, %xmm3 274# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsubd %xmm3, %xmm3, %xmm3 275# CHECK-NEXT: - - - - - - - - - - 1.00 - vpsubq %xmm3, %xmm3, %xmm3 276# CHECK-NEXT: - - - - - - - - 1.00 - - - vpsubw %xmm3, %xmm3, %xmm3 277# CHECK-NEXT: - - - - - - - 2.00 - - - - vpsubb %ymm3, %ymm3, %ymm3 278# CHECK-NEXT: - - - - - - - - - - 2.00 - vpsubd %ymm3, %ymm3, %ymm3 279# CHECK-NEXT: - - - - - - - - 2.00 - - - vpsubq %ymm3, %ymm3, %ymm3 280# CHECK-NEXT: - - - - - - - 2.00 - - - - vpsubw %ymm3, %ymm3, %ymm3 281# CHECK-NEXT: - - - - - - - - - - 1.00 - vpsubb %xmm3, %xmm3, %xmm5 282# CHECK-NEXT: - - - - - - - - 1.00 - - - vpsubd %xmm3, %xmm3, %xmm5 283# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsubq %xmm3, %xmm3, %xmm5 284# CHECK-NEXT: - - - - - - - - - - 1.00 - vpsubw %xmm3, %xmm3, %xmm5 285# CHECK-NEXT: - - - - - - - - 2.00 - - - vpsubb %ymm3, %ymm3, %ymm5 286# CHECK-NEXT: - - - - - - - 2.00 - - - - vpsubd %ymm3, %ymm3, %ymm5 287# CHECK-NEXT: - - - - - - - - - - 2.00 - vpsubq %ymm3, %ymm3, %ymm5 288# CHECK-NEXT: - - - - - - - - 2.00 - - - vpsubw %ymm3, %ymm3, %ymm5 289# CHECK-NEXT: - - - - - - - - - 1.00 - - andnps %xmm0, %xmm0 290# CHECK-NEXT: - - - - - - - - - 1.00 - - andnpd %xmm1, %xmm1 291# CHECK-NEXT: - - - - - - - - - 1.00 - - vandnps %xmm2, %xmm2, %xmm2 292# CHECK-NEXT: - - - - - - - - - 1.00 - - vandnpd %xmm1, %xmm1, %xmm1 293# CHECK-NEXT: - - - - - - - 2.00 - - - - vandnps %ymm2, %ymm2, %ymm2 294# CHECK-NEXT: - - - - - - - - - - 2.00 - vandnpd %ymm1, %ymm1, %ymm1 295# CHECK-NEXT: - - - - - - - - - 1.00 - - pandn %mm2, %mm2 296# CHECK-NEXT: - - - - - - - - 1.00 - - - pandn %xmm2, %xmm2 297# CHECK-NEXT: - - - - - - - - - 1.00 - - vpandn %xmm3, %xmm3, %xmm3 298# CHECK-NEXT: - - - - - - - - 2.00 - - - vpandn %ymm3, %ymm3, %ymm3 299# CHECK-NEXT: - - - - - - - 1.00 - - - - vandnps %xmm2, %xmm2, %xmm5 300# CHECK-NEXT: - - - - - - - - - - 1.00 - vandnpd %xmm1, %xmm1, %xmm5 301# CHECK-NEXT: - - - - - - - - - 1.00 - - vpandn %xmm3, %xmm3, %xmm5 302# CHECK-NEXT: - - - - - - - 2.00 - - - - vandnps %ymm2, %ymm2, %ymm5 303# CHECK-NEXT: - - - - - - - - - - 2.00 - vandnpd %ymm1, %ymm1, %ymm5 304# CHECK-NEXT: - - - - - - - - - 2.00 - - vpandn %ymm3, %ymm3, %ymm5 305# CHECK-NEXT: - - - - - - - - 1.00 - - - xorps %xmm0, %xmm0 306# CHECK-NEXT: - - - - - - - 1.00 - - - - xorpd %xmm1, %xmm1 307# CHECK-NEXT: - - - - - - - - - - 1.00 - vxorps %xmm2, %xmm2, %xmm2 308# CHECK-NEXT: - - - - - - - - - 1.00 - - vxorpd %xmm1, %xmm1, %xmm1 309# CHECK-NEXT: - - - - - - - - 2.00 - - - vxorps %ymm2, %ymm2, %ymm2 310# CHECK-NEXT: - - - - - - - 2.00 - - - - vxorpd %ymm1, %ymm1, %ymm1 311# CHECK-NEXT: - - - - - - - - - - 1.00 - pxor %mm2, %mm2 312# CHECK-NEXT: - - - - - - - - - 1.00 - - pxor %xmm2, %xmm2 313# CHECK-NEXT: - - - - - - - - 1.00 - - - vpxor %xmm3, %xmm3, %xmm3 314# CHECK-NEXT: - - - - - - - - - - 2.00 - vpxor %ymm3, %ymm3, %ymm3 315# CHECK-NEXT: - - - - - - - - - 1.00 - - vxorps %xmm4, %xmm4, %xmm5 316# CHECK-NEXT: - - - - - - - - 1.00 - - - vxorpd %xmm1, %xmm1, %xmm3 317# CHECK-NEXT: - - - - - - - 2.00 - - - - vxorps %ymm4, %ymm4, %ymm5 318# CHECK-NEXT: - - - - - - - - - 2.00 - - vxorpd %ymm1, %ymm1, %ymm3 319# CHECK-NEXT: - - - - - - - - 1.00 - - - vpxor %xmm3, %xmm3, %xmm5 320# CHECK-NEXT: - - - - - - - - - - 2.00 - vpxor %ymm3, %ymm3, %ymm5 321 322# CHECK: Timeline view: 323# CHECK-NEXT: 0123456789 0123 324# CHECK-NEXT: Index 0123456789 0123456789 325 326# CHECK: [0,0] DeER . . . . . . . subl %eax, %eax 327# CHECK-NEXT: [0,1] DeER . . . . . . . subq %rax, %rax 328# CHECK-NEXT: [0,2] DeER . . . . . . . xorl %eax, %eax 329# CHECK-NEXT: [0,3] DeER . . . . . . . xorq %rax, %rax 330# CHECK-NEXT: [0,4] .DeER. . . . . . . pcmpgtb %mm2, %mm2 331# CHECK-NEXT: [0,5] .DeER. . . . . . . pcmpgtd %mm2, %mm2 332# CHECK-NEXT: [0,6] .DeER. . . . . . . pcmpgtw %mm2, %mm2 333# CHECK-NEXT: [0,7] .D=eER . . . . . . pcmpgtb %xmm2, %xmm2 334# CHECK-NEXT: [0,8] . DeER . . . . . . pcmpgtd %xmm2, %xmm2 335# CHECK-NEXT: [0,9] . DeER . . . . . . pcmpgtq %xmm2, %xmm2 336# CHECK-NEXT: [0,10] . D=eER . . . . . . pcmpgtw %xmm2, %xmm2 337# CHECK-NEXT: [0,11] . D=eER . . . . . . vpcmpgtb %xmm3, %xmm3, %xmm3 338# CHECK-NEXT: [0,12] . DeER . . . . . . vpcmpgtd %xmm3, %xmm3, %xmm3 339# CHECK-NEXT: [0,13] . D=eER . . . . . . vpcmpgtq %xmm3, %xmm3, %xmm3 340# CHECK-NEXT: [0,14] . D=eER . . . . . . vpcmpgtw %xmm3, %xmm3, %xmm3 341# CHECK-NEXT: [0,15] . D=eER . . . . . . vpcmpgtb %xmm3, %xmm3, %xmm5 342# CHECK-NEXT: [0,16] . D=eER . . . . . . vpcmpgtd %xmm3, %xmm3, %xmm5 343# CHECK-NEXT: [0,17] . D=eER . . . . . . vpcmpgtq %xmm3, %xmm3, %xmm5 344# CHECK-NEXT: [0,18] . D=eER . . . . . . vpcmpgtw %xmm3, %xmm3, %xmm5 345# CHECK-NEXT: [0,19] . D=eER. . . . . . vpcmpgtb %ymm3, %ymm3, %ymm3 346# CHECK-NEXT: [0,20] . D=eER. . . . . . vpcmpgtd %ymm3, %ymm3, %ymm3 347# CHECK-NEXT: [0,21] . .DeER. . . . . . vpcmpgtq %ymm3, %ymm3, %ymm3 348# CHECK-NEXT: [0,22] . .D=eER . . . . . vpcmpgtw %ymm3, %ymm3, %ymm3 349# CHECK-NEXT: [0,23] . . D=eER . . . . . vpcmpgtb %ymm3, %ymm3, %ymm5 350# CHECK-NEXT: [0,24] . . D=eER . . . . . vpcmpgtd %ymm3, %ymm3, %ymm5 351# CHECK-NEXT: [0,25] . . D=eER . . . . . vpcmpgtq %ymm3, %ymm3, %ymm5 352# CHECK-NEXT: [0,26] . . D==eER . . . . . vpcmpgtw %ymm3, %ymm3, %ymm5 353# CHECK-NEXT: [0,27] . . D==eER . . . . . psubb %mm2, %mm2 354# CHECK-NEXT: [0,28] . . D=eER . . . . . psubd %mm2, %mm2 355# CHECK-NEXT: [0,29] . . D==eER. . . . . psubq %mm2, %mm2 356# CHECK-NEXT: [0,30] . . D==eER. . . . . psubw %mm2, %mm2 357# CHECK-NEXT: [0,31] . . D===eER . . . . psubb %xmm2, %xmm2 358# CHECK-NEXT: [0,32] . . D==eER . . . . psubd %xmm2, %xmm2 359# CHECK-NEXT: [0,33] . . D==eER . . . . psubq %xmm2, %xmm2 360# CHECK-NEXT: [0,34] . . D===eER . . . . psubw %xmm2, %xmm2 361# CHECK-NEXT: [0,35] . . D===eER . . . . vpsubb %xmm3, %xmm3, %xmm3 362# CHECK-NEXT: [0,36] . . .D==eER . . . . vpsubd %xmm3, %xmm3, %xmm3 363# CHECK-NEXT: [0,37] . . .D===eER . . . . vpsubq %xmm3, %xmm3, %xmm3 364# CHECK-NEXT: [0,38] . . .D===eER . . . . vpsubw %xmm3, %xmm3, %xmm3 365# CHECK-NEXT: [0,39] . . . D==eER . . . . vpsubb %ymm3, %ymm3, %ymm3 366# CHECK-NEXT: [0,40] . . . D===eER . . . . vpsubd %ymm3, %ymm3, %ymm3 367# CHECK-NEXT: [0,41] . . . D==eER . . . . vpsubq %ymm3, %ymm3, %ymm3 368# CHECK-NEXT: [0,42] . . . D===eER. . . . vpsubw %ymm3, %ymm3, %ymm3 369# CHECK-NEXT: [0,43] . . . D===eER . . . vpsubb %xmm3, %xmm3, %xmm5 370# CHECK-NEXT: [0,44] . . . D===eER . . . vpsubd %xmm3, %xmm3, %xmm5 371# CHECK-NEXT: [0,45] . . . D====eER . . . vpsubq %xmm3, %xmm3, %xmm5 372# CHECK-NEXT: [0,46] . . . D====eER . . . vpsubw %xmm3, %xmm3, %xmm5 373# CHECK-NEXT: [0,47] . . . D===eER . . . vpsubb %ymm3, %ymm3, %ymm5 374# CHECK-NEXT: [0,48] . . . D====eER . . . vpsubd %ymm3, %ymm3, %ymm5 375# CHECK-NEXT: [0,49] . . . .D===eER . . . vpsubq %ymm3, %ymm3, %ymm5 376# CHECK-NEXT: [0,50] . . . .D====eER . . . vpsubw %ymm3, %ymm3, %ymm5 377# CHECK-NEXT: [0,51] . . . . DeE---R . . . andnps %xmm0, %xmm0 378# CHECK-NEXT: [0,52] . . . . D=eE--R . . . andnpd %xmm1, %xmm1 379# CHECK-NEXT: [0,53] . . . . D==eE-R . . . vandnps %xmm2, %xmm2, %xmm2 380# CHECK-NEXT: [0,54] . . . . D===eER . . . vandnpd %xmm1, %xmm1, %xmm1 381# CHECK-NEXT: [0,55] . . . . D===eER. . . vandnps %ymm2, %ymm2, %ymm2 382# CHECK-NEXT: [0,56] . . . . D===eER. . . vandnpd %ymm1, %ymm1, %ymm1 383# CHECK-NEXT: [0,57] . . . . D==eER. . . pandn %mm2, %mm2 384# CHECK-NEXT: [0,58] . . . . D===eER . . pandn %xmm2, %xmm2 385# CHECK-NEXT: [0,59] . . . . D===eER . . vpandn %xmm3, %xmm3, %xmm3 386# CHECK-NEXT: [0,60] . . . . D===eER . . vpandn %ymm3, %ymm3, %ymm3 387# CHECK-NEXT: [0,61] . . . . D===eER . . vandnps %xmm2, %xmm2, %xmm5 388# CHECK-NEXT: [0,62] . . . . D===eER . . vandnpd %xmm1, %xmm1, %xmm5 389# CHECK-NEXT: [0,63] . . . . .D==eER . . vpandn %xmm3, %xmm3, %xmm5 390# CHECK-NEXT: [0,64] . . . . .D===eER . . vandnps %ymm2, %ymm2, %ymm5 391# CHECK-NEXT: [0,65] . . . . . D==eER . . vandnpd %ymm1, %ymm1, %ymm5 392# CHECK-NEXT: [0,66] . . . . . D==eER . . vpandn %ymm3, %ymm3, %ymm5 393# CHECK-NEXT: [0,67] . . . . . D==eER . . xorps %xmm0, %xmm0 394# CHECK-NEXT: [0,68] . . . . . D===eER. . xorpd %xmm1, %xmm1 395# CHECK-NEXT: [0,69] . . . . . D===eER. . vxorps %xmm2, %xmm2, %xmm2 396# CHECK-NEXT: [0,70] . . . . . D===eER. . vxorpd %xmm1, %xmm1, %xmm1 397# CHECK-NEXT: [0,71] . . . . . D==eER. . vxorps %ymm2, %ymm2, %ymm2 398# CHECK-NEXT: [0,72] . . . . . D===eER . vxorpd %ymm1, %ymm1, %ymm1 399# CHECK-NEXT: [0,73] . . . . . D==eER . pxor %mm2, %mm2 400# CHECK-NEXT: [0,74] . . . . . D==eER . pxor %xmm2, %xmm2 401# CHECK-NEXT: [0,75] . . . . . D===eER . vpxor %xmm3, %xmm3, %xmm3 402# CHECK-NEXT: [0,76] . . . . . .D==eER . vpxor %ymm3, %ymm3, %ymm3 403# CHECK-NEXT: [0,77] . . . . . .D==eER . vxorps %xmm4, %xmm4, %xmm5 404# CHECK-NEXT: [0,78] . . . . . .D===eER. vxorpd %xmm1, %xmm1, %xmm3 405# CHECK-NEXT: [0,79] . . . . . . D==eER. vxorps %ymm4, %ymm4, %ymm5 406# CHECK-NEXT: [0,80] . . . . . . D==eER. vxorpd %ymm1, %ymm1, %ymm3 407# CHECK-NEXT: [0,81] . . . . . . D==eER vpxor %xmm3, %xmm3, %xmm5 408# CHECK-NEXT: [0,82] . . . . . . D==eER vpxor %ymm3, %ymm3, %ymm5 409 410# CHECK: Average Wait times (based on the timeline view): 411# CHECK-NEXT: [0]: Executions 412# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 413# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 414# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 415 416# CHECK: [0] [1] [2] [3] 417# CHECK-NEXT: 0. 1 1.0 1.0 0.0 subl %eax, %eax 418# CHECK-NEXT: 1. 1 1.0 1.0 0.0 subq %rax, %rax 419# CHECK-NEXT: 2. 1 1.0 1.0 0.0 xorl %eax, %eax 420# CHECK-NEXT: 3. 1 1.0 1.0 0.0 xorq %rax, %rax 421# CHECK-NEXT: 4. 1 1.0 1.0 0.0 pcmpgtb %mm2, %mm2 422# CHECK-NEXT: 5. 1 1.0 1.0 0.0 pcmpgtd %mm2, %mm2 423# CHECK-NEXT: 6. 1 1.0 1.0 0.0 pcmpgtw %mm2, %mm2 424# CHECK-NEXT: 7. 1 2.0 2.0 0.0 pcmpgtb %xmm2, %xmm2 425# CHECK-NEXT: 8. 1 1.0 1.0 0.0 pcmpgtd %xmm2, %xmm2 426# CHECK-NEXT: 9. 1 1.0 1.0 0.0 pcmpgtq %xmm2, %xmm2 427# CHECK-NEXT: 10. 1 2.0 2.0 0.0 pcmpgtw %xmm2, %xmm2 428# CHECK-NEXT: 11. 1 2.0 2.0 0.0 vpcmpgtb %xmm3, %xmm3, %xmm3 429# CHECK-NEXT: 12. 1 1.0 1.0 0.0 vpcmpgtd %xmm3, %xmm3, %xmm3 430# CHECK-NEXT: 13. 1 2.0 2.0 0.0 vpcmpgtq %xmm3, %xmm3, %xmm3 431# CHECK-NEXT: 14. 1 2.0 2.0 0.0 vpcmpgtw %xmm3, %xmm3, %xmm3 432# CHECK-NEXT: 15. 1 2.0 2.0 0.0 vpcmpgtb %xmm3, %xmm3, %xmm5 433# CHECK-NEXT: 16. 1 2.0 2.0 0.0 vpcmpgtd %xmm3, %xmm3, %xmm5 434# CHECK-NEXT: 17. 1 2.0 2.0 0.0 vpcmpgtq %xmm3, %xmm3, %xmm5 435# CHECK-NEXT: 18. 1 2.0 2.0 0.0 vpcmpgtw %xmm3, %xmm3, %xmm5 436# CHECK-NEXT: 19. 1 2.0 2.0 0.0 vpcmpgtb %ymm3, %ymm3, %ymm3 437# CHECK-NEXT: 20. 1 2.0 2.0 0.0 vpcmpgtd %ymm3, %ymm3, %ymm3 438# CHECK-NEXT: 21. 1 1.0 1.0 0.0 vpcmpgtq %ymm3, %ymm3, %ymm3 439# CHECK-NEXT: 22. 1 2.0 2.0 0.0 vpcmpgtw %ymm3, %ymm3, %ymm3 440# CHECK-NEXT: 23. 1 2.0 2.0 0.0 vpcmpgtb %ymm3, %ymm3, %ymm5 441# CHECK-NEXT: 24. 1 2.0 2.0 0.0 vpcmpgtd %ymm3, %ymm3, %ymm5 442# CHECK-NEXT: 25. 1 2.0 2.0 0.0 vpcmpgtq %ymm3, %ymm3, %ymm5 443# CHECK-NEXT: 26. 1 3.0 3.0 0.0 vpcmpgtw %ymm3, %ymm3, %ymm5 444# CHECK-NEXT: 27. 1 3.0 3.0 0.0 psubb %mm2, %mm2 445# CHECK-NEXT: 28. 1 2.0 2.0 0.0 psubd %mm2, %mm2 446# CHECK-NEXT: 29. 1 3.0 3.0 0.0 psubq %mm2, %mm2 447# CHECK-NEXT: 30. 1 3.0 3.0 0.0 psubw %mm2, %mm2 448# CHECK-NEXT: 31. 1 4.0 4.0 0.0 psubb %xmm2, %xmm2 449# CHECK-NEXT: 32. 1 3.0 3.0 0.0 psubd %xmm2, %xmm2 450# CHECK-NEXT: 33. 1 3.0 3.0 0.0 psubq %xmm2, %xmm2 451# CHECK-NEXT: 34. 1 4.0 4.0 0.0 psubw %xmm2, %xmm2 452# CHECK-NEXT: 35. 1 4.0 4.0 0.0 vpsubb %xmm3, %xmm3, %xmm3 453# CHECK-NEXT: 36. 1 3.0 3.0 0.0 vpsubd %xmm3, %xmm3, %xmm3 454# CHECK-NEXT: 37. 1 4.0 4.0 0.0 vpsubq %xmm3, %xmm3, %xmm3 455# CHECK-NEXT: 38. 1 4.0 4.0 0.0 vpsubw %xmm3, %xmm3, %xmm3 456# CHECK-NEXT: 39. 1 3.0 3.0 0.0 vpsubb %ymm3, %ymm3, %ymm3 457# CHECK-NEXT: 40. 1 4.0 4.0 0.0 vpsubd %ymm3, %ymm3, %ymm3 458# CHECK-NEXT: 41. 1 3.0 3.0 0.0 vpsubq %ymm3, %ymm3, %ymm3 459# CHECK-NEXT: 42. 1 4.0 4.0 0.0 vpsubw %ymm3, %ymm3, %ymm3 460# CHECK-NEXT: 43. 1 4.0 4.0 0.0 vpsubb %xmm3, %xmm3, %xmm5 461# CHECK-NEXT: 44. 1 4.0 4.0 0.0 vpsubd %xmm3, %xmm3, %xmm5 462# CHECK-NEXT: 45. 1 5.0 5.0 0.0 vpsubq %xmm3, %xmm3, %xmm5 463# CHECK-NEXT: 46. 1 5.0 5.0 0.0 vpsubw %xmm3, %xmm3, %xmm5 464# CHECK-NEXT: 47. 1 4.0 4.0 0.0 vpsubb %ymm3, %ymm3, %ymm5 465# CHECK-NEXT: 48. 1 5.0 5.0 0.0 vpsubd %ymm3, %ymm3, %ymm5 466# CHECK-NEXT: 49. 1 4.0 4.0 0.0 vpsubq %ymm3, %ymm3, %ymm5 467# CHECK-NEXT: 50. 1 5.0 5.0 0.0 vpsubw %ymm3, %ymm3, %ymm5 468# CHECK-NEXT: 51. 1 1.0 1.0 3.0 andnps %xmm0, %xmm0 469# CHECK-NEXT: 52. 1 2.0 2.0 2.0 andnpd %xmm1, %xmm1 470# CHECK-NEXT: 53. 1 3.0 3.0 1.0 vandnps %xmm2, %xmm2, %xmm2 471# CHECK-NEXT: 54. 1 4.0 4.0 0.0 vandnpd %xmm1, %xmm1, %xmm1 472# CHECK-NEXT: 55. 1 4.0 4.0 0.0 vandnps %ymm2, %ymm2, %ymm2 473# CHECK-NEXT: 56. 1 4.0 4.0 0.0 vandnpd %ymm1, %ymm1, %ymm1 474# CHECK-NEXT: 57. 1 3.0 3.0 0.0 pandn %mm2, %mm2 475# CHECK-NEXT: 58. 1 4.0 4.0 0.0 pandn %xmm2, %xmm2 476# CHECK-NEXT: 59. 1 4.0 4.0 0.0 vpandn %xmm3, %xmm3, %xmm3 477# CHECK-NEXT: 60. 1 4.0 4.0 0.0 vpandn %ymm3, %ymm3, %ymm3 478# CHECK-NEXT: 61. 1 4.0 4.0 0.0 vandnps %xmm2, %xmm2, %xmm5 479# CHECK-NEXT: 62. 1 4.0 4.0 0.0 vandnpd %xmm1, %xmm1, %xmm5 480# CHECK-NEXT: 63. 1 3.0 3.0 0.0 vpandn %xmm3, %xmm3, %xmm5 481# CHECK-NEXT: 64. 1 4.0 4.0 0.0 vandnps %ymm2, %ymm2, %ymm5 482# CHECK-NEXT: 65. 1 3.0 3.0 0.0 vandnpd %ymm1, %ymm1, %ymm5 483# CHECK-NEXT: 66. 1 3.0 3.0 0.0 vpandn %ymm3, %ymm3, %ymm5 484# CHECK-NEXT: 67. 1 3.0 3.0 0.0 xorps %xmm0, %xmm0 485# CHECK-NEXT: 68. 1 4.0 4.0 0.0 xorpd %xmm1, %xmm1 486# CHECK-NEXT: 69. 1 4.0 4.0 0.0 vxorps %xmm2, %xmm2, %xmm2 487# CHECK-NEXT: 70. 1 4.0 4.0 0.0 vxorpd %xmm1, %xmm1, %xmm1 488# CHECK-NEXT: 71. 1 3.0 3.0 0.0 vxorps %ymm2, %ymm2, %ymm2 489# CHECK-NEXT: 72. 1 4.0 4.0 0.0 vxorpd %ymm1, %ymm1, %ymm1 490# CHECK-NEXT: 73. 1 3.0 3.0 0.0 pxor %mm2, %mm2 491# CHECK-NEXT: 74. 1 3.0 3.0 0.0 pxor %xmm2, %xmm2 492# CHECK-NEXT: 75. 1 4.0 4.0 0.0 vpxor %xmm3, %xmm3, %xmm3 493# CHECK-NEXT: 76. 1 3.0 3.0 0.0 vpxor %ymm3, %ymm3, %ymm3 494# CHECK-NEXT: 77. 1 3.0 3.0 0.0 vxorps %xmm4, %xmm4, %xmm5 495# CHECK-NEXT: 78. 1 4.0 4.0 0.0 vxorpd %xmm1, %xmm1, %xmm3 496# CHECK-NEXT: 79. 1 3.0 3.0 0.0 vxorps %ymm4, %ymm4, %ymm5 497# CHECK-NEXT: 80. 1 3.0 3.0 0.0 vxorpd %ymm1, %ymm1, %ymm3 498# CHECK-NEXT: 81. 1 3.0 3.0 0.0 vpxor %xmm3, %xmm3, %xmm5 499# CHECK-NEXT: 82. 1 3.0 3.0 0.0 vpxor %ymm3, %ymm3, %ymm5 500# CHECK-NEXT: 1 2.9 2.9 0.1 <total> 501