xref: /llvm-project/llvm/test/tools/llvm-mca/AArch64/Exynos/double-sqrt.s (revision 48b7fe02a1147a734ba8b28f53b4b7ede30d0843)
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2# RUN: llvm-mca -march=aarch64 -mcpu=exynos-m3 -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,M3
3# RUN: llvm-mca -march=aarch64 -mcpu=exynos-m4 -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,M4
4# RUN: llvm-mca -march=aarch64 -mcpu=exynos-m5 -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,M5
5
6fsqrt	d31, d31
7
8# Newton series for sqrt().
9frsqrte	d1, d0
10fmul	d2, d1, d1
11frsqrts	d2, d0, d2
12fmul	d1, d1, d2
13fmul	d2, d1, d1
14frsqrts	d2, d0, d2
15fmul	d1, d1, d2
16fmul	d2, d1, d1
17frsqrts	d2, d0, d2
18fmul	d2, d2, d0
19fmul	d1, d1, d2
20fcmp	d0, #0.0
21fcsel	d0, d0, d1, eq
22
23# ALL:      Iterations:        100
24# ALL-NEXT: Instructions:      1400
25
26# M3-NEXT:  Total Cycles:      4203
27# M4-NEXT:  Total Cycles:      4103
28# M5-NEXT:  Total Cycles:      3803
29
30# ALL-NEXT: Total uOps:        1500
31
32# ALL:      Dispatch Width:    6
33
34# M3-NEXT:  uOps Per Cycle:    0.36
35# M3-NEXT:  IPC:               0.33
36# M3-NEXT:  Block RThroughput: 27.0
37
38# M4-NEXT:  uOps Per Cycle:    0.37
39# M4-NEXT:  IPC:               0.34
40# M4-NEXT:  Block RThroughput: 3.3
41
42# M5-NEXT:  uOps Per Cycle:    0.39
43# M5-NEXT:  IPC:               0.37
44# M5-NEXT:  Block RThroughput: 3.3
45
46# ALL:      Instruction Info:
47# ALL-NEXT: [1]: #uOps
48# ALL-NEXT: [2]: Latency
49# ALL-NEXT: [3]: RThroughput
50# ALL-NEXT: [4]: MayLoad
51# ALL-NEXT: [5]: MayStore
52# ALL-NEXT: [6]: HasSideEffects (U)
53
54# ALL:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
55
56# M3-NEXT:   1      25    26.00                       fsqrt	d31, d31
57# M3-NEXT:   1      4     0.50                        frsqrte	d1, d0
58
59# M4-NEXT:   1      12    2.25                        fsqrt	d31, d31
60# M4-NEXT:   1      3     0.50                        frsqrte	d1, d0
61
62# M5-NEXT:   1      12    2.25                        fsqrt	d31, d31
63# M5-NEXT:   1      3     0.50                        frsqrte	d1, d0
64
65# ALL-NEXT:  1      3     0.33                        fmul	d2, d1, d1
66# ALL-NEXT:  1      4     0.33                        frsqrts	d2, d0, d2
67# ALL-NEXT:  1      3     0.33                        fmul	d1, d1, d2
68# ALL-NEXT:  1      3     0.33                        fmul	d2, d1, d1
69# ALL-NEXT:  1      4     0.33                        frsqrts	d2, d0, d2
70# ALL-NEXT:  1      3     0.33                        fmul	d1, d1, d2
71# ALL-NEXT:  1      3     0.33                        fmul	d2, d1, d1
72# ALL-NEXT:  1      4     0.33                        frsqrts	d2, d0, d2
73# ALL-NEXT:  1      3     0.33                        fmul	d2, d2, d0
74# ALL-NEXT:  1      3     0.33                        fmul	d1, d1, d2
75# ALL-NEXT:  1      2     1.00                        fcmp	d0, #0.0
76
77# M3-NEXT:   2      5     1.00                        fcsel	d0, d0, d1, eq
78# M4-NEXT:   2      5     1.00                        fcsel	d0, d0, d1, eq
79# M5-NEXT:   2      2     1.00                        fcsel	d0, d0, d1, eq
80