14fe0fcd1SAndrea Di Biagio# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 24fe0fcd1SAndrea Di Biagio# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell --json -instruction-tables < %s | FileCheck %s 34fe0fcd1SAndrea Di Biagio# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell --json -instruction-tables -o %t.json < %s 44fe0fcd1SAndrea Di Biagio# RUN: cat %t.json \ 54fe0fcd1SAndrea Di Biagio# RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \ 64fe0fcd1SAndrea Di Biagio# RUN: | FileCheck %s 74fe0fcd1SAndrea Di Biagio 84fe0fcd1SAndrea Di Biagio# LLVM-MCA-BEGIN 94fe0fcd1SAndrea Di Biagioadd %eax, %eax 104fe0fcd1SAndrea Di Biagio# LLVM-MCA-END 114fe0fcd1SAndrea Di Biagio# LLVM-MCA-BEGIN 124fe0fcd1SAndrea Di Biagioadd %ebx, %ebx 134fe0fcd1SAndrea Di Biagioadd %ecx, %ecx 144fe0fcd1SAndrea Di Biagio# LLVM-MCA-END 154fe0fcd1SAndrea Di Biagio# LLVM-MCA-BEGIN 164fe0fcd1SAndrea Di Biagioadd %edx, %edx 174fe0fcd1SAndrea Di Biagio# LLVM-MCA-END 184fe0fcd1SAndrea Di Biagio 194fe0fcd1SAndrea Di Biagio# CHECK: { 204fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "CodeRegions": [ 214fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 224fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionInfoView": { 234fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionList": [ 244fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 254fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "Instruction": 0, 264fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "Latency": 1, 274fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "NumMicroOpcodes": 1, 284fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "RThroughput": 0.25, 294fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "hasUnmodeledSideEffects": false, 304fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "mayLoad": false, 314fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "mayStore": false 324fe0fcd1SAndrea Di Biagio# CHECK-NEXT: } 334fe0fcd1SAndrea Di Biagio# CHECK-NEXT: ] 344fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 354fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "Instructions": [ 364fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "addl\t%eax, %eax" 374fe0fcd1SAndrea Di Biagio# CHECK-NEXT: ], 384fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "Name": "", 394fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourcePressureView": { 404fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourcePressureInfo": [ 414fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 424fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 0, 434fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 2, 444fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 454fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 464fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 474fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 0, 484fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 3, 494fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 504fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 514fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 524fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 0, 534fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 7, 544fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 554fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 564fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 574fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 0, 584fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 8, 594fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 604fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 614fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 624fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 1, 634fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 2, 644fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 654fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 664fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 674fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 1, 684fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 3, 694fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 704fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 714fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 724fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 1, 734fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 7, 744fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 754fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 764fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 774fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 1, 784fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 8, 794fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 804fe0fcd1SAndrea Di Biagio# CHECK-NEXT: } 814fe0fcd1SAndrea Di Biagio# CHECK-NEXT: ] 824fe0fcd1SAndrea Di Biagio# CHECK-NEXT: } 834fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 844fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 854fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionInfoView": { 864fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionList": [ 874fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 884fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "Instruction": 0, 894fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "Latency": 1, 904fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "NumMicroOpcodes": 1, 914fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "RThroughput": 0.25, 924fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "hasUnmodeledSideEffects": false, 934fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "mayLoad": false, 944fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "mayStore": false 954fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 964fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 974fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "Instruction": 1, 984fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "Latency": 1, 994fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "NumMicroOpcodes": 1, 1004fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "RThroughput": 0.25, 1014fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "hasUnmodeledSideEffects": false, 1024fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "mayLoad": false, 1034fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "mayStore": false 1044fe0fcd1SAndrea Di Biagio# CHECK-NEXT: } 1054fe0fcd1SAndrea Di Biagio# CHECK-NEXT: ] 1064fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 1074fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "Instructions": [ 1084fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "addl\t%ebx, %ebx", 1094fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "addl\t%ecx, %ecx" 1104fe0fcd1SAndrea Di Biagio# CHECK-NEXT: ], 1114fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "Name": "", 1124fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourcePressureView": { 1134fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourcePressureInfo": [ 1144fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 1154fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 0, 1164fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 2, 1174fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 1184fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 1194fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 1204fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 0, 1214fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 3, 1224fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 1234fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 1244fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 1254fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 0, 1264fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 7, 1274fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 1284fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 1294fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 1304fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 0, 1314fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 8, 1324fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 1334fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 1344fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 1354fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 1, 1364fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 2, 1374fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 1384fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 1394fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 1404fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 1, 1414fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 3, 1424fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 1434fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 1444fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 1454fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 1, 1464fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 7, 1474fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 1484fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 1494fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 1504fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 1, 1514fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 8, 1524fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 1534fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 1544fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 1554fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 2, 1564fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 2, 1574fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.5 1584fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 1594fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 1604fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 2, 1614fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 3, 1624fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.5 1634fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 1644fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 1654fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 2, 1664fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 7, 1674fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.5 1684fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 1694fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 1704fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 2, 1714fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 8, 1724fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.5 1734fe0fcd1SAndrea Di Biagio# CHECK-NEXT: } 1744fe0fcd1SAndrea Di Biagio# CHECK-NEXT: ] 1754fe0fcd1SAndrea Di Biagio# CHECK-NEXT: } 1764fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 1774fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 1784fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionInfoView": { 1794fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionList": [ 1804fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 1814fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "Instruction": 0, 1824fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "Latency": 1, 1834fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "NumMicroOpcodes": 1, 1844fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "RThroughput": 0.25, 1854fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "hasUnmodeledSideEffects": false, 1864fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "mayLoad": false, 1874fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "mayStore": false 1884fe0fcd1SAndrea Di Biagio# CHECK-NEXT: } 1894fe0fcd1SAndrea Di Biagio# CHECK-NEXT: ] 1904fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 1914fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "Instructions": [ 1924fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "addl\t%edx, %edx" 1934fe0fcd1SAndrea Di Biagio# CHECK-NEXT: ], 1944fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "Name": "", 1954fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourcePressureView": { 1964fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourcePressureInfo": [ 1974fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 1984fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 0, 1994fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 2, 2004fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 2014fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 2024fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 2034fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 0, 2044fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 3, 2054fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 2064fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 2074fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 2084fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 0, 2094fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 7, 2104fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 2114fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 2124fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 2134fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 0, 2144fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 8, 2154fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 2164fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 2174fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 2184fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 1, 2194fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 2, 2204fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 2214fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 2224fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 2234fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 1, 2244fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 3, 2254fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 2264fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 2274fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 2284fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 1, 2294fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 7, 2304fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 2314fe0fcd1SAndrea Di Biagio# CHECK-NEXT: }, 2324fe0fcd1SAndrea Di Biagio# CHECK-NEXT: { 2334fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "InstructionIndex": 1, 2344fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceIndex": 8, 2354fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "ResourceUsage": 0.25 2364fe0fcd1SAndrea Di Biagio# CHECK-NEXT: } 2374fe0fcd1SAndrea Di Biagio# CHECK-NEXT: ] 2384fe0fcd1SAndrea Di Biagio# CHECK-NEXT: } 2394fe0fcd1SAndrea Di Biagio# CHECK-NEXT: } 2404fe0fcd1SAndrea Di Biagio# CHECK-NEXT: ], 241*77f2f0f9SMarcos Horro# CHECK-NEXT: "SimulationParameters": { 242*77f2f0f9SMarcos Horro# CHECK-NEXT: "-march": "x86_64", 243*77f2f0f9SMarcos Horro# CHECK-NEXT: "-mcpu": "haswell", 244*77f2f0f9SMarcos Horro# CHECK-NEXT: "-mtriple": "x86_64-unknown-unknown" 245*77f2f0f9SMarcos Horro# CHECK-NEXT: }, 2464fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "TargetInfo": { 2474fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "CPUName": "haswell", 2484fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "Resources": [ 2494fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "HWDivider", 2504fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "HWFPDivider", 2514fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "HWPort0", 2524fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "HWPort1", 2534fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "HWPort2", 2544fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "HWPort3", 2554fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "HWPort4", 2564fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "HWPort5", 2574fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "HWPort6", 2584fe0fcd1SAndrea Di Biagio# CHECK-NEXT: "HWPort7" 2594fe0fcd1SAndrea Di Biagio# CHECK-NEXT: ] 2604fe0fcd1SAndrea Di Biagio# CHECK-NEXT: } 2614fe0fcd1SAndrea Di Biagio# CHECK-NEXT: } 262