260 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -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 0.50 pabsb %mm0, %mm2110# CHECK-NEXT: 1 6 1.00 * pabsb (%rax), %mm2111# CHECK-NEXT: 1 1 0.50 pabsb %xmm0, %xmm2112# CHECK-NEXT: 1 6 1.00 * pabsb (%rax), %xmm2113# CHECK-NEXT: 1 1 0.50 pabsd %mm0, %mm2114# CHECK-NEXT: 1 6 1.00 * pabsd (%rax), %mm2115# CHECK-NEXT: 1 1 0.50 pabsd %xmm0, %xmm2116# CHECK-NEXT: 1 6 1.00 * pabsd (%rax), %xmm2117# CHECK-NEXT: 1 1 0.50 pabsw %mm0, %mm2118# CHECK-NEXT: 1 6 1.00 * pabsw (%rax), %mm2119# CHECK-NEXT: 1 1 0.50 pabsw %xmm0, %xmm2120# CHECK-NEXT: 1 6 1.00 * pabsw (%rax), %xmm2121# CHECK-NEXT: 1 1 0.50 palignr $1, %mm0, %mm2122# CHECK-NEXT: 1 6 1.00 * palignr $1, (%rax), %mm2123# CHECK-NEXT: 1 1 0.50 palignr $1, %xmm0, %xmm2124# CHECK-NEXT: 1 6 1.00 * palignr $1, (%rax), %xmm2125# CHECK-NEXT: 1 1 0.50 phaddd %mm0, %mm2126# CHECK-NEXT: 1 6 1.00 * phaddd (%rax), %mm2127# CHECK-NEXT: 1 2 0.50 phaddd %xmm0, %xmm2128# CHECK-NEXT: 1 7 1.00 * phaddd (%rax), %xmm2129# CHECK-NEXT: 1 1 0.50 phaddsw %mm0, %mm2130# CHECK-NEXT: 1 6 1.00 * phaddsw (%rax), %mm2131# CHECK-NEXT: 1 2 0.50 phaddsw %xmm0, %xmm2132# CHECK-NEXT: 1 7 1.00 * phaddsw (%rax), %xmm2133# CHECK-NEXT: 1 1 0.50 phaddw %mm0, %mm2134# CHECK-NEXT: 1 6 1.00 * phaddw (%rax), %mm2135# CHECK-NEXT: 1 2 0.50 phaddw %xmm0, %xmm2136# CHECK-NEXT: 1 7 1.00 * phaddw (%rax), %xmm2137# CHECK-NEXT: 1 1 0.50 phsubd %mm0, %mm2138# CHECK-NEXT: 1 6 1.00 * phsubd (%rax), %mm2139# CHECK-NEXT: 1 2 0.50 phsubd %xmm0, %xmm2140# CHECK-NEXT: 1 7 1.00 * phsubd (%rax), %xmm2141# CHECK-NEXT: 1 1 0.50 phsubsw %mm0, %mm2142# CHECK-NEXT: 1 6 1.00 * phsubsw (%rax), %mm2143# CHECK-NEXT: 1 2 0.50 phsubsw %xmm0, %xmm2144# CHECK-NEXT: 1 7 1.00 * phsubsw (%rax), %xmm2145# CHECK-NEXT: 1 1 0.50 phsubw %mm0, %mm2146# CHECK-NEXT: 1 6 1.00 * phsubw (%rax), %mm2147# CHECK-NEXT: 1 2 0.50 phsubw %xmm0, %xmm2148# CHECK-NEXT: 1 7 1.00 * phsubw (%rax), %xmm2149# CHECK-NEXT: 1 2 1.00 pmaddubsw %mm0, %mm2150# CHECK-NEXT: 1 7 1.00 * pmaddubsw (%rax), %mm2151# CHECK-NEXT: 1 2 1.00 pmaddubsw %xmm0, %xmm2152# CHECK-NEXT: 1 7 1.00 * pmaddubsw (%rax), %xmm2153# CHECK-NEXT: 1 2 1.00 pmulhrsw %mm0, %mm2154# CHECK-NEXT: 1 7 1.00 * pmulhrsw (%rax), %mm2155# CHECK-NEXT: 1 2 1.00 pmulhrsw %xmm0, %xmm2156# CHECK-NEXT: 1 7 1.00 * pmulhrsw (%rax), %xmm2157# CHECK-NEXT: 1 2 0.50 pshufb %mm0, %mm2158# CHECK-NEXT: 1 7 1.00 * pshufb (%rax), %mm2159# CHECK-NEXT: 3 2 2.00 pshufb %xmm0, %xmm2160# CHECK-NEXT: 3 7 2.00 * pshufb (%rax), %xmm2161# CHECK-NEXT: 1 1 0.50 psignb %mm0, %mm2162# CHECK-NEXT: 1 6 1.00 * psignb (%rax), %mm2163# CHECK-NEXT: 1 1 0.50 psignb %xmm0, %xmm2164# CHECK-NEXT: 1 6 1.00 * psignb (%rax), %xmm2165# CHECK-NEXT: 1 1 0.50 psignd %mm0, %mm2166# CHECK-NEXT: 1 6 1.00 * psignd (%rax), %mm2167# CHECK-NEXT: 1 1 0.50 psignd %xmm0, %xmm2168# CHECK-NEXT: 1 6 1.00 * psignd (%rax), %xmm2169# CHECK-NEXT: 1 1 0.50 psignw %mm0, %mm2170# CHECK-NEXT: 1 6 1.00 * psignw (%rax), %mm2171# CHECK-NEXT: 1 1 0.50 psignw %xmm0, %xmm2172# CHECK-NEXT: 1 6 1.00 * psignw (%rax), %xmm2173 174# CHECK: Resources:175# CHECK-NEXT: [0] - JALU0176# CHECK-NEXT: [1] - JALU1177# CHECK-NEXT: [2] - JDiv178# CHECK-NEXT: [3] - JFPA179# CHECK-NEXT: [4] - JFPM180# CHECK-NEXT: [5] - JFPU0181# CHECK-NEXT: [6] - JFPU1182# CHECK-NEXT: [7] - JLAGU183# CHECK-NEXT: [8] - JMul184# CHECK-NEXT: [9] - JSAGU185# CHECK-NEXT: [10] - JSTC186# CHECK-NEXT: [11] - JVALU0187# CHECK-NEXT: [12] - JVALU1188# CHECK-NEXT: [13] - JVIMUL189 190# CHECK: Resource pressure per iteration:191# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]192# CHECK-NEXT: - - - - - 36.00 28.00 32.00 - - - 31.00 31.00 8.00193 194# CHECK: Resource pressure by instruction:195# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:196# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - pabsb %mm0, %mm2197# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - pabsb (%rax), %mm2198# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - pabsb %xmm0, %xmm2199# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - pabsb (%rax), %xmm2200# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - pabsd %mm0, %mm2201# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - pabsd (%rax), %mm2202# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - pabsd %xmm0, %xmm2203# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - pabsd (%rax), %xmm2204# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - pabsw %mm0, %mm2205# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - pabsw (%rax), %mm2206# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - pabsw %xmm0, %xmm2207# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - pabsw (%rax), %xmm2208# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - palignr $1, %mm0, %mm2209# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - palignr $1, (%rax), %mm2210# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - palignr $1, %xmm0, %xmm2211# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - palignr $1, (%rax), %xmm2212# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - phaddd %mm0, %mm2213# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - phaddd (%rax), %mm2214# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - phaddd %xmm0, %xmm2215# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - phaddd (%rax), %xmm2216# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - phaddsw %mm0, %mm2217# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - phaddsw (%rax), %mm2218# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - phaddsw %xmm0, %xmm2219# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - phaddsw (%rax), %xmm2220# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - phaddw %mm0, %mm2221# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - phaddw (%rax), %mm2222# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - phaddw %xmm0, %xmm2223# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - phaddw (%rax), %xmm2224# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - phsubd %mm0, %mm2225# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - phsubd (%rax), %mm2226# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - phsubd %xmm0, %xmm2227# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - phsubd (%rax), %xmm2228# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - phsubsw %mm0, %mm2229# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - phsubsw (%rax), %mm2230# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - phsubsw %xmm0, %xmm2231# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - phsubsw (%rax), %xmm2232# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - phsubw %mm0, %mm2233# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - phsubw (%rax), %mm2234# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - phsubw %xmm0, %xmm2235# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - phsubw (%rax), %xmm2236# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 pmaddubsw %mm0, %mm2237# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 pmaddubsw (%rax), %mm2238# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 pmaddubsw %xmm0, %xmm2239# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 pmaddubsw (%rax), %xmm2240# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 pmulhrsw %mm0, %mm2241# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 pmulhrsw (%rax), %mm2242# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 pmulhrsw %xmm0, %xmm2243# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 pmulhrsw (%rax), %xmm2244# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - pshufb %mm0, %mm2245# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - pshufb (%rax), %mm2246# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 2.00 2.00 - pshufb %xmm0, %xmm2247# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 2.00 2.00 - pshufb (%rax), %xmm2248# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - psignb %mm0, %mm2249# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - psignb (%rax), %mm2250# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - psignb %xmm0, %xmm2251# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - psignb (%rax), %xmm2252# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - psignd %mm0, %mm2253# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - psignd (%rax), %mm2254# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - psignd %xmm0, %xmm2255# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - psignd (%rax), %xmm2256# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - psignw %mm0, %mm2257# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - psignw (%rax), %mm2258# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - psignw %xmm0, %xmm2259# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - psignw (%rax), %xmm2260