# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell --json --timeline-max-iterations=1 --bottleneck-analysis --resource-pressure=false --instruction-info=false < %s | FileCheck %s
vaddps %xmm0, %xmm0, %xmm1
vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# CHECK: {
# CHECK-NEXT: "CodeRegions": [
# CHECK-NEXT: {
# CHECK-NEXT: "BottleneckAnalysis": {
# CHECK-NEXT: "DataDependencyCycles": 0,
# CHECK-NEXT: "DependencyEdge": [
# CHECK-NEXT: {
# CHECK-NEXT: "FromID": 1,
# CHECK-NEXT: "ResourceOrRegID": 128,
# CHECK-NEXT: "ToID": 3,
# CHECK-NEXT: "Type": 3
# CHECK-NEXT: },
# CHECK-NEXT: {
# CHECK-NEXT: "FromID": 3,
# CHECK-NEXT: "ResourceOrRegID": 128,
# CHECK-NEXT: "ToID": 5,
# CHECK-NEXT: "Type": 3
# CHECK-NEXT: }
# CHECK-NEXT: ],
# CHECK-NEXT: "MemoryDependencyCycles": 0,
# CHECK-NEXT: "PressureIncreaseCycles": 56,
# CHECK-NEXT: "RegisterDependencyCycles": 0,
# CHECK-NEXT: "ResourcePressure": [
# CHECK-NEXT: {
# CHECK-NEXT: "HWPort5": 56
# CHECK-NEXT: }
# CHECK-NEXT: ],
# CHECK-NEXT: "ResourcePressureCycles": 56,
# CHECK-NEXT: "TotalCycles": 209
# CHECK-NEXT: },
# CHECK-NEXT: "Instructions": [
# CHECK-NEXT: "vaddps\t%xmm0, %xmm0, %xmm1",
# CHECK-NEXT: "vblendvps\t%xmm1, (%rdi), %xmm2, %xmm3"
# CHECK-NEXT: ],
# CHECK-NEXT: "Name": "",
# CHECK-NEXT: "SummaryView": {
# CHECK-NEXT: "BlockRThroughput": 2,
# CHECK-NEXT: "DispatchWidth": 4,
# CHECK-NEXT: "IPC": 0.9569377990430622,
# CHECK-NEXT: "Instructions": 200,
# CHECK-NEXT: "Iterations": 100,
# CHECK-NEXT: "TotalCycles": 209,
# CHECK-NEXT: "TotaluOps": 400,
# CHECK-NEXT: "uOpsPerCycle": 1.9138755980861244
# CHECK-NEXT: }
# CHECK-NEXT: }
# CHECK-NEXT: ],
# CHECK-NEXT: "SimulationParameters": {
# CHECK-NEXT: "-march": "x86_64",
# CHECK-NEXT: "-mcpu": "haswell",
# CHECK-NEXT: "-mtriple": "x86_64-unknown-unknown"
# CHECK-NEXT: },
# CHECK-NEXT: "TargetInfo": {
# CHECK-NEXT: "CPUName": "haswell",
# CHECK-NEXT: "Resources": [
# CHECK-NEXT: "HWDivider",
# CHECK-NEXT: "HWFPDivider",
# CHECK-NEXT: "HWPort0",
# CHECK-NEXT: "HWPort1",
# CHECK-NEXT: "HWPort2",
# CHECK-NEXT: "HWPort3",
# CHECK-NEXT: "HWPort4",
# CHECK-NEXT: "HWPort5",
# CHECK-NEXT: "HWPort6",
# CHECK-NEXT: "HWPort7"
# CHECK-NEXT: ]
# CHECK-NEXT: }
# CHECK-NEXT: }