xref: /llvm-project/llvm/test/tools/llvm-mca/AArch64/Exynos/float-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	s30, s30
7fmov	s31, #1.00000000
8fdiv	s30, s31, s30
9
10# Newton series for 1 / sqrtf().
11frsqrte	s1, s0
12fmul	s2, s1, s1
13frsqrts	s2, s0, s2
14fmul	s1, s1, s2
15fmul	s2, s1, s1
16frsqrts	s0, s0, s2
17fmul	s0, s1, s0
18
19# ALL:      Iterations:        100
20# ALL-NEXT: Instructions:      1000
21
22# M3-NEXT:  Total Cycles:      2503
23# M4-NEXT:  Total Cycles:      2303
24# M5-NEXT:  Total Cycles:      2303
25
26# ALL-NEXT: Total uOps:        1000
27
28# ALL:      Dispatch Width:    6
29
30# M3-NEXT:  uOps Per Cycle:    0.40
31# M3-NEXT:  IPC:               0.40
32# M3-NEXT:  Block RThroughput: 19.0
33
34# M4-NEXT:  uOps Per Cycle:    0.43
35# M4-NEXT:  IPC:               0.43
36# M4-NEXT:  Block RThroughput: 2.0
37
38# M5-NEXT:  uOps Per Cycle:    0.43
39# M5-NEXT:  IPC:               0.43
40# M5-NEXT:  Block RThroughput: 2.0
41
42# ALL:      Instruction Info:
43# ALL-NEXT: [1]: #uOps
44# ALL-NEXT: [2]: Latency
45# ALL-NEXT: [3]: RThroughput
46# ALL-NEXT: [4]: MayLoad
47# ALL-NEXT: [5]: MayStore
48# ALL-NEXT: [6]: HasSideEffects (U)
49
50# ALL:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
51
52# M3-NEXT:   1      18    19.00                       fsqrt	s30, s30
53# M4-NEXT:   1      8     1.75                        fsqrt	s30, s30
54# M5-NEXT:   1      8     1.25                        fsqrt	s30, s30
55
56# ALL-NEXT:  1      1     0.33                        fmov	s31, #1.00000000
57
58# M3-NEXT:   1      7     2.00                        fdiv	s30, s31, s30
59# M3-NEXT:   1      4     0.50                        frsqrte	s1, s0
60
61# M4-NEXT:   1      7     1.50                        fdiv	s30, s31, s30
62# M4-NEXT:   1      3     0.50                        frsqrte	s1, s0
63
64# M5-NEXT:   1      7     1.00                        fdiv	s30, s31, s30
65# M5-NEXT:   1      3     0.50                        frsqrte	s1, s0
66
67# ALL-NEXT:  1      3     0.33                        fmul	s2, s1, s1
68# ALL-NEXT:  1      4     0.33                        frsqrts	s2, s0, s2
69# ALL-NEXT:  1      3     0.33                        fmul	s1, s1, s2
70# ALL-NEXT:  1      3     0.33                        fmul	s2, s1, s1
71# ALL-NEXT:  1      4     0.33                        frsqrts	s0, s0, s2
72# ALL-NEXT:  1      3     0.33                        fmul	s0, s1, s0
73