xref: /llvm-project/llvm/test/tools/llvm-mca/AArch64/Exynos/double-rsqrt.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	d30, d30
7fmov	d31, #1.00000000
8fdiv	d30, d31, d30
9
10# Newton series for 1 / sqrt().
11frsqrte	d1, d0
12fmul	d2, d1, d1
13frsqrts	d2, d0, d2
14fmul	d1, d1, d2
15fmul	d2, d1, d1
16frsqrts	d2, d0, d2
17fmul	d1, d1, d2
18fmul	d2, d1, d1
19frsqrts	d0, d0, d2
20fmul	d0, d1, d0
21
22# ALL:      Iterations:        100
23# ALL-NEXT: Instructions:      1300
24
25# M3-NEXT:  Total Cycles:      3703
26# M4-NEXT:  Total Cycles:      3303
27# M5-NEXT:  Total Cycles:      3303
28
29# ALL-NEXT: Total uOps:        1300
30
31# ALL:      Dispatch Width:    6
32
33# M3-NEXT:  uOps Per Cycle:    0.35
34# M3-NEXT:  IPC:               0.35
35# M3-NEXT:  Block RThroughput: 26.0
36
37# M4-NEXT:  uOps Per Cycle:    0.39
38# M4-NEXT:  IPC:               0.39
39# M4-NEXT:  Block RThroughput: 3.0
40
41# M5-NEXT:  uOps Per Cycle:    0.39
42# M5-NEXT:  IPC:               0.39
43# M5-NEXT:  Block RThroughput: 3.0
44
45# ALL:      Instruction Info:
46# ALL-NEXT: [1]: #uOps
47# ALL-NEXT: [2]: Latency
48# ALL-NEXT: [3]: RThroughput
49# ALL-NEXT: [4]: MayLoad
50# ALL-NEXT: [5]: MayStore
51# ALL-NEXT: [6]: HasSideEffects (U)
52
53# ALL:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
54
55# M3-NEXT:   1      25    26.00                       fsqrt	d30, d30
56# M4-NEXT:   1      12    2.25                        fsqrt	d30, d30
57# M5-NEXT:   1      12    2.25                        fsqrt	d30, d30
58
59# ALL-NEXT:  1      1     0.33                        fmov	d31, #1.00000000
60
61# M3-NEXT:   1      12    3.25                        fdiv	d30, d31, d30
62# M3-NEXT:   1      4     0.50                        frsqrte	d1, d0
63
64# M4-NEXT:   1      12    2.25                        fdiv	d30, d31, d30
65# M4-NEXT:   1      3     0.50                        frsqrte	d1, d0
66
67# M5-NEXT:   1      12    2.25                        fdiv	d30, d31, d30
68# M5-NEXT:   1      3     0.50                        frsqrte	d1, d0
69
70# ALL-NEXT:  1      3     0.33                        fmul	d2, d1, d1
71# ALL-NEXT:  1      4     0.33                        frsqrts	d2, d0, d2
72# ALL-NEXT:  1      3     0.33                        fmul	d1, d1, d2
73# ALL-NEXT:  1      3     0.33                        fmul	d2, d1, d1
74# ALL-NEXT:  1      4     0.33                        frsqrts	d2, d0, d2
75# ALL-NEXT:  1      3     0.33                        fmul	d1, d1, d2
76# ALL-NEXT:  1      3     0.33                        fmul	d2, d1, d1
77# ALL-NEXT:  1      4     0.33                        frsqrts	d0, d0, d2
78# ALL-NEXT:  1      3     0.33                        fmul	d0, d1, d0
79