12b93c9c1SRoman Lebedev# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 22b93c9c1SRoman Lebedev# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver3 -instruction-tables < %s | FileCheck %s 32b93c9c1SRoman Lebedev 42b93c9c1SRoman Lebedevbzhi %eax, %ebx, %ecx 52b93c9c1SRoman Lebedevbzhi %eax, (%rbx), %ecx 62b93c9c1SRoman Lebedev 72b93c9c1SRoman Lebedevbzhi %rax, %rbx, %rcx 82b93c9c1SRoman Lebedevbzhi %rax, (%rbx), %rcx 92b93c9c1SRoman Lebedev 102b93c9c1SRoman Lebedevmulx %eax, %ebx, %ecx 112b93c9c1SRoman Lebedevmulx (%rax), %ebx, %ecx 122b93c9c1SRoman Lebedev 132b93c9c1SRoman Lebedevmulx %rax, %rbx, %rcx 142b93c9c1SRoman Lebedevmulx (%rax), %rbx, %rcx 152b93c9c1SRoman Lebedev 162b93c9c1SRoman Lebedevpdep %eax, %ebx, %ecx 172b93c9c1SRoman Lebedevpdep (%rax), %ebx, %ecx 182b93c9c1SRoman Lebedev 192b93c9c1SRoman Lebedevpdep %rax, %rbx, %rcx 202b93c9c1SRoman Lebedevpdep (%rax), %rbx, %rcx 212b93c9c1SRoman Lebedev 222b93c9c1SRoman Lebedevpext %eax, %ebx, %ecx 232b93c9c1SRoman Lebedevpext (%rax), %ebx, %ecx 242b93c9c1SRoman Lebedev 252b93c9c1SRoman Lebedevpext %rax, %rbx, %rcx 262b93c9c1SRoman Lebedevpext (%rax), %rbx, %rcx 272b93c9c1SRoman Lebedev 282b93c9c1SRoman Lebedevrorx $1, %eax, %ecx 292b93c9c1SRoman Lebedevrorx $1, (%rax), %ecx 302b93c9c1SRoman Lebedev 312b93c9c1SRoman Lebedevrorx $1, %rax, %rcx 322b93c9c1SRoman Lebedevrorx $1, (%rax), %rcx 332b93c9c1SRoman Lebedev 342b93c9c1SRoman Lebedevsarx %eax, %ebx, %ecx 352b93c9c1SRoman Lebedevsarx %eax, (%rbx), %ecx 362b93c9c1SRoman Lebedev 372b93c9c1SRoman Lebedevsarx %rax, %rbx, %rcx 382b93c9c1SRoman Lebedevsarx %rax, (%rbx), %rcx 392b93c9c1SRoman Lebedev 402b93c9c1SRoman Lebedevshlx %eax, %ebx, %ecx 412b93c9c1SRoman Lebedevshlx %eax, (%rbx), %ecx 422b93c9c1SRoman Lebedev 432b93c9c1SRoman Lebedevshlx %rax, %rbx, %rcx 442b93c9c1SRoman Lebedevshlx %rax, (%rbx), %rcx 452b93c9c1SRoman Lebedev 462b93c9c1SRoman Lebedevshrx %eax, %ebx, %ecx 472b93c9c1SRoman Lebedevshrx %eax, (%rbx), %ecx 482b93c9c1SRoman Lebedev 492b93c9c1SRoman Lebedevshrx %rax, %rbx, %rcx 502b93c9c1SRoman Lebedevshrx %rax, (%rbx), %rcx 512b93c9c1SRoman Lebedev 522b93c9c1SRoman Lebedev# CHECK: Instruction Info: 532b93c9c1SRoman Lebedev# CHECK-NEXT: [1]: #uOps 542b93c9c1SRoman Lebedev# CHECK-NEXT: [2]: Latency 552b93c9c1SRoman Lebedev# CHECK-NEXT: [3]: RThroughput 562b93c9c1SRoman Lebedev# CHECK-NEXT: [4]: MayLoad 572b93c9c1SRoman Lebedev# CHECK-NEXT: [5]: MayStore 582b93c9c1SRoman Lebedev# CHECK-NEXT: [6]: HasSideEffects (U) 592b93c9c1SRoman Lebedev 602b93c9c1SRoman Lebedev# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 612b93c9c1SRoman Lebedev# CHECK-NEXT: 1 1 0.50 bzhil %eax, %ebx, %ecx 622b93c9c1SRoman Lebedev# CHECK-NEXT: 2 5 0.50 * bzhil %eax, (%rbx), %ecx 632b93c9c1SRoman Lebedev# CHECK-NEXT: 1 1 0.50 bzhiq %rax, %rbx, %rcx 642b93c9c1SRoman Lebedev# CHECK-NEXT: 2 5 0.50 * bzhiq %rax, (%rbx), %rcx 6511b0568dSRoman Lebedev# CHECK-NEXT: 2 4 1.00 mulxl %eax, %ebx, %ecx 66d4d459e7SRoman Lebedev# CHECK-NEXT: 2 8 1.00 * mulxl (%rax), %ebx, %ecx 672b93c9c1SRoman Lebedev# CHECK-NEXT: 2 4 1.00 mulxq %rax, %rbx, %rcx 68d4d459e7SRoman Lebedev# CHECK-NEXT: 2 8 1.00 * mulxq (%rax), %rbx, %rcx 692b93c9c1SRoman Lebedev# CHECK-NEXT: 1 3 1.00 pdepl %eax, %ebx, %ecx 702b93c9c1SRoman Lebedev# CHECK-NEXT: 1 5 0.33 * pdepl (%rax), %ebx, %ecx 712b93c9c1SRoman Lebedev# CHECK-NEXT: 1 3 1.00 pdepq %rax, %rbx, %rcx 722b93c9c1SRoman Lebedev# CHECK-NEXT: 1 5 0.33 * pdepq (%rax), %rbx, %rcx 732b93c9c1SRoman Lebedev# CHECK-NEXT: 1 3 1.00 pextl %eax, %ebx, %ecx 742b93c9c1SRoman Lebedev# CHECK-NEXT: 1 5 0.33 * pextl (%rax), %ebx, %ecx 752b93c9c1SRoman Lebedev# CHECK-NEXT: 1 3 1.00 pextq %rax, %rbx, %rcx 762b93c9c1SRoman Lebedev# CHECK-NEXT: 1 5 0.33 * pextq (%rax), %rbx, %rcx 772b93c9c1SRoman Lebedev# CHECK-NEXT: 1 1 0.50 rorxl $1, %eax, %ecx 782b93c9c1SRoman Lebedev# CHECK-NEXT: 2 5 0.50 * rorxl $1, (%rax), %ecx 792b93c9c1SRoman Lebedev# CHECK-NEXT: 1 1 0.50 rorxq $1, %rax, %rcx 802b93c9c1SRoman Lebedev# CHECK-NEXT: 2 5 0.50 * rorxq $1, (%rax), %rcx 812b93c9c1SRoman Lebedev# CHECK-NEXT: 1 1 0.50 sarxl %eax, %ebx, %ecx 822b93c9c1SRoman Lebedev# CHECK-NEXT: 2 5 0.50 * sarxl %eax, (%rbx), %ecx 832b93c9c1SRoman Lebedev# CHECK-NEXT: 1 1 0.50 sarxq %rax, %rbx, %rcx 842b93c9c1SRoman Lebedev# CHECK-NEXT: 2 5 0.50 * sarxq %rax, (%rbx), %rcx 852b93c9c1SRoman Lebedev# CHECK-NEXT: 1 1 0.50 shlxl %eax, %ebx, %ecx 862b93c9c1SRoman Lebedev# CHECK-NEXT: 2 5 0.50 * shlxl %eax, (%rbx), %ecx 872b93c9c1SRoman Lebedev# CHECK-NEXT: 1 1 0.50 shlxq %rax, %rbx, %rcx 882b93c9c1SRoman Lebedev# CHECK-NEXT: 2 5 0.50 * shlxq %rax, (%rbx), %rcx 892b93c9c1SRoman Lebedev# CHECK-NEXT: 1 1 0.50 shrxl %eax, %ebx, %ecx 902b93c9c1SRoman Lebedev# CHECK-NEXT: 2 5 0.50 * shrxl %eax, (%rbx), %ecx 912b93c9c1SRoman Lebedev# CHECK-NEXT: 1 1 0.50 shrxq %rax, %rbx, %rcx 922b93c9c1SRoman Lebedev# CHECK-NEXT: 2 5 0.50 * shrxq %rax, (%rbx), %rcx 932b93c9c1SRoman Lebedev 942b93c9c1SRoman Lebedev# CHECK: Resources: 952b93c9c1SRoman Lebedev# CHECK-NEXT: [0] - Zn3AGU0 962b93c9c1SRoman Lebedev# CHECK-NEXT: [1] - Zn3AGU1 972b93c9c1SRoman Lebedev# CHECK-NEXT: [2] - Zn3AGU2 982b93c9c1SRoman Lebedev# CHECK-NEXT: [3] - Zn3ALU0 992b93c9c1SRoman Lebedev# CHECK-NEXT: [4] - Zn3ALU1 1002b93c9c1SRoman Lebedev# CHECK-NEXT: [5] - Zn3ALU2 1012b93c9c1SRoman Lebedev# CHECK-NEXT: [6] - Zn3ALU3 1022b93c9c1SRoman Lebedev# CHECK-NEXT: [7] - Zn3BRU1 103*5fd9babbSSimon Pilgrim# CHECK-NEXT: [8] - Zn3FP0 104*5fd9babbSSimon Pilgrim# CHECK-NEXT: [9] - Zn3FP1 105*5fd9babbSSimon Pilgrim# CHECK-NEXT: [10] - Zn3FP2 106*5fd9babbSSimon Pilgrim# CHECK-NEXT: [11] - Zn3FP3 107*5fd9babbSSimon Pilgrim# CHECK-NEXT: [12.0] - Zn3FP45 108*5fd9babbSSimon Pilgrim# CHECK-NEXT: [12.1] - Zn3FP45 1092b93c9c1SRoman Lebedev# CHECK-NEXT: [13] - Zn3FPSt 1102b93c9c1SRoman Lebedev# CHECK-NEXT: [14.0] - Zn3LSU 1112b93c9c1SRoman Lebedev# CHECK-NEXT: [14.1] - Zn3LSU 1122b93c9c1SRoman Lebedev# CHECK-NEXT: [14.2] - Zn3LSU 1132b93c9c1SRoman Lebedev# CHECK-NEXT: [15.0] - Zn3Load 1142b93c9c1SRoman Lebedev# CHECK-NEXT: [15.1] - Zn3Load 1152b93c9c1SRoman Lebedev# CHECK-NEXT: [15.2] - Zn3Load 1162b93c9c1SRoman Lebedev# CHECK-NEXT: [16.0] - Zn3Store 1172b93c9c1SRoman Lebedev# CHECK-NEXT: [16.1] - Zn3Store 1182b93c9c1SRoman Lebedev 1192b93c9c1SRoman Lebedev# CHECK: Resource pressure per iteration: 1202b93c9c1SRoman Lebedev# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] 121d4d459e7SRoman Lebedev# CHECK-NEXT: 5.33 5.33 5.33 1.00 19.00 11.00 1.00 - - - - - - - - 5.33 5.33 5.33 5.33 5.33 5.33 - - 1222b93c9c1SRoman Lebedev 1232b93c9c1SRoman Lebedev# CHECK: Resource pressure by instruction: 1242b93c9c1SRoman Lebedev# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions: 1252b93c9c1SRoman Lebedev# CHECK-NEXT: - - - - 0.50 0.50 - - - - - - - - - - - - - - - - - bzhil %eax, %ebx, %ecx 1262b93c9c1SRoman Lebedev# CHECK-NEXT: 0.33 0.33 0.33 - 0.50 0.50 - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - bzhil %eax, (%rbx), %ecx 1272b93c9c1SRoman Lebedev# CHECK-NEXT: - - - - 0.50 0.50 - - - - - - - - - - - - - - - - - bzhiq %rax, %rbx, %rcx 1282b93c9c1SRoman Lebedev# CHECK-NEXT: 0.33 0.33 0.33 - 0.50 0.50 - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - bzhiq %rax, (%rbx), %rcx 1292b93c9c1SRoman Lebedev# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - - - - - - - - mulxl %eax, %ebx, %ecx 130d4d459e7SRoman Lebedev# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - mulxl (%rax), %ebx, %ecx 1312b93c9c1SRoman Lebedev# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - - - - - - - - mulxq %rax, %rbx, %rcx 132d4d459e7SRoman Lebedev# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - mulxq (%rax), %rbx, %rcx 1332b93c9c1SRoman Lebedev# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - - - - - - - - pdepl %eax, %ebx, %ecx 1342b93c9c1SRoman Lebedev# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - pdepl (%rax), %ebx, %ecx 1352b93c9c1SRoman Lebedev# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - - - - - - - - pdepq %rax, %rbx, %rcx 1362b93c9c1SRoman Lebedev# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - pdepq (%rax), %rbx, %rcx 1372b93c9c1SRoman Lebedev# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - - - - - - - - pextl %eax, %ebx, %ecx 1382b93c9c1SRoman Lebedev# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - pextl (%rax), %ebx, %ecx 1392b93c9c1SRoman Lebedev# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - - - - - - - - pextq %rax, %rbx, %rcx 1402b93c9c1SRoman Lebedev# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - pextq (%rax), %rbx, %rcx 1412b93c9c1SRoman Lebedev# CHECK-NEXT: - - - - 0.50 0.50 - - - - - - - - - - - - - - - - - rorxl $1, %eax, %ecx 1422b93c9c1SRoman Lebedev# CHECK-NEXT: 0.33 0.33 0.33 - 0.50 0.50 - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - rorxl $1, (%rax), %ecx 1432b93c9c1SRoman Lebedev# CHECK-NEXT: - - - - 0.50 0.50 - - - - - - - - - - - - - - - - - rorxq $1, %rax, %rcx 1442b93c9c1SRoman Lebedev# CHECK-NEXT: 0.33 0.33 0.33 - 0.50 0.50 - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - rorxq $1, (%rax), %rcx 1452b93c9c1SRoman Lebedev# CHECK-NEXT: - - - - 0.50 0.50 - - - - - - - - - - - - - - - - - sarxl %eax, %ebx, %ecx 1462b93c9c1SRoman Lebedev# CHECK-NEXT: 0.33 0.33 0.33 - 0.50 0.50 - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - sarxl %eax, (%rbx), %ecx 1472b93c9c1SRoman Lebedev# CHECK-NEXT: - - - - 0.50 0.50 - - - - - - - - - - - - - - - - - sarxq %rax, %rbx, %rcx 1482b93c9c1SRoman Lebedev# CHECK-NEXT: 0.33 0.33 0.33 - 0.50 0.50 - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - sarxq %rax, (%rbx), %rcx 1492b93c9c1SRoman Lebedev# CHECK-NEXT: - - - - 0.50 0.50 - - - - - - - - - - - - - - - - - shlxl %eax, %ebx, %ecx 1502b93c9c1SRoman Lebedev# CHECK-NEXT: 0.33 0.33 0.33 - 0.50 0.50 - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - shlxl %eax, (%rbx), %ecx 1512b93c9c1SRoman Lebedev# CHECK-NEXT: - - - - 0.50 0.50 - - - - - - - - - - - - - - - - - shlxq %rax, %rbx, %rcx 1522b93c9c1SRoman Lebedev# CHECK-NEXT: 0.33 0.33 0.33 - 0.50 0.50 - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - shlxq %rax, (%rbx), %rcx 1532b93c9c1SRoman Lebedev# CHECK-NEXT: - - - - 0.50 0.50 - - - - - - - - - - - - - - - - - shrxl %eax, %ebx, %ecx 1542b93c9c1SRoman Lebedev# CHECK-NEXT: 0.33 0.33 0.33 - 0.50 0.50 - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - shrxl %eax, (%rbx), %ecx 1552b93c9c1SRoman Lebedev# CHECK-NEXT: - - - - 0.50 0.50 - - - - - - - - - - - - - - - - - shrxq %rax, %rbx, %rcx 1562b93c9c1SRoman Lebedev# CHECK-NEXT: 0.33 0.33 0.33 - 0.50 0.50 - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - shrxq %rax, (%rbx), %rcx 157