brintos

brintos / llvm-project-archived public Read only

0
0
Text · 15.6 KiB · bdefbe0 Raw
388 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=atom -instruction-tables < %s | FileCheck %s3 4emms5 6movd        %eax, %mm27movd        (%rax), %mm28 9movd        %mm0, %ecx10movd        %mm0, (%rax)11 12movq        %rax, %mm213movq        (%rax), %mm214 15movq        %mm0, %rcx16movq        %mm0, (%rax)17 18packsswb    %mm0, %mm219packsswb    (%rax), %mm220 21packssdw    %mm0, %mm222packssdw    (%rax), %mm223 24packuswb    %mm0, %mm225packuswb    (%rax), %mm226 27paddb       %mm0, %mm228paddb       (%rax), %mm229 30paddd       %mm0, %mm231paddd       (%rax), %mm232 33paddsb      %mm0, %mm234paddsb      (%rax), %mm235 36paddsw      %mm0, %mm237paddsw      (%rax), %mm238 39paddusb     %mm0, %mm240paddusb     (%rax), %mm241 42paddusw     %mm0, %mm243paddusw     (%rax), %mm244 45paddw       %mm0, %mm246paddw       (%rax), %mm247 48pand        %mm0, %mm249pand        (%rax), %mm250 51pandn       %mm0, %mm252pandn       (%rax), %mm253 54pcmpeqb     %mm0, %mm255pcmpeqb     (%rax), %mm256 57pcmpeqd     %mm0, %mm258pcmpeqd     (%rax), %mm259 60pcmpeqw     %mm0, %mm261pcmpeqw     (%rax), %mm262 63pcmpgtb     %mm0, %mm264pcmpgtb     (%rax), %mm265 66pcmpgtd     %mm0, %mm267pcmpgtd     (%rax), %mm268 69pcmpgtw     %mm0, %mm270pcmpgtw     (%rax), %mm271 72pmaddwd     %mm0, %mm273pmaddwd     (%rax), %mm274 75pmulhw      %mm0, %mm276pmulhw      (%rax), %mm277 78pmullw      %mm0, %mm279pmullw      (%rax), %mm280 81por         %mm0, %mm282por         (%rax), %mm283 84pslld       $1, %mm285pslld       %mm0, %mm286pslld       (%rax), %mm287 88psllq       $1, %mm289psllq       %mm0, %mm290psllq       (%rax), %mm291 92psllw       $1, %mm293psllw       %mm0, %mm294psllw       (%rax), %mm295 96psrad       $1, %mm297psrad       %mm0, %mm298psrad       (%rax), %mm299 100psraw       $1, %mm2101psraw       %mm0, %mm2102psraw       (%rax), %mm2103 104psrld       $1, %mm2105psrld       %mm0, %mm2106psrld       (%rax), %mm2107 108psrlq       $1, %mm2109psrlq       %mm0, %mm2110psrlq       (%rax), %mm2111 112psrlw       $1, %mm2113psrlw       %mm0, %mm2114psrlw       (%rax), %mm2115 116psubb       %mm0, %mm2117psubb       (%rax), %mm2118 119psubd       %mm0, %mm2120psubd       (%rax), %mm2121 122psubsb      %mm0, %mm2123psubsb      (%rax), %mm2124 125psubsw      %mm0, %mm2126psubsw      (%rax), %mm2127 128psubusb     %mm0, %mm2129psubusb     (%rax), %mm2130 131psubusw     %mm0, %mm2132psubusw     (%rax), %mm2133 134psubw       %mm0, %mm2135psubw       (%rax), %mm2136 137punpckhbw   %mm0, %mm2138punpckhbw   (%rax), %mm2139 140punpckhdq   %mm0, %mm2141punpckhdq   (%rax), %mm2142 143punpckhwd   %mm0, %mm2144punpckhwd   (%rax), %mm2145 146punpcklbw   %mm0, %mm2147punpcklbw   (%rax), %mm2148 149punpckldq   %mm0, %mm2150punpckldq   (%rax), %mm2151 152punpcklwd   %mm0, %mm2153punpcklwd   (%rax), %mm2154 155pxor        %mm0, %mm2156pxor        (%rax), %mm2157 158# CHECK:      Instruction Info:159# CHECK-NEXT: [1]: #uOps160# CHECK-NEXT: [2]: Latency161# CHECK-NEXT: [3]: RThroughput162# CHECK-NEXT: [4]: MayLoad163# CHECK-NEXT: [5]: MayStore164# CHECK-NEXT: [6]: HasSideEffects (U)165 166# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:167# CHECK-NEXT:  1      5     2.50    *      *      U     emms168# CHECK-NEXT:  1      1     1.00                        movd	%eax, %mm2169# CHECK-NEXT:  1      1     1.00    *                   movd	(%rax), %mm2170# CHECK-NEXT:  1      3     3.00                        movd	%mm0, %ecx171# CHECK-NEXT:  1      1     1.00           *      U     movd	%mm0, (%rax)172# CHECK-NEXT:  1      1     1.00                        movq	%rax, %mm2173# CHECK-NEXT:  1      1     1.00    *                   movq	(%rax), %mm2174# CHECK-NEXT:  1      3     3.00                        movq	%mm0, %rcx175# CHECK-NEXT:  1      1     1.00           *            movq	%mm0, (%rax)176# CHECK-NEXT:  1      1     1.00                        packsswb	%mm0, %mm2177# CHECK-NEXT:  1      1     1.00    *                   packsswb	(%rax), %mm2178# CHECK-NEXT:  1      1     1.00                        packssdw	%mm0, %mm2179# CHECK-NEXT:  1      1     1.00    *                   packssdw	(%rax), %mm2180# CHECK-NEXT:  1      1     1.00                        packuswb	%mm0, %mm2181# CHECK-NEXT:  1      1     1.00    *                   packuswb	(%rax), %mm2182# CHECK-NEXT:  1      1     0.50                        paddb	%mm0, %mm2183# CHECK-NEXT:  1      1     1.00    *                   paddb	(%rax), %mm2184# CHECK-NEXT:  1      1     0.50                        paddd	%mm0, %mm2185# CHECK-NEXT:  1      1     1.00    *                   paddd	(%rax), %mm2186# CHECK-NEXT:  1      1     0.50                        paddsb	%mm0, %mm2187# CHECK-NEXT:  1      1     1.00    *                   paddsb	(%rax), %mm2188# CHECK-NEXT:  1      1     0.50                        paddsw	%mm0, %mm2189# CHECK-NEXT:  1      1     1.00    *                   paddsw	(%rax), %mm2190# CHECK-NEXT:  1      1     0.50                        paddusb	%mm0, %mm2191# CHECK-NEXT:  1      1     1.00    *                   paddusb	(%rax), %mm2192# CHECK-NEXT:  1      1     0.50                        paddusw	%mm0, %mm2193# CHECK-NEXT:  1      1     1.00    *                   paddusw	(%rax), %mm2194# CHECK-NEXT:  1      1     0.50                        paddw	%mm0, %mm2195# CHECK-NEXT:  1      1     1.00    *                   paddw	(%rax), %mm2196# CHECK-NEXT:  1      1     0.50                        pand	%mm0, %mm2197# CHECK-NEXT:  1      1     1.00    *                   pand	(%rax), %mm2198# CHECK-NEXT:  1      1     0.50                        pandn	%mm0, %mm2199# CHECK-NEXT:  1      1     1.00    *                   pandn	(%rax), %mm2200# CHECK-NEXT:  1      1     0.50                        pcmpeqb	%mm0, %mm2201# CHECK-NEXT:  1      1     1.00    *                   pcmpeqb	(%rax), %mm2202# CHECK-NEXT:  1      1     0.50                        pcmpeqd	%mm0, %mm2203# CHECK-NEXT:  1      1     1.00    *                   pcmpeqd	(%rax), %mm2204# CHECK-NEXT:  1      1     0.50                        pcmpeqw	%mm0, %mm2205# CHECK-NEXT:  1      1     1.00    *                   pcmpeqw	(%rax), %mm2206# CHECK-NEXT:  1      1     0.50                        pcmpgtb	%mm0, %mm2207# CHECK-NEXT:  1      1     1.00    *                   pcmpgtb	(%rax), %mm2208# CHECK-NEXT:  1      1     0.50                        pcmpgtd	%mm0, %mm2209# CHECK-NEXT:  1      1     1.00    *                   pcmpgtd	(%rax), %mm2210# CHECK-NEXT:  1      1     0.50                        pcmpgtw	%mm0, %mm2211# CHECK-NEXT:  1      1     1.00    *                   pcmpgtw	(%rax), %mm2212# CHECK-NEXT:  1      4     1.00                        pmaddwd	%mm0, %mm2213# CHECK-NEXT:  1      4     1.00    *                   pmaddwd	(%rax), %mm2214# CHECK-NEXT:  1      4     1.00                        pmulhw	%mm0, %mm2215# CHECK-NEXT:  1      4     1.00    *                   pmulhw	(%rax), %mm2216# CHECK-NEXT:  1      4     1.00                        pmullw	%mm0, %mm2217# CHECK-NEXT:  1      4     1.00    *                   pmullw	(%rax), %mm2218# CHECK-NEXT:  1      1     0.50                        por	%mm0, %mm2219# CHECK-NEXT:  1      1     1.00    *                   por	(%rax), %mm2220# CHECK-NEXT:  1      1     1.00                        pslld	$1, %mm2221# CHECK-NEXT:  2      2     1.00                        pslld	%mm0, %mm2222# CHECK-NEXT:  3      3     2.00    *                   pslld	(%rax), %mm2223# CHECK-NEXT:  1      1     1.00                        psllq	$1, %mm2224# CHECK-NEXT:  2      2     1.00                        psllq	%mm0, %mm2225# CHECK-NEXT:  3      3     2.00    *                   psllq	(%rax), %mm2226# CHECK-NEXT:  1      1     1.00                        psllw	$1, %mm2227# CHECK-NEXT:  2      2     1.00                        psllw	%mm0, %mm2228# CHECK-NEXT:  3      3     2.00    *                   psllw	(%rax), %mm2229# CHECK-NEXT:  1      1     1.00                        psrad	$1, %mm2230# CHECK-NEXT:  2      2     1.00                        psrad	%mm0, %mm2231# CHECK-NEXT:  3      3     2.00    *                   psrad	(%rax), %mm2232# CHECK-NEXT:  1      1     1.00                        psraw	$1, %mm2233# CHECK-NEXT:  2      2     1.00                        psraw	%mm0, %mm2234# CHECK-NEXT:  3      3     2.00    *                   psraw	(%rax), %mm2235# CHECK-NEXT:  1      1     1.00                        psrld	$1, %mm2236# CHECK-NEXT:  2      2     1.00                        psrld	%mm0, %mm2237# CHECK-NEXT:  3      3     2.00    *                   psrld	(%rax), %mm2238# CHECK-NEXT:  1      1     1.00                        psrlq	$1, %mm2239# CHECK-NEXT:  2      2     1.00                        psrlq	%mm0, %mm2240# CHECK-NEXT:  3      3     2.00    *                   psrlq	(%rax), %mm2241# CHECK-NEXT:  1      1     1.00                        psrlw	$1, %mm2242# CHECK-NEXT:  2      2     1.00                        psrlw	%mm0, %mm2243# CHECK-NEXT:  3      3     2.00    *                   psrlw	(%rax), %mm2244# CHECK-NEXT:  1      1     0.50                        psubb	%mm0, %mm2245# CHECK-NEXT:  1      1     1.00    *                   psubb	(%rax), %mm2246# CHECK-NEXT:  1      1     0.50                        psubd	%mm0, %mm2247# CHECK-NEXT:  1      1     1.00    *                   psubd	(%rax), %mm2248# CHECK-NEXT:  1      1     0.50                        psubsb	%mm0, %mm2249# CHECK-NEXT:  1      1     1.00    *                   psubsb	(%rax), %mm2250# CHECK-NEXT:  1      1     0.50                        psubsw	%mm0, %mm2251# CHECK-NEXT:  1      1     1.00    *                   psubsw	(%rax), %mm2252# CHECK-NEXT:  1      1     0.50                        psubusb	%mm0, %mm2253# CHECK-NEXT:  1      1     1.00    *                   psubusb	(%rax), %mm2254# CHECK-NEXT:  1      1     0.50                        psubusw	%mm0, %mm2255# CHECK-NEXT:  1      1     1.00    *                   psubusw	(%rax), %mm2256# CHECK-NEXT:  1      1     0.50                        psubw	%mm0, %mm2257# CHECK-NEXT:  1      1     1.00    *                   psubw	(%rax), %mm2258# CHECK-NEXT:  1      1     1.00                        punpckhbw	%mm0, %mm2259# CHECK-NEXT:  1      1     1.00    *                   punpckhbw	(%rax), %mm2260# CHECK-NEXT:  1      1     1.00                        punpckhdq	%mm0, %mm2261# CHECK-NEXT:  1      1     1.00    *                   punpckhdq	(%rax), %mm2262# CHECK-NEXT:  1      1     1.00                        punpckhwd	%mm0, %mm2263# CHECK-NEXT:  1      1     1.00    *                   punpckhwd	(%rax), %mm2264# CHECK-NEXT:  1      1     1.00                        punpcklbw	%mm0, %mm2265# CHECK-NEXT:  1      1     1.00    *                   punpcklbw	(%rax), %mm2266# CHECK-NEXT:  1      1     1.00                        punpckldq	%mm0, %mm2267# CHECK-NEXT:  1      1     1.00    *                   punpckldq	(%rax), %mm2268# CHECK-NEXT:  1      1     1.00                        punpcklwd	%mm0, %mm2269# CHECK-NEXT:  1      1     1.00    *                   punpcklwd	(%rax), %mm2270# CHECK-NEXT:  1      1     0.50                        pxor	%mm0, %mm2271# CHECK-NEXT:  1      1     1.00    *                   pxor	(%rax), %mm2272 273# CHECK:      Resources:274# CHECK-NEXT: [0]   - AtomPort0275# CHECK-NEXT: [1]   - AtomPort1276 277# CHECK:      Resource pressure per iteration:278# CHECK-NEXT: [0]    [1]279# CHECK-NEXT: 106.50 38.50280 281# CHECK:      Resource pressure by instruction:282# CHECK-NEXT: [0]    [1]    Instructions:283# CHECK-NEXT: 2.50   2.50   emms284# CHECK-NEXT: 1.00    -     movd	%eax, %mm2285# CHECK-NEXT: 1.00    -     movd	(%rax), %mm2286# CHECK-NEXT: 3.00    -     movd	%mm0, %ecx287# CHECK-NEXT: 1.00    -     movd	%mm0, (%rax)288# CHECK-NEXT: 1.00    -     movq	%rax, %mm2289# CHECK-NEXT: 1.00    -     movq	(%rax), %mm2290# CHECK-NEXT: 3.00    -     movq	%mm0, %rcx291# CHECK-NEXT: 1.00    -     movq	%mm0, (%rax)292# CHECK-NEXT: 1.00    -     packsswb	%mm0, %mm2293# CHECK-NEXT: 1.00    -     packsswb	(%rax), %mm2294# CHECK-NEXT: 1.00    -     packssdw	%mm0, %mm2295# CHECK-NEXT: 1.00    -     packssdw	(%rax), %mm2296# CHECK-NEXT: 1.00    -     packuswb	%mm0, %mm2297# CHECK-NEXT: 1.00    -     packuswb	(%rax), %mm2298# CHECK-NEXT: 0.50   0.50   paddb	%mm0, %mm2299# CHECK-NEXT: 1.00    -     paddb	(%rax), %mm2300# CHECK-NEXT: 0.50   0.50   paddd	%mm0, %mm2301# CHECK-NEXT: 1.00    -     paddd	(%rax), %mm2302# CHECK-NEXT: 0.50   0.50   paddsb	%mm0, %mm2303# CHECK-NEXT: 1.00    -     paddsb	(%rax), %mm2304# CHECK-NEXT: 0.50   0.50   paddsw	%mm0, %mm2305# CHECK-NEXT: 1.00    -     paddsw	(%rax), %mm2306# CHECK-NEXT: 0.50   0.50   paddusb	%mm0, %mm2307# CHECK-NEXT: 1.00    -     paddusb	(%rax), %mm2308# CHECK-NEXT: 0.50   0.50   paddusw	%mm0, %mm2309# CHECK-NEXT: 1.00    -     paddusw	(%rax), %mm2310# CHECK-NEXT: 0.50   0.50   paddw	%mm0, %mm2311# CHECK-NEXT: 1.00    -     paddw	(%rax), %mm2312# CHECK-NEXT: 0.50   0.50   pand	%mm0, %mm2313# CHECK-NEXT: 1.00    -     pand	(%rax), %mm2314# CHECK-NEXT: 0.50   0.50   pandn	%mm0, %mm2315# CHECK-NEXT: 1.00    -     pandn	(%rax), %mm2316# CHECK-NEXT: 0.50   0.50   pcmpeqb	%mm0, %mm2317# CHECK-NEXT: 1.00    -     pcmpeqb	(%rax), %mm2318# CHECK-NEXT: 0.50   0.50   pcmpeqd	%mm0, %mm2319# CHECK-NEXT: 1.00    -     pcmpeqd	(%rax), %mm2320# CHECK-NEXT: 0.50   0.50   pcmpeqw	%mm0, %mm2321# CHECK-NEXT: 1.00    -     pcmpeqw	(%rax), %mm2322# CHECK-NEXT: 0.50   0.50   pcmpgtb	%mm0, %mm2323# CHECK-NEXT: 1.00    -     pcmpgtb	(%rax), %mm2324# CHECK-NEXT: 0.50   0.50   pcmpgtd	%mm0, %mm2325# CHECK-NEXT: 1.00    -     pcmpgtd	(%rax), %mm2326# CHECK-NEXT: 0.50   0.50   pcmpgtw	%mm0, %mm2327# CHECK-NEXT: 1.00    -     pcmpgtw	(%rax), %mm2328# CHECK-NEXT: 1.00    -     pmaddwd	%mm0, %mm2329# CHECK-NEXT: 1.00    -     pmaddwd	(%rax), %mm2330# CHECK-NEXT: 1.00    -     pmulhw	%mm0, %mm2331# CHECK-NEXT: 1.00    -     pmulhw	(%rax), %mm2332# CHECK-NEXT: 1.00    -     pmullw	%mm0, %mm2333# CHECK-NEXT: 1.00    -     pmullw	(%rax), %mm2334# CHECK-NEXT: 0.50   0.50   por	%mm0, %mm2335# CHECK-NEXT: 1.00    -     por	(%rax), %mm2336# CHECK-NEXT: 1.00    -     pslld	$1, %mm2337# CHECK-NEXT: 1.00   1.00   pslld	%mm0, %mm2338# CHECK-NEXT: 2.00   2.00   pslld	(%rax), %mm2339# CHECK-NEXT: 1.00    -     psllq	$1, %mm2340# CHECK-NEXT: 1.00   1.00   psllq	%mm0, %mm2341# CHECK-NEXT: 2.00   2.00   psllq	(%rax), %mm2342# CHECK-NEXT: 1.00    -     psllw	$1, %mm2343# CHECK-NEXT: 1.00   1.00   psllw	%mm0, %mm2344# CHECK-NEXT: 2.00   2.00   psllw	(%rax), %mm2345# CHECK-NEXT: 1.00    -     psrad	$1, %mm2346# CHECK-NEXT: 1.00   1.00   psrad	%mm0, %mm2347# CHECK-NEXT: 2.00   2.00   psrad	(%rax), %mm2348# CHECK-NEXT: 1.00    -     psraw	$1, %mm2349# CHECK-NEXT: 1.00   1.00   psraw	%mm0, %mm2350# CHECK-NEXT: 2.00   2.00   psraw	(%rax), %mm2351# CHECK-NEXT: 1.00    -     psrld	$1, %mm2352# CHECK-NEXT: 1.00   1.00   psrld	%mm0, %mm2353# CHECK-NEXT: 2.00   2.00   psrld	(%rax), %mm2354# CHECK-NEXT: 1.00    -     psrlq	$1, %mm2355# CHECK-NEXT: 1.00   1.00   psrlq	%mm0, %mm2356# CHECK-NEXT: 2.00   2.00   psrlq	(%rax), %mm2357# CHECK-NEXT: 1.00    -     psrlw	$1, %mm2358# CHECK-NEXT: 1.00   1.00   psrlw	%mm0, %mm2359# CHECK-NEXT: 2.00   2.00   psrlw	(%rax), %mm2360# CHECK-NEXT: 0.50   0.50   psubb	%mm0, %mm2361# CHECK-NEXT: 1.00    -     psubb	(%rax), %mm2362# CHECK-NEXT: 0.50   0.50   psubd	%mm0, %mm2363# CHECK-NEXT: 1.00    -     psubd	(%rax), %mm2364# CHECK-NEXT: 0.50   0.50   psubsb	%mm0, %mm2365# CHECK-NEXT: 1.00    -     psubsb	(%rax), %mm2366# CHECK-NEXT: 0.50   0.50   psubsw	%mm0, %mm2367# CHECK-NEXT: 1.00    -     psubsw	(%rax), %mm2368# CHECK-NEXT: 0.50   0.50   psubusb	%mm0, %mm2369# CHECK-NEXT: 1.00    -     psubusb	(%rax), %mm2370# CHECK-NEXT: 0.50   0.50   psubusw	%mm0, %mm2371# CHECK-NEXT: 1.00    -     psubusw	(%rax), %mm2372# CHECK-NEXT: 0.50   0.50   psubw	%mm0, %mm2373# CHECK-NEXT: 1.00    -     psubw	(%rax), %mm2374# CHECK-NEXT: 1.00    -     punpckhbw	%mm0, %mm2375# CHECK-NEXT: 1.00    -     punpckhbw	(%rax), %mm2376# CHECK-NEXT: 1.00    -     punpckhdq	%mm0, %mm2377# CHECK-NEXT: 1.00    -     punpckhdq	(%rax), %mm2378# CHECK-NEXT: 1.00    -     punpckhwd	%mm0, %mm2379# CHECK-NEXT: 1.00    -     punpckhwd	(%rax), %mm2380# CHECK-NEXT: 1.00    -     punpcklbw	%mm0, %mm2381# CHECK-NEXT: 1.00    -     punpcklbw	(%rax), %mm2382# CHECK-NEXT: 1.00    -     punpckldq	%mm0, %mm2383# CHECK-NEXT: 1.00    -     punpckldq	(%rax), %mm2384# CHECK-NEXT: 1.00    -     punpcklwd	%mm0, %mm2385# CHECK-NEXT: 1.00    -     punpcklwd	(%rax), %mm2386# CHECK-NEXT: 0.50   0.50   pxor	%mm0, %mm2387# CHECK-NEXT: 1.00    -     pxor	(%rax), %mm2388