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