Lines Matching refs:double
4 declare double @llvm.log.f64(double)
5 declare double @llvm.exp.f64(double)
6 declare double @llvm.log2.f64(double)
7 declare double @llvm.exp2.f64(double)
9 define double @log_reassoc_exp_strict(double %a) {
11 ; CHECK-NEXT: ret double [[A:%.*]]
13 %1 = call double @llvm.exp.f64(double %a)
14 %2 = call reassoc double @llvm.log.f64(double %1)
15 ret double %2
18 define double @log_strict_exp_reassoc(double %a) {
20 ; CHECK-NEXT: [[TMP1:%.*]] = call reassoc double @llvm.exp.f64(double [[A:%.*]])
21 ; CHECK-NEXT: [[TMP2:%.*]] = call double @llvm.log.f64(double [[TMP1]])
22 ; CHECK-NEXT: ret double [[TMP2]]
24 %1 = call reassoc double @llvm.exp.f64(double %a)
25 %2 = call double @llvm.log.f64(double %1)
26 ret double %2
29 define double @log_exp_log_exp(double %a) {
31 ; CHECK-NEXT: [[TMP1:%.*]] = call double @llvm.exp.f64(double [[A:%.*]])
32 ; CHECK-NEXT: [[TMP2:%.*]] = call double @llvm.log.f64(double [[TMP1]])
33 ; CHECK-NEXT: [[TMP3:%.*]] = call double @llvm.exp.f64(double [[TMP2]])
34 ; CHECK-NEXT: [[TMP4:%.*]] = call double @llvm.log.f64(double [[TMP3]])
35 ; CHECK-NEXT: ret double [[TMP4]]
37 %1 = call double @llvm.exp.f64(double %a)
38 %2 = call double @llvm.log.f64(double %1)
39 %3 = call double @llvm.exp.f64(double %2)
40 %4 = call double @llvm.log.f64(double %3)
41 ret double %4
44 define double @log_exp_log_exp_reassoc(double %a) {
46 ; CHECK-NEXT: ret double [[A:%.*]]
48 %1 = call double @llvm.exp.f64(double %a)
49 %2 = call reassoc double @llvm.log.f64(double %1)
50 %3 = call double @llvm.exp.f64(double %2)
51 %4 = call reassoc double @llvm.log.f64(double %3)
52 ret double %4
55 define double @log2_reassoc_exp2_strict(double %a) {
57 ; CHECK-NEXT: ret double [[A:%.*]]
59 %1 = call double @llvm.exp2.f64(double %a)
60 %2 = call reassoc double @llvm.log2.f64(double %1)
61 ret double %2
64 define double @log2_strict_exp2_reassoc(double %a) {
66 ; CHECK-NEXT: [[TMP1:%.*]] = call reassoc double @llvm.exp2.f64(double [[A:%.*]])
67 ; CHECK-NEXT: [[TMP2:%.*]] = call double @llvm.log2.f64(double [[TMP1]])
68 ; CHECK-NEXT: ret double [[TMP2]]
70 %1 = call reassoc double @llvm.exp2.f64(double %a)
71 %2 = call double @llvm.log2.f64(double %1)
72 ret double %2
75 define double @log2_exp2_log2_exp2(double %a) {
77 ; CHECK-NEXT: [[TMP1:%.*]] = call double @llvm.exp2.f64(double [[A:%.*]])
78 ; CHECK-NEXT: [[TMP2:%.*]] = call double @llvm.log2.f64(double [[TMP1]])
79 ; CHECK-NEXT: [[TMP3:%.*]] = call double @llvm.exp2.f64(double [[TMP2]])
80 ; CHECK-NEXT: [[TMP4:%.*]] = call double @llvm.log2.f64(double [[TMP3]])
81 ; CHECK-NEXT: ret double [[TMP4]]
83 %1 = call double @llvm.exp2.f64(double %a)
84 %2 = call double @llvm.log2.f64(double %1)
85 %3 = call double @llvm.exp2.f64(double %2)
86 %4 = call double @llvm.log2.f64(double %3)
87 ret double %4
90 define double @log2_exp2_log2_exp2_reassoc(double %a) {
92 ; CHECK-NEXT: ret double [[A:%.*]]
94 %1 = call double @llvm.exp2.f64(double %a)
95 %2 = call reassoc double @llvm.log2.f64(double %1)
96 %3 = call double @llvm.exp2.f64(double %2)
97 %4 = call reassoc double @llvm.log2.f64(double %3)
98 ret double %4
101 define double @exp_reassoc_log_strict(double %a) {
103 ; CHECK-NEXT: ret double [[A:%.*]]
105 %1 = call double @llvm.log.f64(double %a)
106 %2 = call reassoc double @llvm.exp.f64(double %1)
107 ret double %2
110 define double @exp_strict_log_reassoc(double %a) {
112 ; CHECK-NEXT: [[TMP1:%.*]] = call reassoc double @llvm.log.f64(double [[A:%.*]])
113 ; CHECK-NEXT: [[TMP2:%.*]] = call double @llvm.exp.f64(double [[TMP1]])
114 ; CHECK-NEXT: ret double [[TMP2]]
116 %1 = call reassoc double @llvm.log.f64(double %a)
117 %2 = call double @llvm.exp.f64(double %1)
118 ret double %2
121 define double @exp_log_exp_log(double %a) {
123 ; CHECK-NEXT: [[TMP1:%.*]] = call double @llvm.log.f64(double [[A:%.*]])
124 ; CHECK-NEXT: [[TMP2:%.*]] = call double @llvm.exp.f64(double [[TMP1]])
125 ; CHECK-NEXT: [[TMP3:%.*]] = call double @llvm.log.f64(double [[TMP2]])
126 ; CHECK-NEXT: [[TMP4:%.*]] = call double @llvm.exp.f64(double [[TMP3]])
127 ; CHECK-NEXT: ret double [[TMP4]]
129 %1 = call double @llvm.log.f64(double %a)
130 %2 = call double @llvm.exp.f64(double %1)
131 %3 = call double @llvm.log.f64(double %2)
132 %4 = call double @llvm.exp.f64(double %3)
133 ret double %4
136 define double @exp_log_exp_log_reassoc(double %a) {
138 ; CHECK-NEXT: ret double [[A:%.*]]
140 %1 = call double @llvm.log.f64(double %a)
141 %2 = call reassoc double @llvm.exp.f64(double %1)
142 %3 = call double @llvm.log.f64(double %2)
143 %4 = call reassoc double @llvm.exp.f64(double %3)
144 ret double %4
147 define double @exp2_reassoc_log2_strict(double %a) {
149 ; CHECK-NEXT: ret double [[A:%.*]]
151 %1 = call double @llvm.log2.f64(double %a)
152 %2 = call reassoc double @llvm.exp2.f64(double %1)
153 ret double %2
156 define double @exp2_strict_log2_reassoc(double %a) {
158 ; CHECK-NEXT: [[TMP1:%.*]] = call reassoc double @llvm.log2.f64(double [[A:%.*]])
159 ; CHECK-NEXT: [[TMP2:%.*]] = call double @llvm.exp2.f64(double [[TMP1]])
160 ; CHECK-NEXT: ret double [[TMP2]]
162 %1 = call reassoc double @llvm.log2.f64(double %a)
163 %2 = call double @llvm.exp2.f64(double %1)
164 ret double %2
167 define double @exp2_log2_exp2_log2(double %a) {
169 ; CHECK-NEXT: [[TMP1:%.*]] = call double @llvm.log2.f64(double [[A:%.*]])
170 ; CHECK-NEXT: [[TMP2:%.*]] = call double @llvm.exp2.f64(double [[TMP1]])
171 ; CHECK-NEXT: [[TMP3:%.*]] = call double @llvm.log2.f64(double [[TMP2]])
172 ; CHECK-NEXT: [[TMP4:%.*]] = call double @llvm.exp2.f64(double [[TMP3]])
173 ; CHECK-NEXT: ret double [[TMP4]]
175 %1 = call double @llvm.log2.f64(double %a)
176 %2 = call double @llvm.exp2.f64(double %1)
177 %3 = call double @llvm.log2.f64(double %2)
178 %4 = call double @llvm.exp2.f64(double %3)
179 ret double %4
182 define double @exp2_log2_exp2_log2_reassoc(double %a) {
184 ; CHECK-NEXT: ret double [[A:%.*]]
186 %1 = call double @llvm.log2.f64(double %a)
187 %2 = call reassoc double @llvm.exp2.f64(double %1)
188 %3 = call double @llvm.log2.f64(double %2)
189 %4 = call reassoc double @llvm.exp2.f64(double %3)
190 ret double %4