265 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=lunarlake -instruction-tables < %s | FileCheck %s3 4pabsb %mm0, %mm25pabsb (%rax), %mm26 7pabsb %xmm0, %xmm28pabsb (%rax), %xmm29 10pabsd %mm0, %mm211pabsd (%rax), %mm212 13pabsd %xmm0, %xmm214pabsd (%rax), %xmm215 16pabsw %mm0, %mm217pabsw (%rax), %mm218 19pabsw %xmm0, %xmm220pabsw (%rax), %xmm221 22palignr $1, %mm0, %mm223palignr $1, (%rax), %mm224 25palignr $1, %xmm0, %xmm226palignr $1, (%rax), %xmm227 28phaddd %mm0, %mm229phaddd (%rax), %mm230 31phaddd %xmm0, %xmm232phaddd (%rax), %xmm233 34phaddsw %mm0, %mm235phaddsw (%rax), %mm236 37phaddsw %xmm0, %xmm238phaddsw (%rax), %xmm239 40phaddw %mm0, %mm241phaddw (%rax), %mm242 43phaddw %xmm0, %xmm244phaddw (%rax), %xmm245 46phsubd %mm0, %mm247phsubd (%rax), %mm248 49phsubd %xmm0, %xmm250phsubd (%rax), %xmm251 52phsubsw %mm0, %mm253phsubsw (%rax), %mm254 55phsubsw %xmm0, %xmm256phsubsw (%rax), %xmm257 58phsubw %mm0, %mm259phsubw (%rax), %mm260 61phsubw %xmm0, %xmm262phsubw (%rax), %xmm263 64pmaddubsw %mm0, %mm265pmaddubsw (%rax), %mm266 67pmaddubsw %xmm0, %xmm268pmaddubsw (%rax), %xmm269 70pmulhrsw %mm0, %mm271pmulhrsw (%rax), %mm272 73pmulhrsw %xmm0, %xmm274pmulhrsw (%rax), %xmm275 76pshufb %mm0, %mm277pshufb (%rax), %mm278 79pshufb %xmm0, %xmm280pshufb (%rax), %xmm281 82psignb %mm0, %mm283psignb (%rax), %mm284 85psignb %xmm0, %xmm286psignb (%rax), %xmm287 88psignd %mm0, %mm289psignd (%rax), %mm290 91psignd %xmm0, %xmm292psignd (%rax), %xmm293 94psignw %mm0, %mm295psignw (%rax), %mm296 97psignw %xmm0, %xmm298psignw (%rax), %xmm299 100# CHECK: Instruction Info:101# CHECK-NEXT: [1]: #uOps102# CHECK-NEXT: [2]: Latency103# CHECK-NEXT: [3]: RThroughput104# CHECK-NEXT: [4]: MayLoad105# CHECK-NEXT: [5]: MayStore106# CHECK-NEXT: [6]: HasSideEffects (U)107 108# CHECK: [1] [2] [3] [4] [5] [6] Instructions:109# CHECK-NEXT: 1 1 1.00 pabsb %mm0, %mm2110# CHECK-NEXT: 2 9 1.00 * pabsb (%rax), %mm2111# CHECK-NEXT: 1 1 0.50 pabsb %xmm0, %xmm2112# CHECK-NEXT: 1 7 2.00 * pabsb (%rax), %xmm2113# CHECK-NEXT: 1 1 1.00 pabsd %mm0, %mm2114# CHECK-NEXT: 2 9 1.00 * pabsd (%rax), %mm2115# CHECK-NEXT: 1 1 0.50 pabsd %xmm0, %xmm2116# CHECK-NEXT: 1 7 2.00 * pabsd (%rax), %xmm2117# CHECK-NEXT: 1 1 1.00 pabsw %mm0, %mm2118# CHECK-NEXT: 2 9 1.00 * pabsw (%rax), %mm2119# CHECK-NEXT: 1 1 0.50 pabsw %xmm0, %xmm2120# CHECK-NEXT: 1 7 2.00 * pabsw (%rax), %xmm2121# CHECK-NEXT: 1 1 0.50 palignr $1, %mm0, %mm2122# CHECK-NEXT: 2 9 0.50 * palignr $1, (%rax), %mm2123# CHECK-NEXT: 1 1 0.33 palignr $1, %xmm0, %xmm2124# CHECK-NEXT: 2 7 2.00 * palignr $1, (%rax), %xmm2125# CHECK-NEXT: 3 3 1.00 phaddd %mm0, %mm2126# CHECK-NEXT: 4 11 1.00 * phaddd (%rax), %mm2127# CHECK-NEXT: 3 2 1.00 phaddd %xmm0, %xmm2128# CHECK-NEXT: 4 9 1.00 * phaddd (%rax), %xmm2129# CHECK-NEXT: 3 3 0.67 phaddsw %mm0, %mm2130# CHECK-NEXT: 4 11 0.67 * phaddsw (%rax), %mm2131# CHECK-NEXT: 3 2 1.00 phaddsw %xmm0, %xmm2132# CHECK-NEXT: 4 9 1.00 * phaddsw (%rax), %xmm2133# CHECK-NEXT: 3 3 1.00 phaddw %mm0, %mm2134# CHECK-NEXT: 4 11 1.00 * phaddw (%rax), %mm2135# CHECK-NEXT: 3 2 1.00 phaddw %xmm0, %xmm2136# CHECK-NEXT: 4 9 1.00 * phaddw (%rax), %xmm2137# CHECK-NEXT: 3 3 1.00 phsubd %mm0, %mm2138# CHECK-NEXT: 4 11 1.00 * phsubd (%rax), %mm2139# CHECK-NEXT: 3 2 1.00 phsubd %xmm0, %xmm2140# CHECK-NEXT: 4 9 1.00 * phsubd (%rax), %xmm2141# CHECK-NEXT: 3 3 0.67 phsubsw %mm0, %mm2142# CHECK-NEXT: 4 11 0.67 * phsubsw (%rax), %mm2143# CHECK-NEXT: 3 2 1.00 phsubsw %xmm0, %xmm2144# CHECK-NEXT: 4 9 1.00 * phsubsw (%rax), %xmm2145# CHECK-NEXT: 3 3 1.00 phsubw %mm0, %mm2146# CHECK-NEXT: 4 11 1.00 * phsubw (%rax), %mm2147# CHECK-NEXT: 3 2 1.00 phsubw %xmm0, %xmm2148# CHECK-NEXT: 4 9 1.00 * phsubw (%rax), %xmm2149# CHECK-NEXT: 1 5 0.50 pmaddubsw %mm0, %mm2150# CHECK-NEXT: 2 13 0.50 * pmaddubsw (%rax), %mm2151# CHECK-NEXT: 1 4 2.00 pmaddubsw %xmm0, %xmm2152# CHECK-NEXT: 1 10 2.00 * pmaddubsw (%rax), %xmm2153# CHECK-NEXT: 1 5 0.50 pmulhrsw %mm0, %mm2154# CHECK-NEXT: 2 13 0.50 * pmulhrsw (%rax), %mm2155# CHECK-NEXT: 1 4 2.00 pmulhrsw %xmm0, %xmm2156# CHECK-NEXT: 1 10 2.00 * pmulhrsw (%rax), %xmm2157# CHECK-NEXT: 2 3 0.50 pshufb %mm0, %mm2158# CHECK-NEXT: 3 11 0.50 * pshufb (%rax), %mm2159# CHECK-NEXT: 1 1 0.50 pshufb %xmm0, %xmm2160# CHECK-NEXT: 2 7 2.00 * pshufb (%rax), %xmm2161# CHECK-NEXT: 1 1 1.00 psignb %mm0, %mm2162# CHECK-NEXT: 2 9 1.00 * psignb (%rax), %mm2163# CHECK-NEXT: 1 1 0.50 psignb %xmm0, %xmm2164# CHECK-NEXT: 1 7 2.00 * psignb (%rax), %xmm2165# CHECK-NEXT: 1 1 1.00 psignd %mm0, %mm2166# CHECK-NEXT: 2 9 1.00 * psignd (%rax), %mm2167# CHECK-NEXT: 1 1 0.50 psignd %xmm0, %xmm2168# CHECK-NEXT: 1 7 2.00 * psignd (%rax), %xmm2169# CHECK-NEXT: 1 1 1.00 psignw %mm0, %mm2170# CHECK-NEXT: 2 9 1.00 * psignw (%rax), %mm2171# CHECK-NEXT: 1 1 0.50 psignw %xmm0, %xmm2172# CHECK-NEXT: 1 7 2.00 * psignw (%rax), %xmm2173 174# CHECK: Resources:175# CHECK-NEXT: [0] - LNLPPort00176# CHECK-NEXT: [1] - LNLPPort01177# CHECK-NEXT: [2] - LNLPPort02178# CHECK-NEXT: [3] - LNLPPort03179# CHECK-NEXT: [4] - LNLPPort04180# CHECK-NEXT: [5] - LNLPPort05181# CHECK-NEXT: [6] - LNLPPort10182# CHECK-NEXT: [7] - LNLPPort11183# CHECK-NEXT: [8] - LNLPPort20184# CHECK-NEXT: [9] - LNLPPort21185# CHECK-NEXT: [10] - LNLPPort22186# CHECK-NEXT: [11] - LNLPPort25187# CHECK-NEXT: [12] - LNLPPort26188# CHECK-NEXT: [13] - LNLPPort27189# CHECK-NEXT: [14] - LNLPPortInvalid190# CHECK-NEXT: [15] - LNLPVPort00191# CHECK-NEXT: [16] - LNLPVPort01192# CHECK-NEXT: [17] - LNLPVPort02193# CHECK-NEXT: [18] - LNLPVPort03194 195# CHECK: Resource pressure per iteration:196# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18]197# CHECK-NEXT: - 3.00 - 3.00 - 3.00 - - 27.33 27.33 27.33 - - - - 36.50 24.50 28.00 28.00198 199# CHECK: Resource pressure by instruction:200# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] Instructions:201# CHECK-NEXT: - - - - - - - - - - - - - - - 1.00 - - - pabsb %mm0, %mm2202# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 1.00 - - - pabsb (%rax), %mm2203# CHECK-NEXT: - - - - - - - - - - - - - - - 0.50 0.50 - - pabsb %xmm0, %xmm2204# CHECK-NEXT: - - - - - - - - 2.00 2.00 2.00 - - - - 0.50 0.50 - - pabsb (%rax), %xmm2205# CHECK-NEXT: - - - - - - - - - - - - - - - 1.00 - - - pabsd %mm0, %mm2206# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 1.00 - - - pabsd (%rax), %mm2207# CHECK-NEXT: - - - - - - - - - - - - - - - 0.50 0.50 - - pabsd %xmm0, %xmm2208# CHECK-NEXT: - - - - - - - - 2.00 2.00 2.00 - - - - 0.50 0.50 - - pabsd (%rax), %xmm2209# CHECK-NEXT: - - - - - - - - - - - - - - - 1.00 - - - pabsw %mm0, %mm2210# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 1.00 - - - pabsw (%rax), %mm2211# CHECK-NEXT: - - - - - - - - - - - - - - - 0.50 0.50 - - pabsw %xmm0, %xmm2212# CHECK-NEXT: - - - - - - - - 2.00 2.00 2.00 - - - - 0.50 0.50 - - pabsw (%rax), %xmm2213# CHECK-NEXT: - - - - - - - - - - - - - - - - - 0.50 0.50 palignr $1, %mm0, %mm2214# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - - - 0.50 0.50 palignr $1, (%rax), %mm2215# CHECK-NEXT: - 0.33 - 0.33 - 0.33 - - - - - - - - - - - - - palignr $1, %xmm0, %xmm2216# CHECK-NEXT: - - - - - - - - 2.00 2.00 2.00 - - - - - - 0.50 0.50 palignr $1, (%rax), %xmm2217# CHECK-NEXT: - - - - - - - - - - - - - - - 0.25 0.25 1.25 1.25 phaddd %mm0, %mm2218# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 0.25 0.25 1.25 1.25 phaddd (%rax), %mm2219# CHECK-NEXT: - - - - - - - - - - - - - - - 0.25 0.25 1.25 1.25 phaddd %xmm0, %xmm2220# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 0.25 0.25 1.25 1.25 phaddd (%rax), %xmm2221# CHECK-NEXT: - 0.67 - 0.67 - 0.67 - - - - - - - - - 0.25 0.25 0.25 0.25 phaddsw %mm0, %mm2222# CHECK-NEXT: - 0.67 - 0.67 - 0.67 - - 0.33 0.33 0.33 - - - - 0.50 0.50 - - phaddsw (%rax), %mm2223# CHECK-NEXT: - - - - - - - - - - - - - - - 0.50 0.50 1.00 1.00 phaddsw %xmm0, %xmm2224# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 0.50 0.50 1.00 1.00 phaddsw (%rax), %xmm2225# CHECK-NEXT: - - - - - - - - - - - - - - - 0.25 0.25 1.25 1.25 phaddw %mm0, %mm2226# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 0.25 0.25 1.25 1.25 phaddw (%rax), %mm2227# CHECK-NEXT: - - - - - - - - - - - - - - - 0.25 0.25 1.25 1.25 phaddw %xmm0, %xmm2228# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 0.25 0.25 1.25 1.25 phaddw (%rax), %xmm2229# CHECK-NEXT: - - - - - - - - - - - - - - - 0.25 0.25 1.25 1.25 phsubd %mm0, %mm2230# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 0.25 0.25 1.25 1.25 phsubd (%rax), %mm2231# CHECK-NEXT: - - - - - - - - - - - - - - - 0.25 0.25 1.25 1.25 phsubd %xmm0, %xmm2232# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 0.25 0.25 1.25 1.25 phsubd (%rax), %xmm2233# CHECK-NEXT: - 0.67 - 0.67 - 0.67 - - - - - - - - - 0.25 0.25 0.25 0.25 phsubsw %mm0, %mm2234# CHECK-NEXT: - 0.67 - 0.67 - 0.67 - - 0.33 0.33 0.33 - - - - 0.50 0.50 - - phsubsw (%rax), %mm2235# CHECK-NEXT: - - - - - - - - - - - - - - - 0.50 0.50 1.00 1.00 phsubsw %xmm0, %xmm2236# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 0.50 0.50 1.00 1.00 phsubsw (%rax), %xmm2237# CHECK-NEXT: - - - - - - - - - - - - - - - 0.25 0.25 1.25 1.25 phsubw %mm0, %mm2238# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 0.25 0.25 1.25 1.25 phsubw (%rax), %mm2239# CHECK-NEXT: - - - - - - - - - - - - - - - 0.25 0.25 1.25 1.25 phsubw %xmm0, %xmm2240# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 0.25 0.25 1.25 1.25 phsubw (%rax), %xmm2241# CHECK-NEXT: - - - - - - - - - - - - - - - 0.50 0.50 - - pmaddubsw %mm0, %mm2242# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 0.50 0.50 - - pmaddubsw (%rax), %mm2243# CHECK-NEXT: - - - - - - - - - - - - - - - 2.00 2.00 - - pmaddubsw %xmm0, %xmm2244# CHECK-NEXT: - - - - - - - - 2.00 2.00 2.00 - - - - 2.00 2.00 - - pmaddubsw (%rax), %xmm2245# CHECK-NEXT: - - - - - - - - - - - - - - - 0.50 0.50 - - pmulhrsw %mm0, %mm2246# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 0.50 0.50 - - pmulhrsw (%rax), %mm2247# CHECK-NEXT: - - - - - - - - - - - - - - - 2.00 2.00 - - pmulhrsw %xmm0, %xmm2248# CHECK-NEXT: - - - - - - - - 2.00 2.00 2.00 - - - - 2.00 2.00 - - pmulhrsw (%rax), %xmm2249# CHECK-NEXT: - - - - - - - - - - - - - - - 0.50 0.50 0.50 0.50 pshufb %mm0, %mm2250# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 0.50 0.50 0.50 0.50 pshufb (%rax), %mm2251# CHECK-NEXT: - - - - - - - - - - - - - - - - - 0.50 0.50 pshufb %xmm0, %xmm2252# CHECK-NEXT: - - - - - - - - 2.00 2.00 2.00 - - - - - - 0.50 0.50 pshufb (%rax), %xmm2253# CHECK-NEXT: - - - - - - - - - - - - - - - 1.00 - - - psignb %mm0, %mm2254# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 1.00 - - - psignb (%rax), %mm2255# CHECK-NEXT: - - - - - - - - - - - - - - - 0.50 0.50 - - psignb %xmm0, %xmm2256# CHECK-NEXT: - - - - - - - - 2.00 2.00 2.00 - - - - 0.50 0.50 - - psignb (%rax), %xmm2257# CHECK-NEXT: - - - - - - - - - - - - - - - 1.00 - - - psignd %mm0, %mm2258# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 1.00 - - - psignd (%rax), %mm2259# CHECK-NEXT: - - - - - - - - - - - - - - - 0.50 0.50 - - psignd %xmm0, %xmm2260# CHECK-NEXT: - - - - - - - - 2.00 2.00 2.00 - - - - 0.50 0.50 - - psignd (%rax), %xmm2261# CHECK-NEXT: - - - - - - - - - - - - - - - 1.00 - - - psignw %mm0, %mm2262# CHECK-NEXT: - - - - - - - - 0.33 0.33 0.33 - - - - 1.00 - - - psignw (%rax), %mm2263# CHECK-NEXT: - - - - - - - - - - - - - - - 0.50 0.50 - - psignw %xmm0, %xmm2264# CHECK-NEXT: - - - - - - - - 2.00 2.00 2.00 - - - - 0.50 0.50 - - psignw (%rax), %xmm2265