From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11037 invoked by alias); 18 Jan 2012 09:34:56 -0000 Received: (qmail 10954 invoked by uid 22791); 18 Jan 2012 09:34:55 -0000 X-SWARE-Spam-Status: No, hits=-2.9 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 18 Jan 2012 09:34:43 +0000 From: "Heiko.Klein at gmx dot net" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/51890] New: vectorizer does not recognize intrinsic functions like sqrt Date: Wed, 18 Jan 2012 09:53:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Keywords: X-Bugzilla-Severity: enhancement X-Bugzilla-Who: Heiko.Klein at gmx dot net X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2012-01/txt/msg01976.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51890 Bug #: 51890 Summary: vectorizer does not recognize intrinsic functions like sqrt Classification: Unclassified Product: gcc Version: 4.6.2 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: tree-optimization AssignedTo: unassigned@gcc.gnu.org ReportedBy: Heiko.Klein@gmx.net Created attachment 26360 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26360 test code which does not vectorize properly Compiling attached program with gcc4.6.2/bin/gcc -std=c99 -O2 -mfpmath=sse -msse2 -lm -o test_novector test_novector.c -ftree-vectorize -ftree-vectorizer-verbose=2 results in the comment: test_novector.c:8: note: not vectorized: loop contains function calls or data references that cannot be analyzed (older compilers, i.e. gcc4.4.3 just complain about data reference) The only function call is sqrt(), but sqrt is an intrinsic vectorized function (_mm_sqrt_pd) and can be easily vectorized. Due to missing vectorization, this code is 2x (4x with AVX) slower than compiled with other compilers (tested against icc12).