254 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -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: 2 6 0.50 * pabsb (%rax), %mm2111# CHECK-NEXT: 1 1 0.50 pabsb %xmm0, %xmm2112# CHECK-NEXT: 2 7 0.50 * pabsb (%rax), %xmm2113# CHECK-NEXT: 1 1 0.50 pabsd %mm0, %mm2114# CHECK-NEXT: 2 6 0.50 * pabsd (%rax), %mm2115# CHECK-NEXT: 1 1 0.50 pabsd %xmm0, %xmm2116# CHECK-NEXT: 2 7 0.50 * pabsd (%rax), %xmm2117# CHECK-NEXT: 1 1 0.50 pabsw %mm0, %mm2118# CHECK-NEXT: 2 6 0.50 * pabsw (%rax), %mm2119# CHECK-NEXT: 1 1 0.50 pabsw %xmm0, %xmm2120# CHECK-NEXT: 2 7 0.50 * pabsw (%rax), %xmm2121# CHECK-NEXT: 1 1 0.50 palignr $1, %mm0, %mm2122# CHECK-NEXT: 2 6 0.50 * palignr $1, (%rax), %mm2123# CHECK-NEXT: 1 1 0.50 palignr $1, %xmm0, %xmm2124# CHECK-NEXT: 2 7 0.50 * palignr $1, (%rax), %xmm2125# CHECK-NEXT: 3 3 1.50 phaddd %mm0, %mm2126# CHECK-NEXT: 4 8 1.50 * phaddd (%rax), %mm2127# CHECK-NEXT: 3 3 1.50 phaddd %xmm0, %xmm2128# CHECK-NEXT: 4 9 1.50 * phaddd (%rax), %xmm2129# CHECK-NEXT: 3 3 1.50 phaddsw %mm0, %mm2130# CHECK-NEXT: 4 8 1.50 * phaddsw (%rax), %mm2131# CHECK-NEXT: 3 3 1.50 phaddsw %xmm0, %xmm2132# CHECK-NEXT: 4 9 1.50 * phaddsw (%rax), %xmm2133# CHECK-NEXT: 3 3 1.50 phaddw %mm0, %mm2134# CHECK-NEXT: 4 8 1.50 * phaddw (%rax), %mm2135# CHECK-NEXT: 3 3 1.50 phaddw %xmm0, %xmm2136# CHECK-NEXT: 4 9 1.50 * phaddw (%rax), %xmm2137# CHECK-NEXT: 3 3 1.50 phsubd %mm0, %mm2138# CHECK-NEXT: 4 8 1.50 * phsubd (%rax), %mm2139# CHECK-NEXT: 3 3 1.50 phsubd %xmm0, %xmm2140# CHECK-NEXT: 4 9 1.50 * phsubd (%rax), %xmm2141# CHECK-NEXT: 3 3 1.50 phsubsw %mm0, %mm2142# CHECK-NEXT: 4 8 1.50 * phsubsw (%rax), %mm2143# CHECK-NEXT: 3 3 1.50 phsubsw %xmm0, %xmm2144# CHECK-NEXT: 4 9 1.50 * phsubsw (%rax), %xmm2145# CHECK-NEXT: 3 3 1.50 phsubw %mm0, %mm2146# CHECK-NEXT: 4 8 1.50 * phsubw (%rax), %mm2147# CHECK-NEXT: 3 3 1.50 phsubw %xmm0, %xmm2148# CHECK-NEXT: 4 9 1.50 * phsubw (%rax), %xmm2149# CHECK-NEXT: 1 5 1.00 pmaddubsw %mm0, %mm2150# CHECK-NEXT: 2 10 1.00 * pmaddubsw (%rax), %mm2151# CHECK-NEXT: 1 5 1.00 pmaddubsw %xmm0, %xmm2152# CHECK-NEXT: 2 11 1.00 * pmaddubsw (%rax), %xmm2153# CHECK-NEXT: 1 5 1.00 pmulhrsw %mm0, %mm2154# CHECK-NEXT: 2 10 1.00 * pmulhrsw (%rax), %mm2155# CHECK-NEXT: 1 5 1.00 pmulhrsw %xmm0, %xmm2156# CHECK-NEXT: 2 11 1.00 * pmulhrsw (%rax), %xmm2157# CHECK-NEXT: 1 1 0.50 pshufb %mm0, %mm2158# CHECK-NEXT: 2 6 0.50 * pshufb (%rax), %mm2159# CHECK-NEXT: 1 1 0.50 pshufb %xmm0, %xmm2160# CHECK-NEXT: 2 7 0.50 * pshufb (%rax), %xmm2161# CHECK-NEXT: 1 1 0.50 psignb %mm0, %mm2162# CHECK-NEXT: 2 6 0.50 * psignb (%rax), %mm2163# CHECK-NEXT: 1 1 0.50 psignb %xmm0, %xmm2164# CHECK-NEXT: 2 7 0.50 * psignb (%rax), %xmm2165# CHECK-NEXT: 1 1 0.50 psignd %mm0, %mm2166# CHECK-NEXT: 2 6 0.50 * psignd (%rax), %mm2167# CHECK-NEXT: 1 1 0.50 psignd %xmm0, %xmm2168# CHECK-NEXT: 2 7 0.50 * psignd (%rax), %xmm2169# CHECK-NEXT: 1 1 0.50 psignw %mm0, %mm2170# CHECK-NEXT: 2 6 0.50 * psignw (%rax), %mm2171# CHECK-NEXT: 1 1 0.50 psignw %xmm0, %xmm2172# CHECK-NEXT: 2 7 0.50 * psignw (%rax), %xmm2173 174# CHECK: Resources:175# CHECK-NEXT: [0] - SBDivider176# CHECK-NEXT: [1] - SBFPDivider177# CHECK-NEXT: [2] - SBPort0178# CHECK-NEXT: [3] - SBPort1179# CHECK-NEXT: [4] - SBPort4180# CHECK-NEXT: [5] - SBPort5181# CHECK-NEXT: [6.0] - SBPort23182# CHECK-NEXT: [6.1] - SBPort23183 184# CHECK: Resource pressure per iteration:185# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]186# CHECK-NEXT: - - 8.00 52.00 - 52.00 16.00 16.00187 188# CHECK: Resource pressure by instruction:189# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:190# CHECK-NEXT: - - - 0.50 - 0.50 - - pabsb %mm0, %mm2191# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 pabsb (%rax), %mm2192# CHECK-NEXT: - - - 0.50 - 0.50 - - pabsb %xmm0, %xmm2193# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 pabsb (%rax), %xmm2194# CHECK-NEXT: - - - 0.50 - 0.50 - - pabsd %mm0, %mm2195# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 pabsd (%rax), %mm2196# CHECK-NEXT: - - - 0.50 - 0.50 - - pabsd %xmm0, %xmm2197# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 pabsd (%rax), %xmm2198# CHECK-NEXT: - - - 0.50 - 0.50 - - pabsw %mm0, %mm2199# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 pabsw (%rax), %mm2200# CHECK-NEXT: - - - 0.50 - 0.50 - - pabsw %xmm0, %xmm2201# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 pabsw (%rax), %xmm2202# CHECK-NEXT: - - - 0.50 - 0.50 - - palignr $1, %mm0, %mm2203# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 palignr $1, (%rax), %mm2204# CHECK-NEXT: - - - 0.50 - 0.50 - - palignr $1, %xmm0, %xmm2205# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 palignr $1, (%rax), %xmm2206# CHECK-NEXT: - - - 1.50 - 1.50 - - phaddd %mm0, %mm2207# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 phaddd (%rax), %mm2208# CHECK-NEXT: - - - 1.50 - 1.50 - - phaddd %xmm0, %xmm2209# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 phaddd (%rax), %xmm2210# CHECK-NEXT: - - - 1.50 - 1.50 - - phaddsw %mm0, %mm2211# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 phaddsw (%rax), %mm2212# CHECK-NEXT: - - - 1.50 - 1.50 - - phaddsw %xmm0, %xmm2213# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 phaddsw (%rax), %xmm2214# CHECK-NEXT: - - - 1.50 - 1.50 - - phaddw %mm0, %mm2215# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 phaddw (%rax), %mm2216# CHECK-NEXT: - - - 1.50 - 1.50 - - phaddw %xmm0, %xmm2217# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 phaddw (%rax), %xmm2218# CHECK-NEXT: - - - 1.50 - 1.50 - - phsubd %mm0, %mm2219# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 phsubd (%rax), %mm2220# CHECK-NEXT: - - - 1.50 - 1.50 - - phsubd %xmm0, %xmm2221# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 phsubd (%rax), %xmm2222# CHECK-NEXT: - - - 1.50 - 1.50 - - phsubsw %mm0, %mm2223# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 phsubsw (%rax), %mm2224# CHECK-NEXT: - - - 1.50 - 1.50 - - phsubsw %xmm0, %xmm2225# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 phsubsw (%rax), %xmm2226# CHECK-NEXT: - - - 1.50 - 1.50 - - phsubw %mm0, %mm2227# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 phsubw (%rax), %mm2228# CHECK-NEXT: - - - 1.50 - 1.50 - - phsubw %xmm0, %xmm2229# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 phsubw (%rax), %xmm2230# CHECK-NEXT: - - 1.00 - - - - - pmaddubsw %mm0, %mm2231# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 pmaddubsw (%rax), %mm2232# CHECK-NEXT: - - 1.00 - - - - - pmaddubsw %xmm0, %xmm2233# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 pmaddubsw (%rax), %xmm2234# CHECK-NEXT: - - 1.00 - - - - - pmulhrsw %mm0, %mm2235# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 pmulhrsw (%rax), %mm2236# CHECK-NEXT: - - 1.00 - - - - - pmulhrsw %xmm0, %xmm2237# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 pmulhrsw (%rax), %xmm2238# CHECK-NEXT: - - - 0.50 - 0.50 - - pshufb %mm0, %mm2239# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 pshufb (%rax), %mm2240# CHECK-NEXT: - - - 0.50 - 0.50 - - pshufb %xmm0, %xmm2241# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 pshufb (%rax), %xmm2242# CHECK-NEXT: - - - 0.50 - 0.50 - - psignb %mm0, %mm2243# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 psignb (%rax), %mm2244# CHECK-NEXT: - - - 0.50 - 0.50 - - psignb %xmm0, %xmm2245# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 psignb (%rax), %xmm2246# CHECK-NEXT: - - - 0.50 - 0.50 - - psignd %mm0, %mm2247# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 psignd (%rax), %mm2248# CHECK-NEXT: - - - 0.50 - 0.50 - - psignd %xmm0, %xmm2249# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 psignd (%rax), %xmm2250# CHECK-NEXT: - - - 0.50 - 0.50 - - psignw %mm0, %mm2251# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 psignw (%rax), %mm2252# CHECK-NEXT: - - - 0.50 - 0.50 - - psignw %xmm0, %xmm2253# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 psignw (%rax), %xmm2254