public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "franckbehaghel_gcc at protonmail dot com" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug middle-end/114647] New: missing DCE when looping over a VLA Date: Mon, 08 Apr 2024 21:37:14 +0000 [thread overview] Message-ID: <bug-114647-4@http.gcc.gnu.org/bugzilla/> (raw) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114647 Bug ID: 114647 Summary: missing DCE when looping over a VLA Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: franckbehaghel_gcc at protonmail dot com Target Milestone: --- $cat foo.cpp #include "stdint.h" #include "stdio.h" void foo(int n) { uint64_t a[n]; for (uint32_t i=0;i<n;i++) a[i] = i; printf(" "); } At O3, gcc vectorize the loop but do not remove it: foo(int): push rbp movsx rax, edi lea rax, [15+rax*8] and rax, -16 mov rbp, rsp sub rsp, rax test edi, edi je .L2 lea edx, [rdi-1] cmp edx, 2 jbe .L2 shr edi, 2 mov ecx, 4 pxor xmm2, xmm2 mov rax, rsp mov edx, edi movdqa xmm1, XMMWORD PTR .LC0[rip] movd xmm4, ecx sal rdx, 5 pshufd xmm4, xmm4, 0 add rdx, rsp .L4: movdqa xmm0, xmm1 add rax, 32 paddd xmm1, xmm4 movdqa xmm3, xmm0 punpckhdq xmm0, xmm2 punpckldq xmm3, xmm2 movups XMMWORD PTR [rax-16], xmm0 movups XMMWORD PTR [rax-32], xmm3 cmp rdx, rax jne .L4 .L2: mov edi, 32 call putchar leave ret clang ( c or c++ ) does remove the loop : foo: # @foo mov edi, 32 jmp putchar@PLT # TAILCALL
next reply other threads:[~2024-04-08 21:37 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-04-08 21:37 franckbehaghel_gcc at protonmail dot com [this message] 2024-04-08 21:40 ` [Bug tree-optimization/114647] missing DSE " pinskia at gcc dot gnu.org 2024-04-08 21:46 ` pinskia at gcc dot gnu.org 2024-04-09 7:12 ` rguenth at gcc dot gnu.org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-114647-4@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).