[llvm-bugs] [Bug 36518] New: cbrt() function cannot be vectorized through OpenMP
via llvm-bugs
llvm-bugs at lists.llvm.org
Mon Feb 26 08:38:15 PST 2018
https://bugs.llvm.org/show_bug.cgi?id=36518
Bug ID: 36518
Summary: cbrt() function cannot be vectorized through OpenMP
Product: OpenMP
Version: unspecified
Hardware: PC
OS: FreeBSD
Status: NEW
Severity: enhancement
Priority: P
Component: Clang Compiler Support
Assignee: unassignedclangbugs at nondot.org
Reporter: jmd at freebsd.org
CC: llvm-bugs at lists.llvm.org
Created attachment 19962
--> https://bugs.llvm.org/attachment.cgi?id=19962&action=edit
reproduction of issue
A trivial loop using cbrt() from cmath in its body cannot be vectorized.
Compiling attached gives the following (on FreeBSD with LLVM devel as of
beginning of February):
$ clang++-devel -O3 -Rpass=loop-vectorize -Rpass-missed=loop-vectorize
-Rpass-analysis=loop-vectorize -fsave-optimization-record -fopenmp -o cbrt
cbrt.cpp
cbrt.cpp:13:12: remark: loop not vectorized: call instruction cannot be
vectorized [-Rpass-analysis]
res[x] = cbrt((double) x);
^
cbrt.cpp:11:10: remark: loop not vectorized (Force=true)
[-Rpass-missed=loop-vectorize]
#pragma omp simd
^
cbrt.cpp:11:10: warning: loop not vectorized: failed explicitly specified loop
vectorization [-Wpass-failed=loop-vectorize]
1 warning generated.
What is necessary to have cbrt() vectorizable? This works with recent Intel
compilers on Linux and GCC seems to also be capable to do this properly.
--
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/20180226/d36eb091/attachment-0001.html>
More information about the llvm-bugs
mailing list