198 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s3 4vcvtne2ps2bf16 %xmm16, %xmm17, %xmm195vcvtne2ps2bf16 (%rax), %xmm17, %xmm196vcvtne2ps2bf16 (%rax){1to4}, %xmm17, %xmm197vcvtne2ps2bf16 %xmm16, %xmm17, %xmm19 {k1}8vcvtne2ps2bf16 (%rax), %xmm17, %xmm19 {k1}9vcvtne2ps2bf16 (%rax){1to4}, %xmm17, %xmm19 {k1}10vcvtne2ps2bf16 %xmm16, %xmm17, %xmm19 {k1}{z}11vcvtne2ps2bf16 (%rax), %xmm17, %xmm19 {k1}{z}12vcvtne2ps2bf16 (%rax){1to4}, %xmm17, %xmm19 {k1}{z}13 14vcvtne2ps2bf16 %ymm16, %ymm17, %ymm1915vcvtne2ps2bf16 (%rax), %ymm17, %ymm1916vcvtne2ps2bf16 (%rax){1to8}, %ymm17, %ymm1917vcvtne2ps2bf16 %ymm16, %ymm17, %ymm19 {k1}18vcvtne2ps2bf16 (%rax), %ymm17, %ymm19 {k1}19vcvtne2ps2bf16 (%rax){1to8}, %ymm17, %ymm19 {k1}20vcvtne2ps2bf16 %ymm16, %ymm17, %ymm19 {k1}{z}21vcvtne2ps2bf16 (%rax), %ymm17, %ymm19 {k1}{z}22vcvtne2ps2bf16 (%rax){1to8}, %ymm17, %ymm19 {k1}{z}23 24vcvtneps2bf16x %xmm16, %xmm1925vcvtneps2bf16x (%rax), %xmm1926vcvtneps2bf16 (%rax){1to4}, %xmm1927vcvtneps2bf16 %xmm16, %xmm19 {k1}28vcvtneps2bf16x (%rax), %xmm19 {k1}29vcvtneps2bf16 (%rax){1to4}, %xmm19 {k1}30vcvtneps2bf16 %xmm16, %xmm19 {k1}{z}31vcvtneps2bf16x (%rax), %xmm19 {k1}{z}32vcvtneps2bf16 (%rax){1to4}, %xmm19 {k1}{z}33 34vcvtneps2bf16 %ymm16, %xmm1935vcvtneps2bf16y (%rax), %xmm1936vcvtneps2bf16 (%rax){1to8}, %xmm1937vcvtneps2bf16 %ymm16, %xmm19 {k1}38vcvtneps2bf16y (%rax), %xmm19 {k1}39vcvtneps2bf16 (%rax){1to8}, %xmm19 {k1}40vcvtneps2bf16 %ymm16, %xmm19 {k1}{z}41vcvtneps2bf16y (%rax), %xmm19 {k1}{z}42vcvtneps2bf16 (%rax){1to8}, %xmm19 {k1}{z}43 44vdpbf16ps %xmm16, %xmm17, %xmm1945vdpbf16ps (%rax), %xmm17, %xmm1946vdpbf16ps (%rax){1to4}, %xmm17, %xmm1947vdpbf16ps %xmm16, %xmm17, %xmm19 {k1}48vdpbf16ps (%rax), %xmm17, %xmm19 {k1}49vdpbf16ps (%rax){1to4}, %xmm17, %xmm19 {k1}50vdpbf16ps %xmm16, %xmm17, %xmm19 {k1}{z}51vdpbf16ps (%rax), %xmm17, %xmm19 {k1}{z}52vdpbf16ps (%rax){1to4}, %xmm17, %xmm19 {k1}{z}53 54vdpbf16ps %ymm16, %ymm17, %ymm1955vdpbf16ps (%rax), %ymm17, %ymm1956vdpbf16ps (%rax){1to8}, %ymm17, %ymm1957vdpbf16ps %ymm16, %ymm17, %ymm19 {k1}58vdpbf16ps (%rax), %ymm17, %ymm19 {k1}59vdpbf16ps (%rax){1to8}, %ymm17, %ymm19 {k1}60vdpbf16ps %ymm16, %ymm17, %ymm19 {k1}{z}61vdpbf16ps (%rax), %ymm17, %ymm19 {k1}{z}62vdpbf16ps (%rax){1to8}, %ymm17, %ymm19 {k1}{z}63 64# CHECK: Instruction Info:65# CHECK-NEXT: [1]: #uOps66# CHECK-NEXT: [2]: Latency67# CHECK-NEXT: [3]: RThroughput68# CHECK-NEXT: [4]: MayLoad69# CHECK-NEXT: [5]: MayStore70# CHECK-NEXT: [6]: HasSideEffects (U)71 72# CHECK: [1] [2] [3] [4] [5] [6] Instructions:73# CHECK-NEXT: 2 4 1.00 vcvtne2ps2bf16 %xmm16, %xmm17, %xmm1974# CHECK-NEXT: 3 10 1.00 * vcvtne2ps2bf16 (%rax), %xmm17, %xmm1975# CHECK-NEXT: 3 10 1.00 * vcvtne2ps2bf16 (%rax){1to4}, %xmm17, %xmm1976# CHECK-NEXT: 2 4 1.00 vcvtne2ps2bf16 %xmm16, %xmm17, %xmm19 {%k1}77# CHECK-NEXT: 3 10 1.00 * vcvtne2ps2bf16 (%rax), %xmm17, %xmm19 {%k1}78# CHECK-NEXT: 3 10 1.00 * vcvtne2ps2bf16 (%rax){1to4}, %xmm17, %xmm19 {%k1}79# CHECK-NEXT: 2 4 1.00 vcvtne2ps2bf16 %xmm16, %xmm17, %xmm19 {%k1} {z}80# CHECK-NEXT: 3 10 1.00 * vcvtne2ps2bf16 (%rax), %xmm17, %xmm19 {%k1} {z}81# CHECK-NEXT: 3 10 1.00 * vcvtne2ps2bf16 (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}82# CHECK-NEXT: 2 4 1.00 vcvtne2ps2bf16 %ymm16, %ymm17, %ymm1983# CHECK-NEXT: 3 11 1.00 * vcvtne2ps2bf16 (%rax), %ymm17, %ymm1984# CHECK-NEXT: 3 11 1.00 * vcvtne2ps2bf16 (%rax){1to8}, %ymm17, %ymm1985# CHECK-NEXT: 2 4 1.00 vcvtne2ps2bf16 %ymm16, %ymm17, %ymm19 {%k1}86# CHECK-NEXT: 3 11 1.00 * vcvtne2ps2bf16 (%rax), %ymm17, %ymm19 {%k1}87# CHECK-NEXT: 3 11 1.00 * vcvtne2ps2bf16 (%rax){1to8}, %ymm17, %ymm19 {%k1}88# CHECK-NEXT: 2 4 1.00 vcvtne2ps2bf16 %ymm16, %ymm17, %ymm19 {%k1} {z}89# CHECK-NEXT: 3 11 1.00 * vcvtne2ps2bf16 (%rax), %ymm17, %ymm19 {%k1} {z}90# CHECK-NEXT: 3 11 1.00 * vcvtne2ps2bf16 (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}91# CHECK-NEXT: 2 4 1.00 vcvtneps2bf16 %xmm16, %xmm1992# CHECK-NEXT: 3 10 1.00 * vcvtneps2bf16x (%rax), %xmm1993# CHECK-NEXT: 3 10 1.00 * vcvtneps2bf16 (%rax){1to4}, %xmm1994# CHECK-NEXT: 2 4 1.00 vcvtneps2bf16 %xmm16, %xmm19 {%k1}95# CHECK-NEXT: 3 10 1.00 * vcvtneps2bf16x (%rax), %xmm19 {%k1}96# CHECK-NEXT: 3 10 1.00 * vcvtneps2bf16 (%rax){1to4}, %xmm19 {%k1}97# CHECK-NEXT: 2 4 1.00 vcvtneps2bf16 %xmm16, %xmm19 {%k1} {z}98# CHECK-NEXT: 3 10 1.00 * vcvtneps2bf16x (%rax), %xmm19 {%k1} {z}99# CHECK-NEXT: 3 10 1.00 * vcvtneps2bf16 (%rax){1to4}, %xmm19 {%k1} {z}100# CHECK-NEXT: 2 4 1.00 vcvtneps2bf16 %ymm16, %xmm19101# CHECK-NEXT: 3 11 1.00 * vcvtneps2bf16y (%rax), %xmm19102# CHECK-NEXT: 3 11 1.00 * vcvtneps2bf16 (%rax){1to8}, %xmm19103# CHECK-NEXT: 2 4 1.00 vcvtneps2bf16 %ymm16, %xmm19 {%k1}104# CHECK-NEXT: 3 11 1.00 * vcvtneps2bf16y (%rax), %xmm19 {%k1}105# CHECK-NEXT: 3 11 1.00 * vcvtneps2bf16 (%rax){1to8}, %xmm19 {%k1}106# CHECK-NEXT: 2 4 1.00 vcvtneps2bf16 %ymm16, %xmm19 {%k1} {z}107# CHECK-NEXT: 3 11 1.00 * vcvtneps2bf16y (%rax), %xmm19 {%k1} {z}108# CHECK-NEXT: 3 11 1.00 * vcvtneps2bf16 (%rax){1to8}, %xmm19 {%k1} {z}109# CHECK-NEXT: 1 5 0.50 vdpbf16ps %xmm16, %xmm17, %xmm19110# CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax), %xmm17, %xmm19111# CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax){1to4}, %xmm17, %xmm19112# CHECK-NEXT: 1 5 0.50 vdpbf16ps %xmm16, %xmm17, %xmm19 {%k1}113# CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax), %xmm17, %xmm19 {%k1}114# CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax){1to4}, %xmm17, %xmm19 {%k1}115# CHECK-NEXT: 1 5 0.50 vdpbf16ps %xmm16, %xmm17, %xmm19 {%k1} {z}116# CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax), %xmm17, %xmm19 {%k1} {z}117# CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}118# CHECK-NEXT: 1 5 0.50 vdpbf16ps %ymm16, %ymm17, %ymm19119# CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax), %ymm17, %ymm19120# CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax){1to8}, %ymm17, %ymm19121# CHECK-NEXT: 1 5 0.50 vdpbf16ps %ymm16, %ymm17, %ymm19 {%k1}122# CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax), %ymm17, %ymm19 {%k1}123# CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax){1to8}, %ymm17, %ymm19 {%k1}124# CHECK-NEXT: 1 5 0.50 vdpbf16ps %ymm16, %ymm17, %ymm19 {%k1} {z}125# CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax), %ymm17, %ymm19 {%k1} {z}126# CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}127 128# CHECK: Resources:129# CHECK-NEXT: [0] - SBDivider130# CHECK-NEXT: [1] - SBFPDivider131# CHECK-NEXT: [2] - SBPort0132# CHECK-NEXT: [3] - SBPort1133# CHECK-NEXT: [4] - SBPort4134# CHECK-NEXT: [5] - SBPort5135# CHECK-NEXT: [6.0] - SBPort23136# CHECK-NEXT: [6.1] - SBPort23137 138# CHECK: Resource pressure per iteration:139# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]140# CHECK-NEXT: - - 9.00 45.00 - 36.00 18.00 18.00141 142# CHECK: Resource pressure by instruction:143# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:144# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtne2ps2bf16 %xmm16, %xmm17, %xmm19145# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax), %xmm17, %xmm19146# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax){1to4}, %xmm17, %xmm19147# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtne2ps2bf16 %xmm16, %xmm17, %xmm19 {%k1}148# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax), %xmm17, %xmm19 {%k1}149# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax){1to4}, %xmm17, %xmm19 {%k1}150# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtne2ps2bf16 %xmm16, %xmm17, %xmm19 {%k1} {z}151# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax), %xmm17, %xmm19 {%k1} {z}152# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}153# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtne2ps2bf16 %ymm16, %ymm17, %ymm19154# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax), %ymm17, %ymm19155# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax){1to8}, %ymm17, %ymm19156# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtne2ps2bf16 %ymm16, %ymm17, %ymm19 {%k1}157# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax), %ymm17, %ymm19 {%k1}158# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax){1to8}, %ymm17, %ymm19 {%k1}159# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtne2ps2bf16 %ymm16, %ymm17, %ymm19 {%k1} {z}160# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax), %ymm17, %ymm19 {%k1} {z}161# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}162# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtneps2bf16 %xmm16, %xmm19163# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16x (%rax), %xmm19164# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16 (%rax){1to4}, %xmm19165# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtneps2bf16 %xmm16, %xmm19 {%k1}166# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16x (%rax), %xmm19 {%k1}167# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16 (%rax){1to4}, %xmm19 {%k1}168# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtneps2bf16 %xmm16, %xmm19 {%k1} {z}169# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16x (%rax), %xmm19 {%k1} {z}170# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16 (%rax){1to4}, %xmm19 {%k1} {z}171# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtneps2bf16 %ymm16, %xmm19172# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16y (%rax), %xmm19173# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16 (%rax){1to8}, %xmm19174# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtneps2bf16 %ymm16, %xmm19 {%k1}175# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16y (%rax), %xmm19 {%k1}176# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16 (%rax){1to8}, %xmm19 {%k1}177# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtneps2bf16 %ymm16, %xmm19 {%k1} {z}178# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16y (%rax), %xmm19 {%k1} {z}179# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16 (%rax){1to8}, %xmm19 {%k1} {z}180# CHECK-NEXT: - - 0.50 0.50 - - - - vdpbf16ps %xmm16, %xmm17, %xmm19181# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax), %xmm17, %xmm19182# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax){1to4}, %xmm17, %xmm19183# CHECK-NEXT: - - 0.50 0.50 - - - - vdpbf16ps %xmm16, %xmm17, %xmm19 {%k1}184# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax), %xmm17, %xmm19 {%k1}185# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax){1to4}, %xmm17, %xmm19 {%k1}186# CHECK-NEXT: - - 0.50 0.50 - - - - vdpbf16ps %xmm16, %xmm17, %xmm19 {%k1} {z}187# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax), %xmm17, %xmm19 {%k1} {z}188# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}189# CHECK-NEXT: - - 0.50 0.50 - - - - vdpbf16ps %ymm16, %ymm17, %ymm19190# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax), %ymm17, %ymm19191# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax){1to8}, %ymm17, %ymm19192# CHECK-NEXT: - - 0.50 0.50 - - - - vdpbf16ps %ymm16, %ymm17, %ymm19 {%k1}193# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax), %ymm17, %ymm19 {%k1}194# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax){1to8}, %ymm17, %ymm19 {%k1}195# CHECK-NEXT: - - 0.50 0.50 - - - - vdpbf16ps %ymm16, %ymm17, %ymm19 {%k1} {z}196# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax), %ymm17, %ymm19 {%k1} {z}197# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}198