[llvm-bugs] [Bug 35592] New: Missed optimization in math expression: squashing sqrt functions
via llvm-bugs
llvm-bugs at lists.llvm.org
Sun Dec 10 04:06:33 PST 2017
https://bugs.llvm.org/show_bug.cgi?id=35592
Bug ID: 35592
Summary: Missed optimization in math expression: squashing sqrt
functions
Product: clang
Version: trunk
Hardware: PC
OS: All
Status: NEW
Severity: enhancement
Priority: P
Component: LLVM Codegen
Assignee: unassignedclangbugs at nondot.org
Reporter: zamazan4ik at tut.by
CC: llvm-bugs at lists.llvm.org
clang(trunk) with '--std=c++17 -O3 -march=native -ffast-math' flags for this
code:
#include <cmath>
double f(double a, double b, double c, double d)
{
return sqrt(a)*sqrt(b)*sqrt(c)*sqrt(d);
}
generates this assembly:
f(double, double, double, double): # @f(double, double, double, double)
vsqrtsd xmm0, xmm0, xmm0
vsqrtsd xmm1, xmm1, xmm1
vmulsd xmm0, xmm1, xmm0
vsqrtsd xmm1, xmm2, xmm2
vsqrtsd xmm2, xmm3, xmm3
vmulsd xmm1, xmm1, xmm2
vmulsd xmm0, xmm0, xmm1
ret
GCC (trunk) with '--std=c++17 -O3 -march=native -ffast-math' flags generates
more optimal code:
f(double, double, double, double):
vmulsd xmm0, xmm0, xmm1
vmulsd xmm2, xmm2, xmm3
vmulsd xmm2, xmm2, xmm0
vsqrtsd xmm0, xmm0, xmm2
ret
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20171210/a3d2304b/attachment.html>
More information about the llvm-bugs
mailing list