Lines Matching refs:sqrt
4 declare double @llvm.sqrt.f64(double) nounwind readnone speculatable
5 declare <2 x float> @llvm.sqrt.v2f32(<2 x float>)
8 ; sqrt(a) * sqrt(b) no math flags
12 ; CHECK-NEXT: [[TMP1:%.*]] = call double @llvm.sqrt.f64(double [[A:%.*]])
13 ; CHECK-NEXT: [[TMP2:%.*]] = call double @llvm.sqrt.f64(double [[B:%.*]])
17 %1 = call double @llvm.sqrt.f64(double %a)
18 %2 = call double @llvm.sqrt.f64(double %b)
23 ; sqrt(a) * sqrt(b) fast-math, multiple uses
27 ; CHECK-NEXT: [[TMP1:%.*]] = call fast double @llvm.sqrt.f64(double [[A:%.*]])
28 ; CHECK-NEXT: [[TMP2:%.*]] = call fast double @llvm.sqrt.f64(double [[B:%.*]])
33 %1 = call fast double @llvm.sqrt.f64(double %a)
34 %2 = call fast double @llvm.sqrt.f64(double %b)
40 ; sqrt(a) * sqrt(b) => sqrt(a*b) with fast-math
45 ; CHECK-NEXT: [[TMP2:%.*]] = call reassoc nnan double @llvm.sqrt.f64(double [[TMP1]])
48 %1 = call double @llvm.sqrt.f64(double %a)
49 %2 = call double @llvm.sqrt.f64(double %b)
59 ; CHECK-NEXT: [[TMP1:%.*]] = call double @llvm.sqrt.f64(double [[A:%.*]])
60 ; CHECK-NEXT: [[TMP2:%.*]] = call double @llvm.sqrt.f64(double [[B:%.*]])
64 %1 = call double @llvm.sqrt.f64(double %a)
65 %2 = call double @llvm.sqrt.f64(double %b)
70 ; sqrt(a) * sqrt(b) * sqrt(c) * sqrt(d) => sqrt(a*b*c*d) with fast-math
78 ; CHECK-NEXT: [[TMP4:%.*]] = call reassoc nnan ninf double @llvm.sqrt.f64(double [[TMP3]])
81 %1 = call double @llvm.sqrt.f64(double %a)
82 %2 = call double @llvm.sqrt.f64(double %b)
83 %3 = call double @llvm.sqrt.f64(double %c)
84 %4 = call double @llvm.sqrt.f64(double %d)
96 %sqrt = call fast double @llvm.sqrt.f64(double %x)
97 %rsqrt = fdiv fast double 1.0, %sqrt
104 ; CHECK-NEXT: [[SQRT:%.*]] = call double @llvm.sqrt.f64(double [[X:%.*]])
110 %sqrt = call double @llvm.sqrt.f64(double %x)
111 %rsqrt = fdiv double 1.0, %sqrt
120 ; CHECK-NEXT: [[SQRT:%.*]] = call fast <2 x float> @llvm.sqrt.v2f32(<2 x float> [[ADD]])
127 %sqrt = call fast <2 x float> @llvm.sqrt.v2f32(<2 x float> %add)
128 %rsqrt = fdiv fast <2 x float> <float 1.0, float 1.0>, %sqrt
140 %sqrt = call double @llvm.sqrt.f64(double %x)
141 %div = fdiv double %y, %sqrt
152 %sqrt = call <2 x float> @llvm.sqrt.v2f32(<2 x float> %x)
153 %div = fdiv fast <2 x float> %sqrt, %y
163 ; CHECK-NEXT: [[SQRT:%.*]] = call double @llvm.sqrt.f64(double [[X:%.*]])
169 %sqrt = call double @llvm.sqrt.f64(double %x)
170 %div = fdiv double %y, %sqrt
178 ; CHECK-NEXT: [[SQRT:%.*]] = call double @llvm.sqrt.f64(double [[X:%.*]])
184 %sqrt = call double @llvm.sqrt.f64(double %x)
185 call void @use(double %sqrt)
186 %div = fdiv fast double %sqrt, %y
195 ; CHECK-NEXT: [[SQRT:%.*]] = call double @llvm.sqrt.f64(double [[X:%.*]])
200 %sqrt = call double @llvm.sqrt.f64(double %x)
201 %div = fdiv double %y, %sqrt
212 ; CHECK-NEXT: [[SQRT:%.*]] = call fast double @llvm.sqrt.f64(double [[X:%.*]])
218 %sqrt = call fast double @llvm.sqrt.f64(double %x)
219 %rsqrt = fdiv fast double 1.0, %sqrt