1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2# RUN: llvm-mca -mtriple=riscv64 -mcpu=xiangshan-nanhu -timeline \ 3# RUN: -timeline-max-cycles=1000 -iterations=1 < %s | FileCheck %s 4 5lui a0, 1 6auipc a1, 1 7add a0, a0, a1 8addi a0, a0, 1 9addw a0, a0, a0 10addiw a0, a0, 1 11sub a0, a0, a0 12subw a0, a0, a0 13and a0, a0, a0 14andi a0, a0, 1 15or a0, a0, a0 16ori a0, a0, 1 17xor a0, a0, a0 18xori a0, a0, 1 19sll a0, a0, a0 20slli a0, a0, 1 21sllw a0, a0, a0 22slliw a0, a0, 1 23srl a0, a0, a0 24srli a0, a0, 1 25srlw a0, a0, a0 26srliw a0, a0, 1 27sra a0, a0, a0 28srai a0, a0, 1 29sraw a0, a0, a0 30sraiw a0, a0, 1 31slt a0, a0, a0 32slti a0, a0, 1 33sltu a0, a0, a0 34sltiu a0, a0, 1 35mul a0, a0, a0 36add a0, a0, a0 37mulw a0, a0, a0 38add a0, a0, a0 39beq a0, a0, 1f 401: 41add a0, a0, a0 42bne a0, a0, 1f 431: 44add a0, a0, a0 45blt a0, a0, 1f 461: 47add a0, a0, a0 48bltu a0, a0, 1f 491: 50add a0, a0, a0 51bge a0, a0, 1f 521: 53add a0, a0, a0 54bgeu a0, a0, 1f 551: 56# zba 57add.uw a0, a0, a0 58slli.uw a0, a0, 1 59sh1add.uw a0, a0, a0 60sh2add.uw a0, a0, a0 61sh3add.uw a0, a0, a0 62sh1add a0, a0, a0 63sh2add a0, a0, a0 64sh3add a0, a0, a0 65# zbb 66andn a0, a0, a0 67orn a0, a0, a0 68xnor a0, a0, a0 69sext.b a0, a0 70sext.h a0, a0 71zext.h a0, a0 72min a0, a0, a0 73minu a0, a0, a0 74max a0, a0, a0 75maxu a0, a0, a0 76rol a0, a0, a0 77ror a0, a0, a0 78rori a0, a0, 1 79clz a0, a0 80clzw a0, a0 81ctz a0, a0 82ctzw a0, a0 83cpop a0, a0 84add a0, a0, a0 85cpopw a0, a0 86add a0, a0, a0 87rev8 a0, a0 88orc.b a0, a0 89lb a0, 0(a0) 90add a0, a0, a0 91lh a0, 0(a0) 92and a0, a0, a0 93lw a0, 0(a0) 94or a0, a0, a0 95ld a0, 0(a0) 96xor a0, a0, a0 97lbu a0, 0(a0) 98addi a0, a0, 1 99lhu a0, 0(a0) 100sub a0, a0, a0 101lwu a0, 0(a0) 102addw a0, a0, a0 103jr a0 104 105# CHECK: Iterations: 1 106# CHECK-NEXT: Instructions: 91 107# CHECK-NEXT: Total Cycles: 124 108# CHECK-NEXT: Total uOps: 91 109 110# CHECK: Dispatch Width: 6 111# CHECK-NEXT: uOps Per Cycle: 0.73 112# CHECK-NEXT: IPC: 0.73 113# CHECK-NEXT: Block RThroughput: 17.3 114 115# CHECK: Instruction Info: 116# CHECK-NEXT: [1]: #uOps 117# CHECK-NEXT: [2]: Latency 118# CHECK-NEXT: [3]: RThroughput 119# CHECK-NEXT: [4]: MayLoad 120# CHECK-NEXT: [5]: MayStore 121# CHECK-NEXT: [6]: HasSideEffects (U) 122 123# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 124# CHECK-NEXT: 1 1 0.25 lui a0, 1 125# CHECK-NEXT: 1 1 0.25 auipc a1, 1 126# CHECK-NEXT: 1 1 0.25 add a0, a0, a1 127# CHECK-NEXT: 1 1 0.25 addi a0, a0, 1 128# CHECK-NEXT: 1 1 0.25 addw a0, a0, a0 129# CHECK-NEXT: 1 1 0.25 addiw a0, a0, 1 130# CHECK-NEXT: 1 1 0.25 sub a0, a0, a0 131# CHECK-NEXT: 1 1 0.25 subw a0, a0, a0 132# CHECK-NEXT: 1 1 0.25 and a0, a0, a0 133# CHECK-NEXT: 1 1 0.25 andi a0, a0, 1 134# CHECK-NEXT: 1 1 0.25 or a0, a0, a0 135# CHECK-NEXT: 1 1 0.25 ori a0, a0, 1 136# CHECK-NEXT: 1 1 0.25 xor a0, a0, a0 137# CHECK-NEXT: 1 1 0.25 xori a0, a0, 1 138# CHECK-NEXT: 1 1 0.25 sll a0, a0, a0 139# CHECK-NEXT: 1 1 0.25 slli a0, a0, 1 140# CHECK-NEXT: 1 1 0.25 sllw a0, a0, a0 141# CHECK-NEXT: 1 1 0.25 slliw a0, a0, 1 142# CHECK-NEXT: 1 1 0.25 srl a0, a0, a0 143# CHECK-NEXT: 1 1 0.25 srli a0, a0, 1 144# CHECK-NEXT: 1 1 0.25 srlw a0, a0, a0 145# CHECK-NEXT: 1 1 0.25 srliw a0, a0, 1 146# CHECK-NEXT: 1 1 0.25 sra a0, a0, a0 147# CHECK-NEXT: 1 1 0.25 srai a0, a0, 1 148# CHECK-NEXT: 1 1 0.25 sraw a0, a0, a0 149# CHECK-NEXT: 1 1 0.25 sraiw a0, a0, 1 150# CHECK-NEXT: 1 1 0.25 slt a0, a0, a0 151# CHECK-NEXT: 1 1 0.25 slti a0, a0, 1 152# CHECK-NEXT: 1 1 0.25 sltu a0, a0, a0 153# CHECK-NEXT: 1 1 0.25 seqz a0, a0 154# CHECK-NEXT: 1 3 0.50 mul a0, a0, a0 155# CHECK-NEXT: 1 1 0.25 add a0, a0, a0 156# CHECK-NEXT: 1 3 0.50 mulw a0, a0, a0 157# CHECK-NEXT: 1 1 0.25 add a0, a0, a0 158# CHECK-NEXT: 1 1 1.00 beq a0, a0, .Ltmp0 159# CHECK-NEXT: 1 1 0.25 add a0, a0, a0 160# CHECK-NEXT: 1 1 1.00 bne a0, a0, .Ltmp1 161# CHECK-NEXT: 1 1 0.25 add a0, a0, a0 162# CHECK-NEXT: 1 1 1.00 blt a0, a0, .Ltmp2 163# CHECK-NEXT: 1 1 0.25 add a0, a0, a0 164# CHECK-NEXT: 1 1 1.00 bltu a0, a0, .Ltmp3 165# CHECK-NEXT: 1 1 0.25 add a0, a0, a0 166# CHECK-NEXT: 1 1 1.00 bge a0, a0, .Ltmp4 167# CHECK-NEXT: 1 1 0.25 add a0, a0, a0 168# CHECK-NEXT: 1 1 1.00 bgeu a0, a0, .Ltmp5 169# CHECK-NEXT: 1 1 0.25 add.uw a0, a0, a0 170# CHECK-NEXT: 1 1 0.25 slli.uw a0, a0, 1 171# CHECK-NEXT: 1 1 0.25 sh1add.uw a0, a0, a0 172# CHECK-NEXT: 1 1 0.25 sh2add.uw a0, a0, a0 173# CHECK-NEXT: 1 1 0.25 sh3add.uw a0, a0, a0 174# CHECK-NEXT: 1 1 0.25 sh1add a0, a0, a0 175# CHECK-NEXT: 1 1 0.25 sh2add a0, a0, a0 176# CHECK-NEXT: 1 1 0.25 sh3add a0, a0, a0 177# CHECK-NEXT: 1 1 0.25 andn a0, a0, a0 178# CHECK-NEXT: 1 1 0.25 orn a0, a0, a0 179# CHECK-NEXT: 1 1 0.25 xnor a0, a0, a0 180# CHECK-NEXT: 1 1 0.25 sext.b a0, a0 181# CHECK-NEXT: 1 1 0.25 sext.h a0, a0 182# CHECK-NEXT: 1 1 0.25 zext.h a0, a0 183# CHECK-NEXT: 1 1 0.25 min a0, a0, a0 184# CHECK-NEXT: 1 1 0.25 minu a0, a0, a0 185# CHECK-NEXT: 1 1 0.25 max a0, a0, a0 186# CHECK-NEXT: 1 1 0.25 maxu a0, a0, a0 187# CHECK-NEXT: 1 1 0.25 rol a0, a0, a0 188# CHECK-NEXT: 1 1 0.25 ror a0, a0, a0 189# CHECK-NEXT: 1 1 0.25 rori a0, a0, 1 190# CHECK-NEXT: 1 3 0.50 clz a0, a0 191# CHECK-NEXT: 1 3 0.50 clzw a0, a0 192# CHECK-NEXT: 1 3 0.50 ctz a0, a0 193# CHECK-NEXT: 1 3 0.50 ctzw a0, a0 194# CHECK-NEXT: 1 3 0.50 cpop a0, a0 195# CHECK-NEXT: 1 1 0.25 add a0, a0, a0 196# CHECK-NEXT: 1 3 0.50 cpopw a0, a0 197# CHECK-NEXT: 1 1 0.25 add a0, a0, a0 198# CHECK-NEXT: 1 1 0.25 rev8 a0, a0 199# CHECK-NEXT: 1 1 0.25 orc.b a0, a0 200# CHECK-NEXT: 1 5 0.50 * lb a0, 0(a0) 201# CHECK-NEXT: 1 1 0.25 add a0, a0, a0 202# CHECK-NEXT: 1 5 0.50 * lh a0, 0(a0) 203# CHECK-NEXT: 1 1 0.25 and a0, a0, a0 204# CHECK-NEXT: 1 5 0.50 * lw a0, 0(a0) 205# CHECK-NEXT: 1 1 0.25 or a0, a0, a0 206# CHECK-NEXT: 1 5 0.50 * ld a0, 0(a0) 207# CHECK-NEXT: 1 1 0.25 xor a0, a0, a0 208# CHECK-NEXT: 1 5 0.50 * lbu a0, 0(a0) 209# CHECK-NEXT: 1 1 0.25 addi a0, a0, 1 210# CHECK-NEXT: 1 5 0.50 * lhu a0, 0(a0) 211# CHECK-NEXT: 1 1 0.25 sub a0, a0, a0 212# CHECK-NEXT: 1 5 0.50 * lwu a0, 0(a0) 213# CHECK-NEXT: 1 1 0.25 addw a0, a0, a0 214# CHECK-NEXT: 1 1 1.00 jr a0 215 216# CHECK: Resources: 217# CHECK-NEXT: [0.0] - XS2ALU 218# CHECK-NEXT: [0.1] - XS2ALU 219# CHECK-NEXT: [0.2] - XS2ALU 220# CHECK-NEXT: [0.3] - XS2ALU 221# CHECK-NEXT: [1.0] - XS2FMAC 222# CHECK-NEXT: [1.1] - XS2FMAC 223# CHECK-NEXT: [1.2] - XS2FMAC 224# CHECK-NEXT: [1.3] - XS2FMAC 225# CHECK-NEXT: [2.0] - XS2FMISC 226# CHECK-NEXT: [2.1] - XS2FMISC 227# CHECK-NEXT: [3.0] - XS2LD 228# CHECK-NEXT: [3.1] - XS2LD 229# CHECK-NEXT: [4.0] - XS2MDU 230# CHECK-NEXT: [4.1] - XS2MDU 231# CHECK-NEXT: [5] - XS2MISC 232# CHECK-NEXT: [6.0] - XS2ST 233# CHECK-NEXT: [6.1] - XS2ST 234 235# CHECK: Resource pressure per iteration: 236# CHECK-NEXT: [0.0] [0.1] [0.2] [0.3] [1.0] [1.1] [1.2] [1.3] [2.0] [2.1] [3.0] [3.1] [4.0] [4.1] [5] [6.0] [6.1] 237# CHECK-NEXT: 17.00 17.00 17.00 18.00 - - - - - - 3.00 4.00 4.00 4.00 7.00 - - 238 239# CHECK: Resource pressure by instruction: 240# CHECK-NEXT: [0.0] [0.1] [0.2] [0.3] [1.0] [1.1] [1.2] [1.3] [2.0] [2.1] [3.0] [3.1] [4.0] [4.1] [5] [6.0] [6.1] Instructions: 241# CHECK-NEXT: - - - 1.00 - - - - - - - - - - - - - lui a0, 1 242# CHECK-NEXT: - - 1.00 - - - - - - - - - - - - - - auipc a1, 1 243# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - add a0, a0, a1 244# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - addi a0, a0, 1 245# CHECK-NEXT: - - - 1.00 - - - - - - - - - - - - - addw a0, a0, a0 246# CHECK-NEXT: - - 1.00 - - - - - - - - - - - - - - addiw a0, a0, 1 247# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - sub a0, a0, a0 248# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - subw a0, a0, a0 249# CHECK-NEXT: - - - 1.00 - - - - - - - - - - - - - and a0, a0, a0 250# CHECK-NEXT: - - 1.00 - - - - - - - - - - - - - - andi a0, a0, 1 251# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - or a0, a0, a0 252# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - ori a0, a0, 1 253# CHECK-NEXT: - - - 1.00 - - - - - - - - - - - - - xor a0, a0, a0 254# CHECK-NEXT: - - 1.00 - - - - - - - - - - - - - - xori a0, a0, 1 255# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - sll a0, a0, a0 256# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - slli a0, a0, 1 257# CHECK-NEXT: - - - 1.00 - - - - - - - - - - - - - sllw a0, a0, a0 258# CHECK-NEXT: - - 1.00 - - - - - - - - - - - - - - slliw a0, a0, 1 259# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - srl a0, a0, a0 260# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - srli a0, a0, 1 261# CHECK-NEXT: - - - 1.00 - - - - - - - - - - - - - srlw a0, a0, a0 262# CHECK-NEXT: - - 1.00 - - - - - - - - - - - - - - srliw a0, a0, 1 263# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - sra a0, a0, a0 264# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - srai a0, a0, 1 265# CHECK-NEXT: - - - 1.00 - - - - - - - - - - - - - sraw a0, a0, a0 266# CHECK-NEXT: - - 1.00 - - - - - - - - - - - - - - sraiw a0, a0, 1 267# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - slt a0, a0, a0 268# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - slti a0, a0, 1 269# CHECK-NEXT: - - - 1.00 - - - - - - - - - - - - - sltu a0, a0, a0 270# CHECK-NEXT: - - 1.00 - - - - - - - - - - - - - - seqz a0, a0 271# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - - - mul a0, a0, a0 272# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - add a0, a0, a0 273# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - mulw a0, a0, a0 274# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - add a0, a0, a0 275# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - beq a0, a0, .Ltmp0 276# CHECK-NEXT: - - - 1.00 - - - - - - - - - - - - - add a0, a0, a0 277# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - bne a0, a0, .Ltmp1 278# CHECK-NEXT: - - 1.00 - - - - - - - - - - - - - - add a0, a0, a0 279# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - blt a0, a0, .Ltmp2 280# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - add a0, a0, a0 281# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - bltu a0, a0, .Ltmp3 282# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - add a0, a0, a0 283# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - bge a0, a0, .Ltmp4 284# CHECK-NEXT: - - - 1.00 - - - - - - - - - - - - - add a0, a0, a0 285# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - bgeu a0, a0, .Ltmp5 286# CHECK-NEXT: - - 1.00 - - - - - - - - - - - - - - add.uw a0, a0, a0 287# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - slli.uw a0, a0, 1 288# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - sh1add.uw a0, a0, a0 289# CHECK-NEXT: - - - 1.00 - - - - - - - - - - - - - sh2add.uw a0, a0, a0 290# CHECK-NEXT: - - 1.00 - - - - - - - - - - - - - - sh3add.uw a0, a0, a0 291# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - sh1add a0, a0, a0 292# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - sh2add a0, a0, a0 293# CHECK-NEXT: - - - 1.00 - - - - - - - - - - - - - sh3add a0, a0, a0 294# CHECK-NEXT: - - 1.00 - - - - - - - - - - - - - - andn a0, a0, a0 295# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - orn a0, a0, a0 296# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - xnor a0, a0, a0 297# CHECK-NEXT: - - - 1.00 - - - - - - - - - - - - - sext.b a0, a0 298# CHECK-NEXT: - - 1.00 - - - - - - - - - - - - - - sext.h a0, a0 299# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - zext.h a0, a0 300# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - min a0, a0, a0 301# CHECK-NEXT: - - - 1.00 - - - - - - - - - - - - - minu a0, a0, a0 302# CHECK-NEXT: - - 1.00 - - - - - - - - - - - - - - max a0, a0, a0 303# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - maxu a0, a0, a0 304# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - rol a0, a0, a0 305# CHECK-NEXT: - - - 1.00 - - - - - - - - - - - - - ror a0, a0, a0 306# CHECK-NEXT: - - 1.00 - - - - - - - - - - - - - - rori a0, a0, 1 307# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - - - clz a0, a0 308# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - clzw a0, a0 309# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - - - ctz a0, a0 310# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - ctzw a0, a0 311# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - - - cpop a0, a0 312# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - add a0, a0, a0 313# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - cpopw a0, a0 314# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - add a0, a0, a0 315# CHECK-NEXT: - - - 1.00 - - - - - - - - - - - - - rev8 a0, a0 316# CHECK-NEXT: - - 1.00 - - - - - - - - - - - - - - orc.b a0, a0 317# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - lb a0, 0(a0) 318# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - add a0, a0, a0 319# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - lh a0, 0(a0) 320# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - and a0, a0, a0 321# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - lw a0, 0(a0) 322# CHECK-NEXT: - - - 1.00 - - - - - - - - - - - - - or a0, a0, a0 323# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - ld a0, 0(a0) 324# CHECK-NEXT: - - 1.00 - - - - - - - - - - - - - - xor a0, a0, a0 325# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - lbu a0, 0(a0) 326# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - addi a0, a0, 1 327# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - lhu a0, 0(a0) 328# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - sub a0, a0, a0 329# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - lwu a0, 0(a0) 330# CHECK-NEXT: - - - 1.00 - - - - - - - - - - - - - addw a0, a0, a0 331# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - jr a0 332 333# CHECK: Timeline view: 334# CHECK-NEXT: 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 335# CHECK-NEXT: Index 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123 336 337# CHECK: [0,0] DeER . . . . . . . . . . . . . . . . . . . . . . . . . lui a0, 1 338# CHECK-NEXT: [0,1] DeER . . . . . . . . . . . . . . . . . . . . . . . . . auipc a1, 1 339# CHECK-NEXT: [0,2] D=eER. . . . . . . . . . . . . . . . . . . . . . . . . add a0, a0, a1 340# CHECK-NEXT: [0,3] D==eER . . . . . . . . . . . . . . . . . . . . . . . . addi a0, a0, 1 341# CHECK-NEXT: [0,4] D===eER . . . . . . . . . . . . . . . . . . . . . . . . addw a0, a0, a0 342# CHECK-NEXT: [0,5] D====eER . . . . . . . . . . . . . . . . . . . . . . . . addiw a0, a0, 1 343# CHECK-NEXT: [0,6] .D====eER . . . . . . . . . . . . . . . . . . . . . . . . sub a0, a0, a0 344# CHECK-NEXT: [0,7] .D=====eER. . . . . . . . . . . . . . . . . . . . . . . . subw a0, a0, a0 345# CHECK-NEXT: [0,8] .D======eER . . . . . . . . . . . . . . . . . . . . . . . and a0, a0, a0 346# CHECK-NEXT: [0,9] .D=======eER . . . . . . . . . . . . . . . . . . . . . . . andi a0, a0, 1 347# CHECK-NEXT: [0,10] .D========eER . . . . . . . . . . . . . . . . . . . . . . . or a0, a0, a0 348# CHECK-NEXT: [0,11] .D=========eER . . . . . . . . . . . . . . . . . . . . . . . ori a0, a0, 1 349# CHECK-NEXT: [0,12] . D=========eER. . . . . . . . . . . . . . . . . . . . . . . xor a0, a0, a0 350# CHECK-NEXT: [0,13] . D==========eER . . . . . . . . . . . . . . . . . . . . . . xori a0, a0, 1 351# CHECK-NEXT: [0,14] . D===========eER . . . . . . . . . . . . . . . . . . . . . . sll a0, a0, a0 352# CHECK-NEXT: [0,15] . D============eER . . . . . . . . . . . . . . . . . . . . . . slli a0, a0, 1 353# CHECK-NEXT: [0,16] . D=============eER . . . . . . . . . . . . . . . . . . . . . . sllw a0, a0, a0 354# CHECK-NEXT: [0,17] . D==============eER. . . . . . . . . . . . . . . . . . . . . . slliw a0, a0, 1 355# CHECK-NEXT: [0,18] . D==============eER . . . . . . . . . . . . . . . . . . . . . srl a0, a0, a0 356# CHECK-NEXT: [0,19] . D===============eER . . . . . . . . . . . . . . . . . . . . . srli a0, a0, 1 357# CHECK-NEXT: [0,20] . D===============eER . . . . . . . . . . . . . . . . . . . . . srlw a0, a0, a0 358# CHECK-NEXT: [0,21] . D===============eER . . . . . . . . . . . . . . . . . . . . . srliw a0, a0, 1 359# CHECK-NEXT: [0,22] . .D===============eER. . . . . . . . . . . . . . . . . . . . . sra a0, a0, a0 360# CHECK-NEXT: [0,23] . . D===============eER . . . . . . . . . . . . . . . . . . . . srai a0, a0, 1 361# CHECK-NEXT: [0,24] . . D===============eER . . . . . . . . . . . . . . . . . . . . sraw a0, a0, a0 362# CHECK-NEXT: [0,25] . . D===============eER . . . . . . . . . . . . . . . . . . . . sraiw a0, a0, 1 363# CHECK-NEXT: [0,26] . . D===============eER . . . . . . . . . . . . . . . . . . . . slt a0, a0, a0 364# CHECK-NEXT: [0,27] . . .D===============eER. . . . . . . . . . . . . . . . . . . . slti a0, a0, 1 365# CHECK-NEXT: [0,28] . . . D===============eER . . . . . . . . . . . . . . . . . . . sltu a0, a0, a0 366# CHECK-NEXT: [0,29] . . . D===============eER . . . . . . . . . . . . . . . . . . . seqz a0, a0 367# CHECK-NEXT: [0,30] . . . D================eeeER. . . . . . . . . . . . . . . . . . . mul a0, a0, a0 368# CHECK-NEXT: [0,31] . . . D==================eER . . . . . . . . . . . . . . . . . . add a0, a0, a0 369# CHECK-NEXT: [0,32] . . . D===================eeeER . . . . . . . . . . . . . . . . . . mulw a0, a0, a0 370# CHECK-NEXT: [0,33] . . . D=====================eER. . . . . . . . . . . . . . . . . . add a0, a0, a0 371# CHECK-NEXT: [0,34] . . . D======================eER . . . . . . . . . . . . . . . . . beq a0, a0, .Ltmp0 372# CHECK-NEXT: [0,35] . . . .D=====================eER . . . . . . . . . . . . . . . . . add a0, a0, a0 373# CHECK-NEXT: [0,36] . . . .D======================eER . . . . . . . . . . . . . . . . . bne a0, a0, .Ltmp1 374# CHECK-NEXT: [0,37] . . . . D=====================eER . . . . . . . . . . . . . . . . . add a0, a0, a0 375# CHECK-NEXT: [0,38] . . . . D======================eER . . . . . . . . . . . . . . . . . blt a0, a0, .Ltmp2 376# CHECK-NEXT: [0,39] . . . . D=====================eER . . . . . . . . . . . . . . . . . add a0, a0, a0 377# CHECK-NEXT: [0,40] . . . . D======================eER . . . . . . . . . . . . . . . . . bltu a0, a0, .Ltmp3 378# CHECK-NEXT: [0,41] . . . . D=====================eER . . . . . . . . . . . . . . . . . add a0, a0, a0 379# CHECK-NEXT: [0,42] . . . . D======================eER. . . . . . . . . . . . . . . . . bge a0, a0, .Ltmp4 380# CHECK-NEXT: [0,43] . . . . D=====================eER. . . . . . . . . . . . . . . . . add a0, a0, a0 381# CHECK-NEXT: [0,44] . . . . D======================eER . . . . . . . . . . . . . . . . bgeu a0, a0, .Ltmp5 382# CHECK-NEXT: [0,45] . . . . .D=====================eER . . . . . . . . . . . . . . . . add.uw a0, a0, a0 383# CHECK-NEXT: [0,46] . . . . . D=====================eER . . . . . . . . . . . . . . . . slli.uw a0, a0, 1 384# CHECK-NEXT: [0,47] . . . . . D=====================eER . . . . . . . . . . . . . . . . sh1add.uw a0, a0, a0 385# CHECK-NEXT: [0,48] . . . . . D=====================eER . . . . . . . . . . . . . . . . sh2add.uw a0, a0, a0 386# CHECK-NEXT: [0,49] . . . . . D=====================eER. . . . . . . . . . . . . . . . sh3add.uw a0, a0, a0 387# CHECK-NEXT: [0,50] . . . . . .D=====================eER . . . . . . . . . . . . . . . sh1add a0, a0, a0 388# CHECK-NEXT: [0,51] . . . . . . D=====================eER . . . . . . . . . . . . . . . sh2add a0, a0, a0 389# CHECK-NEXT: [0,52] . . . . . . D=====================eER . . . . . . . . . . . . . . . sh3add a0, a0, a0 390# CHECK-NEXT: [0,53] . . . . . . D=====================eER . . . . . . . . . . . . . . . andn a0, a0, a0 391# CHECK-NEXT: [0,54] . . . . . . . D==================eER. . . . . . . . . . . . . . . orn a0, a0, a0 392# CHECK-NEXT: [0,55] . . . . . . . . D===============eER . . . . . . . . . . . . . . xnor a0, a0, a0 393# CHECK-NEXT: [0,56] . . . . . . . . D===============eER . . . . . . . . . . . . . . sext.b a0, a0 394# CHECK-NEXT: [0,57] . . . . . . . . D===============eER . . . . . . . . . . . . . . sext.h a0, a0 395# CHECK-NEXT: [0,58] . . . . . . . . D===============eER . . . . . . . . . . . . . . zext.h a0, a0 396# CHECK-NEXT: [0,59] . . . . . . . . .D===============eER. . . . . . . . . . . . . . min a0, a0, a0 397# CHECK-NEXT: [0,60] . . . . . . . . . D===============eER . . . . . . . . . . . . . minu a0, a0, a0 398# CHECK-NEXT: [0,61] . . . . . . . . . D===============eER . . . . . . . . . . . . . max a0, a0, a0 399# CHECK-NEXT: [0,62] . . . . . . . . . D===============eER . . . . . . . . . . . . . maxu a0, a0, a0 400# CHECK-NEXT: [0,63] . . . . . . . . . D===============eER . . . . . . . . . . . . . rol a0, a0, a0 401# CHECK-NEXT: [0,64] . . . . . . . . . .D===============eER. . . . . . . . . . . . . ror a0, a0, a0 402# CHECK-NEXT: [0,65] . . . . . . . . . . D===============eER . . . . . . . . . . . . rori a0, a0, 1 403# CHECK-NEXT: [0,66] . . . . . . . . . . D================eeeER . . . . . . . . . . . . clz a0, a0 404# CHECK-NEXT: [0,67] . . . . . . . . . . D===================eeeER . . . . . . . . . . . clzw a0, a0 405# CHECK-NEXT: [0,68] . . . . . . . . . . D======================eeeER. . . . . . . . . . . ctz a0, a0 406# CHECK-NEXT: [0,69] . . . . . . . . . . D=========================eeeER . . . . . . . . . . ctzw a0, a0 407# CHECK-NEXT: [0,70] . . . . . . . . . . D============================eeeER . . . . . . . . . cpop a0, a0 408# CHECK-NEXT: [0,71] . . . . . . . . . . D==============================eER . . . . . . . . . add a0, a0, a0 409# CHECK-NEXT: [0,72] . . . . . . . . . . D===============================eeeER. . . . . . . . . cpopw a0, a0 410# CHECK-NEXT: [0,73] . . . . . . . . . . D=================================eER . . . . . . . . add a0, a0, a0 411# CHECK-NEXT: [0,74] . . . . . . . . . . D=================================eER . . . . . . . . rev8 a0, a0 412# CHECK-NEXT: [0,75] . . . . . . . . . . .D=================================eER . . . . . . . . orc.b a0, a0 413# CHECK-NEXT: [0,76] . . . . . . . . . . .D==================================eeeeeER . . . . . . . lb a0, 0(a0) 414# CHECK-NEXT: [0,77] . . . . . . . . . . . D=====================================eER . . . . . . . add a0, a0, a0 415# CHECK-NEXT: [0,78] . . . . . . . . . . . D======================================eeeeeER . . . . . . lh a0, 0(a0) 416# CHECK-NEXT: [0,79] . . . . . . . . . . . D=========================================eER . . . . . . and a0, a0, a0 417# CHECK-NEXT: [0,80] . . . . . . . . . . . D==========================================eeeeeER . . . . . lw a0, 0(a0) 418# CHECK-NEXT: [0,81] . . . . . . . . . . . D=============================================eER . . . . . or a0, a0, a0 419# CHECK-NEXT: [0,82] . . . . . . . . . . . D==============================================eeeeeER . . . . ld a0, 0(a0) 420# CHECK-NEXT: [0,83] . . . . . . . . . . . D=================================================eER . . . . xor a0, a0, a0 421# CHECK-NEXT: [0,84] . . . . . . . . . . . D==================================================eeeeeER . . . lbu a0, 0(a0) 422# CHECK-NEXT: [0,85] . . . . . . . . . . . .D=====================================================eER . . . addi a0, a0, 1 423# CHECK-NEXT: [0,86] . . . . . . . . . . . .D======================================================eeeeeER . . lhu a0, 0(a0) 424# CHECK-NEXT: [0,87] . . . . . . . . . . . . D=========================================================eER . . sub a0, a0, a0 425# CHECK-NEXT: [0,88] . . . . . . . . . . . . D==========================================================eeeeeER. lwu a0, 0(a0) 426# CHECK-NEXT: [0,89] . . . . . . . . . . . . D=============================================================eER. addw a0, a0, a0 427# CHECK-NEXT: [0,90] . . . . . . . . . . . . D==============================================================eER jr a0 428 429# CHECK: Average Wait times (based on the timeline view): 430# CHECK-NEXT: [0]: Executions 431# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 432# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 433# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 434 435# CHECK: [0] [1] [2] [3] 436# CHECK-NEXT: 0. 1 1.0 1.0 0.0 lui a0, 1 437# CHECK-NEXT: 1. 1 1.0 1.0 0.0 auipc a1, 1 438# CHECK-NEXT: 2. 1 2.0 0.0 0.0 add a0, a0, a1 439# CHECK-NEXT: 3. 1 3.0 0.0 0.0 addi a0, a0, 1 440# CHECK-NEXT: 4. 1 4.0 0.0 0.0 addw a0, a0, a0 441# CHECK-NEXT: 5. 1 5.0 0.0 0.0 addiw a0, a0, 1 442# CHECK-NEXT: 6. 1 5.0 0.0 0.0 sub a0, a0, a0 443# CHECK-NEXT: 7. 1 6.0 0.0 0.0 subw a0, a0, a0 444# CHECK-NEXT: 8. 1 7.0 0.0 0.0 and a0, a0, a0 445# CHECK-NEXT: 9. 1 8.0 0.0 0.0 andi a0, a0, 1 446# CHECK-NEXT: 10. 1 9.0 0.0 0.0 or a0, a0, a0 447# CHECK-NEXT: 11. 1 10.0 0.0 0.0 ori a0, a0, 1 448# CHECK-NEXT: 12. 1 10.0 0.0 0.0 xor a0, a0, a0 449# CHECK-NEXT: 13. 1 11.0 0.0 0.0 xori a0, a0, 1 450# CHECK-NEXT: 14. 1 12.0 0.0 0.0 sll a0, a0, a0 451# CHECK-NEXT: 15. 1 13.0 0.0 0.0 slli a0, a0, 1 452# CHECK-NEXT: 16. 1 14.0 0.0 0.0 sllw a0, a0, a0 453# CHECK-NEXT: 17. 1 15.0 0.0 0.0 slliw a0, a0, 1 454# CHECK-NEXT: 18. 1 15.0 0.0 0.0 srl a0, a0, a0 455# CHECK-NEXT: 19. 1 16.0 0.0 0.0 srli a0, a0, 1 456# CHECK-NEXT: 20. 1 16.0 0.0 0.0 srlw a0, a0, a0 457# CHECK-NEXT: 21. 1 16.0 0.0 0.0 srliw a0, a0, 1 458# CHECK-NEXT: 22. 1 16.0 0.0 0.0 sra a0, a0, a0 459# CHECK-NEXT: 23. 1 16.0 0.0 0.0 srai a0, a0, 1 460# CHECK-NEXT: 24. 1 16.0 0.0 0.0 sraw a0, a0, a0 461# CHECK-NEXT: 25. 1 16.0 0.0 0.0 sraiw a0, a0, 1 462# CHECK-NEXT: 26. 1 16.0 0.0 0.0 slt a0, a0, a0 463# CHECK-NEXT: 27. 1 16.0 0.0 0.0 slti a0, a0, 1 464# CHECK-NEXT: 28. 1 16.0 0.0 0.0 sltu a0, a0, a0 465# CHECK-NEXT: 29. 1 16.0 0.0 0.0 seqz a0, a0 466# CHECK-NEXT: 30. 1 17.0 0.0 0.0 mul a0, a0, a0 467# CHECK-NEXT: 31. 1 19.0 0.0 0.0 add a0, a0, a0 468# CHECK-NEXT: 32. 1 20.0 0.0 0.0 mulw a0, a0, a0 469# CHECK-NEXT: 33. 1 22.0 0.0 0.0 add a0, a0, a0 470# CHECK-NEXT: 34. 1 23.0 0.0 0.0 beq a0, a0, .Ltmp0 471# CHECK-NEXT: 35. 1 22.0 0.0 0.0 add a0, a0, a0 472# CHECK-NEXT: 36. 1 23.0 0.0 0.0 bne a0, a0, .Ltmp1 473# CHECK-NEXT: 37. 1 22.0 0.0 0.0 add a0, a0, a0 474# CHECK-NEXT: 38. 1 23.0 0.0 0.0 blt a0, a0, .Ltmp2 475# CHECK-NEXT: 39. 1 22.0 0.0 0.0 add a0, a0, a0 476# CHECK-NEXT: 40. 1 23.0 0.0 0.0 bltu a0, a0, .Ltmp3 477# CHECK-NEXT: 41. 1 22.0 0.0 0.0 add a0, a0, a0 478# CHECK-NEXT: 42. 1 23.0 0.0 0.0 bge a0, a0, .Ltmp4 479# CHECK-NEXT: 43. 1 22.0 0.0 0.0 add a0, a0, a0 480# CHECK-NEXT: 44. 1 23.0 0.0 0.0 bgeu a0, a0, .Ltmp5 481# CHECK-NEXT: 45. 1 22.0 0.0 0.0 add.uw a0, a0, a0 482# CHECK-NEXT: 46. 1 22.0 0.0 0.0 slli.uw a0, a0, 1 483# CHECK-NEXT: 47. 1 22.0 0.0 0.0 sh1add.uw a0, a0, a0 484# CHECK-NEXT: 48. 1 22.0 0.0 0.0 sh2add.uw a0, a0, a0 485# CHECK-NEXT: 49. 1 22.0 0.0 0.0 sh3add.uw a0, a0, a0 486# CHECK-NEXT: 50. 1 22.0 0.0 0.0 sh1add a0, a0, a0 487# CHECK-NEXT: 51. 1 22.0 0.0 0.0 sh2add a0, a0, a0 488# CHECK-NEXT: 52. 1 22.0 0.0 0.0 sh3add a0, a0, a0 489# CHECK-NEXT: 53. 1 22.0 0.0 0.0 andn a0, a0, a0 490# CHECK-NEXT: 54. 1 19.0 0.0 0.0 orn a0, a0, a0 491# CHECK-NEXT: 55. 1 16.0 0.0 0.0 xnor a0, a0, a0 492# CHECK-NEXT: 56. 1 16.0 0.0 0.0 sext.b a0, a0 493# CHECK-NEXT: 57. 1 16.0 0.0 0.0 sext.h a0, a0 494# CHECK-NEXT: 58. 1 16.0 0.0 0.0 zext.h a0, a0 495# CHECK-NEXT: 59. 1 16.0 0.0 0.0 min a0, a0, a0 496# CHECK-NEXT: 60. 1 16.0 0.0 0.0 minu a0, a0, a0 497# CHECK-NEXT: 61. 1 16.0 0.0 0.0 max a0, a0, a0 498# CHECK-NEXT: 62. 1 16.0 0.0 0.0 maxu a0, a0, a0 499# CHECK-NEXT: 63. 1 16.0 0.0 0.0 rol a0, a0, a0 500# CHECK-NEXT: 64. 1 16.0 0.0 0.0 ror a0, a0, a0 501# CHECK-NEXT: 65. 1 16.0 0.0 0.0 rori a0, a0, 1 502# CHECK-NEXT: 66. 1 17.0 0.0 0.0 clz a0, a0 503# CHECK-NEXT: 67. 1 20.0 0.0 0.0 clzw a0, a0 504# CHECK-NEXT: 68. 1 23.0 0.0 0.0 ctz a0, a0 505# CHECK-NEXT: 69. 1 26.0 0.0 0.0 ctzw a0, a0 506# CHECK-NEXT: 70. 1 29.0 0.0 0.0 cpop a0, a0 507# CHECK-NEXT: 71. 1 31.0 0.0 0.0 add a0, a0, a0 508# CHECK-NEXT: 72. 1 32.0 0.0 0.0 cpopw a0, a0 509# CHECK-NEXT: 73. 1 34.0 0.0 0.0 add a0, a0, a0 510# CHECK-NEXT: 74. 1 34.0 0.0 0.0 rev8 a0, a0 511# CHECK-NEXT: 75. 1 34.0 0.0 0.0 orc.b a0, a0 512# CHECK-NEXT: 76. 1 35.0 0.0 0.0 lb a0, 0(a0) 513# CHECK-NEXT: 77. 1 38.0 0.0 0.0 add a0, a0, a0 514# CHECK-NEXT: 78. 1 39.0 0.0 0.0 lh a0, 0(a0) 515# CHECK-NEXT: 79. 1 42.0 0.0 0.0 and a0, a0, a0 516# CHECK-NEXT: 80. 1 43.0 0.0 0.0 lw a0, 0(a0) 517# CHECK-NEXT: 81. 1 46.0 0.0 0.0 or a0, a0, a0 518# CHECK-NEXT: 82. 1 47.0 0.0 0.0 ld a0, 0(a0) 519# CHECK-NEXT: 83. 1 50.0 0.0 0.0 xor a0, a0, a0 520# CHECK-NEXT: 84. 1 51.0 0.0 0.0 lbu a0, 0(a0) 521# CHECK-NEXT: 85. 1 54.0 0.0 0.0 addi a0, a0, 1 522# CHECK-NEXT: 86. 1 55.0 0.0 0.0 lhu a0, 0(a0) 523# CHECK-NEXT: 87. 1 58.0 0.0 0.0 sub a0, a0, a0 524# CHECK-NEXT: 88. 1 59.0 0.0 0.0 lwu a0, 0(a0) 525# CHECK-NEXT: 89. 1 62.0 0.0 0.0 addw a0, a0, a0 526# CHECK-NEXT: 90. 1 63.0 0.0 0.0 jr a0 527# CHECK-NEXT: 1 22.7 0.0 0.0 <total> 528