1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,BARCELONA %s 3# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,BDVER2 %s 4# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,BTVER2 %s 5# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ZNVER1 %s 6# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver2 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ZNVER2 %s 7# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver3 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ZNVER3 %s 8# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver4 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ZNVER4 %s 9# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,SNB %s 10# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=ivybridge -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,IVB %s 11# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,HSW %s 12# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,BDW %s 13# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=knl -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,KNL %s 14# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,SKX %s 15# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=skylake-avx512 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,SKX-AVX512 %s 16# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=icelake-client -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ICX %s 17# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=icelake-server -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ICX %s 18# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=rocketlake -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ICX %s 19# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=tigerlake -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ICX %s 20# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=slm -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,SLM %s 21 22xor %eax, %ebx 23 24# ALL: Schedulers - number of cycles where we saw N micro opcodes issued: 25# ALL-NEXT: [# issued], [# cycles] 26# ALL-NEXT: 0, 3 (75.0%) 27# ALL-NEXT: 1, 1 (25.0%) 28 29# BARCELONA: Scheduler's queue usage: 30# BARCELONA-NEXT: [1] Resource name. 31# BARCELONA-NEXT: [2] Average number of used buffer entries. 32# BARCELONA-NEXT: [3] Maximum number of used buffer entries. 33# BARCELONA-NEXT: [4] Total number of buffer entries. 34 35# BDVER2: Scheduler's queue usage: 36# BDVER2-NEXT: [1] Resource name. 37# BDVER2-NEXT: [2] Average number of used buffer entries. 38# BDVER2-NEXT: [3] Maximum number of used buffer entries. 39# BDVER2-NEXT: [4] Total number of buffer entries. 40 41# BDW: Scheduler's queue usage: 42# BDW-NEXT: [1] Resource name. 43# BDW-NEXT: [2] Average number of used buffer entries. 44# BDW-NEXT: [3] Maximum number of used buffer entries. 45# BDW-NEXT: [4] Total number of buffer entries. 46 47# BTVER2: Scheduler's queue usage: 48# BTVER2-NEXT: [1] Resource name. 49# BTVER2-NEXT: [2] Average number of used buffer entries. 50# BTVER2-NEXT: [3] Maximum number of used buffer entries. 51# BTVER2-NEXT: [4] Total number of buffer entries. 52 53# HSW: Scheduler's queue usage: 54# HSW-NEXT: [1] Resource name. 55# HSW-NEXT: [2] Average number of used buffer entries. 56# HSW-NEXT: [3] Maximum number of used buffer entries. 57# HSW-NEXT: [4] Total number of buffer entries. 58 59# ICX: Scheduler's queue usage: 60# ICX-NEXT: [1] Resource name. 61# ICX-NEXT: [2] Average number of used buffer entries. 62# ICX-NEXT: [3] Maximum number of used buffer entries. 63# ICX-NEXT: [4] Total number of buffer entries. 64 65# IVB: Scheduler's queue usage: 66# IVB-NEXT: [1] Resource name. 67# IVB-NEXT: [2] Average number of used buffer entries. 68# IVB-NEXT: [3] Maximum number of used buffer entries. 69# IVB-NEXT: [4] Total number of buffer entries. 70 71# KNL: Scheduler's queue usage: 72# KNL-NEXT: [1] Resource name. 73# KNL-NEXT: [2] Average number of used buffer entries. 74# KNL-NEXT: [3] Maximum number of used buffer entries. 75# KNL-NEXT: [4] Total number of buffer entries. 76 77# SKX: Scheduler's queue usage: 78# SKX-NEXT: [1] Resource name. 79# SKX-NEXT: [2] Average number of used buffer entries. 80# SKX-NEXT: [3] Maximum number of used buffer entries. 81# SKX-NEXT: [4] Total number of buffer entries. 82 83# SKX-AVX512: Scheduler's queue usage: 84# SKX-AVX512-NEXT: [1] Resource name. 85# SKX-AVX512-NEXT: [2] Average number of used buffer entries. 86# SKX-AVX512-NEXT: [3] Maximum number of used buffer entries. 87# SKX-AVX512-NEXT: [4] Total number of buffer entries. 88 89# SLM: Scheduler's queue usage: 90# SLM-NEXT: No scheduler resources used. 91 92# SNB: Scheduler's queue usage: 93# SNB-NEXT: [1] Resource name. 94# SNB-NEXT: [2] Average number of used buffer entries. 95# SNB-NEXT: [3] Maximum number of used buffer entries. 96# SNB-NEXT: [4] Total number of buffer entries. 97 98# ZNVER1: Scheduler's queue usage: 99# ZNVER1-NEXT: [1] Resource name. 100# ZNVER1-NEXT: [2] Average number of used buffer entries. 101# ZNVER1-NEXT: [3] Maximum number of used buffer entries. 102# ZNVER1-NEXT: [4] Total number of buffer entries. 103 104# ZNVER2: Scheduler's queue usage: 105# ZNVER2-NEXT: [1] Resource name. 106# ZNVER2-NEXT: [2] Average number of used buffer entries. 107# ZNVER2-NEXT: [3] Maximum number of used buffer entries. 108# ZNVER2-NEXT: [4] Total number of buffer entries. 109 110# ZNVER3: Scheduler's queue usage: 111# ZNVER3-NEXT: [1] Resource name. 112# ZNVER3-NEXT: [2] Average number of used buffer entries. 113# ZNVER3-NEXT: [3] Maximum number of used buffer entries. 114# ZNVER3-NEXT: [4] Total number of buffer entries. 115 116# ZNVER4: Scheduler's queue usage: 117# ZNVER4-NEXT: [1] Resource name. 118# ZNVER4-NEXT: [2] Average number of used buffer entries. 119# ZNVER4-NEXT: [3] Maximum number of used buffer entries. 120# ZNVER4-NEXT: [4] Total number of buffer entries. 121 122# BARCELONA: [1] [2] [3] [4] 123# BARCELONA-NEXT: SBPortAny 0 1 54 124 125# BDVER2: [1] [2] [3] [4] 126# BDVER2-NEXT: PdEX 0 1 40 127# BDVER2-NEXT: PdFPU 0 0 64 128# BDVER2-NEXT: PdLoad 0 0 40 129# BDVER2-NEXT: PdStore 0 0 24 130 131# BDW: [1] [2] [3] [4] 132# BDW-NEXT: BWPortAny 0 1 60 133 134# BTVER2: [1] [2] [3] [4] 135# BTVER2-NEXT: JALU01 0 1 20 136# BTVER2-NEXT: JFPU01 0 0 18 137# BTVER2-NEXT: JLSAGU 0 0 12 138 139# HSW: [1] [2] [3] [4] 140# HSW-NEXT: HWPortAny 0 1 60 141 142# ICX: [1] [2] [3] [4] 143# ICX-NEXT: ICXPortAny 0 1 60 144 145# IVB: [1] [2] [3] [4] 146# IVB-NEXT: SBPortAny 0 1 54 147 148# KNL: [1] [2] [3] [4] 149# KNL-NEXT: HWPortAny 0 1 60 150 151# SKX: [1] [2] [3] [4] 152# SKX-NEXT: SKLPortAny 0 1 60 153 154# SKX-AVX512: [1] [2] [3] [4] 155# SKX-AVX512-NEXT: SKXPortAny 0 1 60 156 157# SNB: [1] [2] [3] [4] 158# SNB-NEXT: SBPortAny 0 1 54 159 160# ZNVER1: [1] [2] [3] [4] 161# ZNVER1-NEXT: ZnAGU 0 0 28 162# ZNVER1-NEXT: ZnALU 0 1 56 163# ZNVER1-NEXT: ZnFPU 0 0 36 164 165# ZNVER2: [1] [2] [3] [4] 166# ZNVER2-NEXT: Zn2AGU 0 0 28 167# ZNVER2-NEXT: Zn2ALU 0 1 64 168# ZNVER2-NEXT: Zn2FPU 0 0 36 169 170# ZNVER3: [1] [2] [3] [4] 171# ZNVER3-NEXT: Zn3FP 0 0 64 172# ZNVER3-NEXT: Zn3Int 0 1 96 173# ZNVER3-NEXT: Zn3Load 0 0 72 174# ZNVER3-NEXT: Zn3Store 0 0 64 175 176# ZNVER4: [1] [2] [3] [4] 177# ZNVER4-NEXT: Zn4FP 0 0 64 178# ZNVER4-NEXT: Zn4Int 0 1 96 179# ZNVER4-NEXT: Zn4Load 0 0 72 180# ZNVER4-NEXT: Zn4Store 0 0 64 181