269 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -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 2 0.50 pabsb %mm0, %mm2110# CHECK-NEXT: 1 7 1.50 * pabsb (%rax), %mm2111# CHECK-NEXT: 1 2 0.50 pabsb %xmm0, %xmm2112# CHECK-NEXT: 1 7 1.50 * pabsb (%rax), %xmm2113# CHECK-NEXT: 1 2 0.50 pabsd %mm0, %mm2114# CHECK-NEXT: 1 7 1.50 * pabsd (%rax), %mm2115# CHECK-NEXT: 1 2 0.50 pabsd %xmm0, %xmm2116# CHECK-NEXT: 1 7 1.50 * pabsd (%rax), %xmm2117# CHECK-NEXT: 1 2 0.50 pabsw %mm0, %mm2118# CHECK-NEXT: 1 7 1.50 * pabsw (%rax), %mm2119# CHECK-NEXT: 1 2 0.50 pabsw %xmm0, %xmm2120# CHECK-NEXT: 1 7 1.50 * pabsw (%rax), %xmm2121# CHECK-NEXT: 1 2 1.00 palignr $1, %mm0, %mm2122# CHECK-NEXT: 1 7 1.50 * palignr $1, (%rax), %mm2123# CHECK-NEXT: 1 2 1.00 palignr $1, %xmm0, %xmm2124# CHECK-NEXT: 1 7 1.50 * palignr $1, (%rax), %xmm2125# CHECK-NEXT: 3 5 2.00 phaddd %mm0, %mm2126# CHECK-NEXT: 4 10 2.00 * phaddd (%rax), %mm2127# CHECK-NEXT: 3 5 2.00 phaddd %xmm0, %xmm2128# CHECK-NEXT: 4 10 2.00 * phaddd (%rax), %xmm2129# CHECK-NEXT: 3 5 2.00 phaddsw %mm0, %mm2130# CHECK-NEXT: 4 10 2.00 * phaddsw (%rax), %mm2131# CHECK-NEXT: 3 5 2.00 phaddsw %xmm0, %xmm2132# CHECK-NEXT: 4 10 2.00 * phaddsw (%rax), %xmm2133# CHECK-NEXT: 3 5 2.00 phaddw %mm0, %mm2134# CHECK-NEXT: 4 10 2.00 * phaddw (%rax), %mm2135# CHECK-NEXT: 3 5 2.00 phaddw %xmm0, %xmm2136# CHECK-NEXT: 4 10 2.00 * phaddw (%rax), %xmm2137# CHECK-NEXT: 3 5 2.00 phsubd %mm0, %mm2138# CHECK-NEXT: 4 10 2.00 * phsubd (%rax), %mm2139# CHECK-NEXT: 3 5 2.00 phsubd %xmm0, %xmm2140# CHECK-NEXT: 4 10 2.00 * phsubd (%rax), %xmm2141# CHECK-NEXT: 3 5 2.00 phsubsw %mm0, %mm2142# CHECK-NEXT: 4 10 2.00 * phsubsw (%rax), %mm2143# CHECK-NEXT: 3 5 2.00 phsubsw %xmm0, %xmm2144# CHECK-NEXT: 4 10 2.00 * phsubsw (%rax), %xmm2145# CHECK-NEXT: 3 5 2.00 phsubw %mm0, %mm2146# CHECK-NEXT: 4 10 2.00 * phsubw (%rax), %mm2147# CHECK-NEXT: 3 5 2.00 phsubw %xmm0, %xmm2148# CHECK-NEXT: 4 10 2.00 * phsubw (%rax), %xmm2149# CHECK-NEXT: 1 4 1.00 pmaddubsw %mm0, %mm2150# CHECK-NEXT: 1 9 1.50 * pmaddubsw (%rax), %mm2151# CHECK-NEXT: 1 4 1.00 pmaddubsw %xmm0, %xmm2152# CHECK-NEXT: 1 9 1.50 * pmaddubsw (%rax), %xmm2153# CHECK-NEXT: 1 4 1.00 pmulhrsw %mm0, %mm2154# CHECK-NEXT: 1 9 1.50 * pmulhrsw (%rax), %mm2155# CHECK-NEXT: 1 4 1.00 pmulhrsw %xmm0, %xmm2156# CHECK-NEXT: 1 9 1.50 * pmulhrsw (%rax), %xmm2157# CHECK-NEXT: 1 3 1.00 pshufb %mm0, %mm2158# CHECK-NEXT: 1 8 1.50 * pshufb (%rax), %mm2159# CHECK-NEXT: 1 3 1.00 pshufb %xmm0, %xmm2160# CHECK-NEXT: 1 8 1.50 * pshufb (%rax), %xmm2161# CHECK-NEXT: 1 2 0.50 psignb %mm0, %mm2162# CHECK-NEXT: 1 7 1.50 * psignb (%rax), %mm2163# CHECK-NEXT: 1 2 0.50 psignb %xmm0, %xmm2164# CHECK-NEXT: 1 7 1.50 * psignb (%rax), %xmm2165# CHECK-NEXT: 1 2 0.50 psignd %mm0, %mm2166# CHECK-NEXT: 1 7 1.50 * psignd (%rax), %mm2167# CHECK-NEXT: 1 2 0.50 psignd %xmm0, %xmm2168# CHECK-NEXT: 1 7 1.50 * psignd (%rax), %xmm2169# CHECK-NEXT: 1 2 0.50 psignw %mm0, %mm2170# CHECK-NEXT: 1 7 1.50 * psignw (%rax), %mm2171# CHECK-NEXT: 1 2 0.50 psignw %xmm0, %xmm2172# CHECK-NEXT: 1 7 1.50 * psignw (%rax), %xmm2173 174# CHECK: Resources:175# CHECK-NEXT: [0.0] - PdAGLU01176# CHECK-NEXT: [0.1] - PdAGLU01177# CHECK-NEXT: [1] - PdBranch178# CHECK-NEXT: [2] - PdCount179# CHECK-NEXT: [3] - PdDiv180# CHECK-NEXT: [4] - PdEX0181# CHECK-NEXT: [5] - PdEX1182# CHECK-NEXT: [6] - PdFPCVT183# CHECK-NEXT: [7.0] - PdFPFMA184# CHECK-NEXT: [7.1] - PdFPFMA185# CHECK-NEXT: [8.0] - PdFPMAL186# CHECK-NEXT: [8.1] - PdFPMAL187# CHECK-NEXT: [9] - PdFPMMA188# CHECK-NEXT: [10] - PdFPSTO189# CHECK-NEXT: [11] - PdFPU0190# CHECK-NEXT: [12] - PdFPU1191# CHECK-NEXT: [13] - PdFPU2192# CHECK-NEXT: [14] - PdFPU3193# CHECK-NEXT: [15] - PdFPXBR194# CHECK-NEXT: [16.0] - PdLoad195# CHECK-NEXT: [16.1] - PdLoad196# CHECK-NEXT: [17] - PdMul197# CHECK-NEXT: [18] - PdStore198 199# CHECK: Resource pressure per iteration:200# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]201# CHECK-NEXT: 48.00 48.00 - - - - - - - - 60.00 60.00 8.00 - 20.00 20.00 12.00 12.00 8.00 48.00 48.00 - -202 203# CHECK: Resource pressure by instruction:204# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:205# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - pabsb %mm0, %mm2206# CHECK-NEXT: 1.50 1.50 - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - 1.50 1.50 - - pabsb (%rax), %mm2207# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - pabsb %xmm0, %xmm2208# CHECK-NEXT: 1.50 1.50 - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - 1.50 1.50 - - pabsb (%rax), %xmm2209# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - pabsd %mm0, %mm2210# CHECK-NEXT: 1.50 1.50 - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - 1.50 1.50 - - pabsd (%rax), %mm2211# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - pabsd %xmm0, %xmm2212# CHECK-NEXT: 1.50 1.50 - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - 1.50 1.50 - - pabsd (%rax), %xmm2213# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - pabsw %mm0, %mm2214# CHECK-NEXT: 1.50 1.50 - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - 1.50 1.50 - - pabsw (%rax), %mm2215# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - pabsw %xmm0, %xmm2216# CHECK-NEXT: 1.50 1.50 - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - 1.50 1.50 - - pabsw (%rax), %xmm2217# CHECK-NEXT: - - - - - - - - - - - - - - - 1.00 - - 1.00 - - - - palignr $1, %mm0, %mm2218# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - - - - 1.00 - - 1.00 1.50 1.50 - - palignr $1, (%rax), %mm2219# CHECK-NEXT: - - - - - - - - - - - - - - - 1.00 - - 1.00 - - - - palignr $1, %xmm0, %xmm2220# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - - - - 1.00 - - 1.00 1.50 1.50 - - palignr $1, (%rax), %xmm2221# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - phaddd %mm0, %mm2222# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - phaddd (%rax), %mm2223# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - phaddd %xmm0, %xmm2224# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - phaddd (%rax), %xmm2225# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - phaddsw %mm0, %mm2226# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - phaddsw (%rax), %mm2227# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - phaddsw %xmm0, %xmm2228# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - phaddsw (%rax), %xmm2229# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - phaddw %mm0, %mm2230# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - phaddw (%rax), %mm2231# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - phaddw %xmm0, %xmm2232# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - phaddw (%rax), %xmm2233# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - phsubd %mm0, %mm2234# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - phsubd (%rax), %mm2235# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - phsubd %xmm0, %xmm2236# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - phsubd (%rax), %xmm2237# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - phsubsw %mm0, %mm2238# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - phsubsw (%rax), %mm2239# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - phsubsw %xmm0, %xmm2240# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - phsubsw (%rax), %xmm2241# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - phsubw %mm0, %mm2242# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - phsubw (%rax), %mm2243# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - phsubw %xmm0, %xmm2244# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - phsubw (%rax), %xmm2245# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - pmaddubsw %mm0, %mm2246# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - pmaddubsw (%rax), %mm2247# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - pmaddubsw %xmm0, %xmm2248# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - pmaddubsw (%rax), %xmm2249# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - pmulhrsw %mm0, %mm2250# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - pmulhrsw (%rax), %mm2251# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - pmulhrsw %xmm0, %xmm2252# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - pmulhrsw (%rax), %xmm2253# CHECK-NEXT: - - - - - - - - - - - - - - - 1.00 - - 1.00 - - - - pshufb %mm0, %mm2254# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - - - - 1.00 - - 1.00 1.50 1.50 - - pshufb (%rax), %mm2255# CHECK-NEXT: - - - - - - - - - - - - - - - 1.00 - - 1.00 - - - - pshufb %xmm0, %xmm2256# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - - - - 1.00 - - 1.00 1.50 1.50 - - pshufb (%rax), %xmm2257# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - psignb %mm0, %mm2258# CHECK-NEXT: 1.50 1.50 - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - 1.50 1.50 - - psignb (%rax), %mm2259# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - psignb %xmm0, %xmm2260# CHECK-NEXT: 1.50 1.50 - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - 1.50 1.50 - - psignb (%rax), %xmm2261# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - psignd %mm0, %mm2262# CHECK-NEXT: 1.50 1.50 - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - 1.50 1.50 - - psignd (%rax), %mm2263# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - psignd %xmm0, %xmm2264# CHECK-NEXT: 1.50 1.50 - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - 1.50 1.50 - - psignd (%rax), %xmm2265# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - psignw %mm0, %mm2266# CHECK-NEXT: 1.50 1.50 - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - 1.50 1.50 - - psignw (%rax), %mm2267# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - psignw %xmm0, %xmm2268# CHECK-NEXT: 1.50 1.50 - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - 1.50 1.50 - - psignw (%rax), %xmm2269