From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 620 invoked by alias); 4 Nov 2014 11:41:39 -0000 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 Received: (qmail 596 invoked by uid 48); 4 Nov 2014 11:41:34 -0000 From: "belagod at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/63679] [5.0 Regression][AArch64] Failure to constant fold. Date: Tue, 04 Nov 2014 11:41:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 5.0 X-Bugzilla-Keywords: missed-optimization X-Bugzilla-Severity: normal X-Bugzilla-Who: belagod at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2014-11/txt/msg00176.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63679 --- Comment #2 from Tejas Belagod --- foo.c.optimized: 5.0: ;; prev block 0, next block 1, flags: (NEW, REACHABLE) ;; pred: ENTRY [100.0%] (FALLTHRU,EXECUTABLE) # .MEM_4 = VDEF <.MEM_3(D)> aD.1380 = *.LC0D.1387; # VUSE <.MEM_4> vect__6.6_13 = MEM[(intD.7 *)&aD.1380]; # VUSE <.MEM_4> vect__6.6_10 = MEM[(intD.7 *)&aD.1380 + 16B]; _27 = BIT_FIELD_REF ; _16 = BIT_FIELD_REF ; _15 = _16 + _27; _18 = BIT_FIELD_REF ; _14 = BIT_FIELD_REF ; _5 = _14 + _18; _12 = BIT_FIELD_REF ; _2 = BIT_FIELD_REF ; _29 = _2 + _12; _30 = BIT_FIELD_REF ; _31 = BIT_FIELD_REF ; _32 = _30 + _31; vect_sum_7.7_17 = {_15, _5, _29, _32}; stmp_sum_7.8_19 = _15; stmp_sum_7.8_20 = _5; stmp_sum_7.8_21 = stmp_sum_7.8_19 + stmp_sum_7.8_20; stmp_sum_7.8_22 = _29; stmp_sum_7.8_23 = stmp_sum_7.8_21 + _29; stmp_sum_7.8_24 = _32; stmp_sum_7.8_25 = stmp_sum_7.8_23 + _32; vect_sum_7.9_26 = stmp_sum_7.8_25; # .MEM_9 = VDEF <.MEM_4> aD.1380 ={v} {CLOBBER}; # VUSE <.MEM_9> return vect_sum_7.9_26; ;; succ: EXIT [100.0%] Very strange that vectorizer seems to be kicking in with -mgeneral-regs-only 4.9.2: ;; basic block 2, loop depth 0, count 0, freq 1111, maybe hot ;; prev block 0, next block 1, flags: (NEW, REACHABLE) ;; pred: ENTRY [100.0%] (FALLTHRU,EXECUTABLE) # .MEM_4 = VDEF <.MEM_3(D)> aD.1374[0] = 0; # .MEM_5 = VDEF <.MEM_4> aD.1374[1] = 1; # .MEM_6 = VDEF <.MEM_5> aD.1374[2] = 2; # .MEM_7 = VDEF <.MEM_6> aD.1374[3] = 3; # .MEM_8 = VDEF <.MEM_7> aD.1374[4] = 4; # .MEM_9 = VDEF <.MEM_8> aD.1374[5] = 5; # .MEM_10 = VDEF <.MEM_9> aD.1374[6] = 6; # VUSE <.MEM_10> _20 = aD.1374[0]; # VUSE <.MEM_10> _29 = aD.1374[1]; sum_30 = _20 + _29; # VUSE <.MEM_10> _36 = aD.1374[2]; sum_37 = sum_30 + _36; # VUSE <.MEM_10> _43 = aD.1374[3]; sum_44 = sum_37 + _43; # VUSE <.MEM_10> _50 = aD.1374[4]; sum_51 = sum_44 + _50; # VUSE <.MEM_10> _57 = aD.1374[5]; sum_58 = sum_51 + _57; # VUSE <.MEM_10> _64 = aD.1374[6]; sum_65 = sum_58 + _64; sum_14 = sum_65 + 7; # .MEM_17 = VDEF <.MEM_10> aD.1374 ={v} {CLOBBER}; # VUSE <.MEM_17> return sum_14; ;; succ: EXIT [100.0%] 4.9's much saner.