xref: /llvm-project/llvm/test/tools/llvm-mca/X86/Generic/resources-sha.s (revision 90fa50d928eb6f950097adc4835c1fcdd3190469)
1*90fa50d9SSimon Pilgrim# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2*90fa50d9SSimon Pilgrim# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
3*90fa50d9SSimon Pilgrim
4*90fa50d9SSimon Pilgrimsha1msg1    %xmm0, %xmm2
5*90fa50d9SSimon Pilgrimsha1msg1    (%rax), %xmm2
6*90fa50d9SSimon Pilgrim
7*90fa50d9SSimon Pilgrimsha1msg2    %xmm0, %xmm2
8*90fa50d9SSimon Pilgrimsha1msg2    (%rax), %xmm2
9*90fa50d9SSimon Pilgrim
10*90fa50d9SSimon Pilgrimsha1nexte   %xmm0, %xmm2
11*90fa50d9SSimon Pilgrimsha1nexte   (%rax), %xmm2
12*90fa50d9SSimon Pilgrim
13*90fa50d9SSimon Pilgrimsha1rnds4   $3, %xmm0, %xmm2
14*90fa50d9SSimon Pilgrimsha1rnds4   $3, (%rax), %xmm2
15*90fa50d9SSimon Pilgrim
16*90fa50d9SSimon Pilgrimsha256msg1  %xmm0, %xmm2
17*90fa50d9SSimon Pilgrimsha256msg1  (%rax), %xmm2
18*90fa50d9SSimon Pilgrim
19*90fa50d9SSimon Pilgrimsha256msg2  %xmm0, %xmm2
20*90fa50d9SSimon Pilgrimsha256msg2  (%rax), %xmm2
21*90fa50d9SSimon Pilgrim
22*90fa50d9SSimon Pilgrimsha256rnds2 %xmm0, %xmm2
23*90fa50d9SSimon Pilgrimsha256rnds2 (%rax), %xmm2
24*90fa50d9SSimon Pilgrim
25*90fa50d9SSimon Pilgrim# CHECK:      Instruction Info:
26*90fa50d9SSimon Pilgrim# CHECK-NEXT: [1]: #uOps
27*90fa50d9SSimon Pilgrim# CHECK-NEXT: [2]: Latency
28*90fa50d9SSimon Pilgrim# CHECK-NEXT: [3]: RThroughput
29*90fa50d9SSimon Pilgrim# CHECK-NEXT: [4]: MayLoad
30*90fa50d9SSimon Pilgrim# CHECK-NEXT: [5]: MayStore
31*90fa50d9SSimon Pilgrim# CHECK-NEXT: [6]: HasSideEffects (U)
32*90fa50d9SSimon Pilgrim
33*90fa50d9SSimon Pilgrim# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
34*90fa50d9SSimon Pilgrim# CHECK-NEXT:  1      5     1.00                        sha1msg1	%xmm0, %xmm2
35*90fa50d9SSimon Pilgrim# CHECK-NEXT:  2      11    1.00    *                   sha1msg1	(%rax), %xmm2
36*90fa50d9SSimon Pilgrim# CHECK-NEXT:  1      5     1.00                        sha1msg2	%xmm0, %xmm2
37*90fa50d9SSimon Pilgrim# CHECK-NEXT:  2      11    1.00    *                   sha1msg2	(%rax), %xmm2
38*90fa50d9SSimon Pilgrim# CHECK-NEXT:  1      5     1.00                        sha1nexte	%xmm0, %xmm2
39*90fa50d9SSimon Pilgrim# CHECK-NEXT:  2      11    1.00    *                   sha1nexte	(%rax), %xmm2
40*90fa50d9SSimon Pilgrim# CHECK-NEXT:  1      5     1.00                        sha1rnds4	$3, %xmm0, %xmm2
41*90fa50d9SSimon Pilgrim# CHECK-NEXT:  2      11    1.00    *                   sha1rnds4	$3, (%rax), %xmm2
42*90fa50d9SSimon Pilgrim# CHECK-NEXT:  1      5     1.00                        sha256msg1	%xmm0, %xmm2
43*90fa50d9SSimon Pilgrim# CHECK-NEXT:  2      11    1.00    *                   sha256msg1	(%rax), %xmm2
44*90fa50d9SSimon Pilgrim# CHECK-NEXT:  1      5     1.00                        sha256msg2	%xmm0, %xmm2
45*90fa50d9SSimon Pilgrim# CHECK-NEXT:  2      11    1.00    *                   sha256msg2	(%rax), %xmm2
46*90fa50d9SSimon Pilgrim# CHECK-NEXT:  1      5     1.00                        sha256rnds2	%xmm0, %xmm0, %xmm2
47*90fa50d9SSimon Pilgrim# CHECK-NEXT:  2      11    1.00    *                   sha256rnds2	%xmm0, (%rax), %xmm2
48*90fa50d9SSimon Pilgrim
49*90fa50d9SSimon Pilgrim# CHECK:      Resources:
50*90fa50d9SSimon Pilgrim# CHECK-NEXT: [0]   - SBDivider
51*90fa50d9SSimon Pilgrim# CHECK-NEXT: [1]   - SBFPDivider
52*90fa50d9SSimon Pilgrim# CHECK-NEXT: [2]   - SBPort0
53*90fa50d9SSimon Pilgrim# CHECK-NEXT: [3]   - SBPort1
54*90fa50d9SSimon Pilgrim# CHECK-NEXT: [4]   - SBPort4
55*90fa50d9SSimon Pilgrim# CHECK-NEXT: [5]   - SBPort5
56*90fa50d9SSimon Pilgrim# CHECK-NEXT: [6.0] - SBPort23
57*90fa50d9SSimon Pilgrim# CHECK-NEXT: [6.1] - SBPort23
58*90fa50d9SSimon Pilgrim
59*90fa50d9SSimon Pilgrim# CHECK:      Resource pressure per iteration:
60*90fa50d9SSimon Pilgrim# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
61*90fa50d9SSimon Pilgrim# CHECK-NEXT:  -      -     14.00   -      -      -     3.50   3.50
62*90fa50d9SSimon Pilgrim
63*90fa50d9SSimon Pilgrim# CHECK:      Resource pressure by instruction:
64*90fa50d9SSimon Pilgrim# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
65*90fa50d9SSimon Pilgrim# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     sha1msg1	%xmm0, %xmm2
66*90fa50d9SSimon Pilgrim# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   sha1msg1	(%rax), %xmm2
67*90fa50d9SSimon Pilgrim# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     sha1msg2	%xmm0, %xmm2
68*90fa50d9SSimon Pilgrim# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   sha1msg2	(%rax), %xmm2
69*90fa50d9SSimon Pilgrim# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     sha1nexte	%xmm0, %xmm2
70*90fa50d9SSimon Pilgrim# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   sha1nexte	(%rax), %xmm2
71*90fa50d9SSimon Pilgrim# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     sha1rnds4	$3, %xmm0, %xmm2
72*90fa50d9SSimon Pilgrim# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   sha1rnds4	$3, (%rax), %xmm2
73*90fa50d9SSimon Pilgrim# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     sha256msg1	%xmm0, %xmm2
74*90fa50d9SSimon Pilgrim# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   sha256msg1	(%rax), %xmm2
75*90fa50d9SSimon Pilgrim# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     sha256msg2	%xmm0, %xmm2
76*90fa50d9SSimon Pilgrim# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   sha256msg2	(%rax), %xmm2
77*90fa50d9SSimon Pilgrim# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     sha256rnds2	%xmm0, %xmm0, %xmm2
78*90fa50d9SSimon Pilgrim# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   sha256rnds2	%xmm0, (%rax), %xmm2
79