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