https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109711

--- Comment #5 from Tamar Christina <tnfchris at gcc dot gnu.org> ---
(In reply to Martin Liška from comment #3)
> Hm, on x86_64-linux-gnu, it started with r13-6616-g2246d576f922ba.

$ cat prtest2.c
void lspf2lpc();

int interpolate_lpc_q_0;

void
interpolate_lpc(int subframe_num) {
  float weight;
  if (interpolate_lpc_q_0)
    weight = subframe_num;
  else
    weight = 1.0;
  if (weight != 1.0)
    lspf2lpc();
}

void
qcelp_decode_frame() {
  int i;
  for (;; i++)
    interpolate_lpc(i);
}

$ ./install/bin/gcc --version
gcc (GCC) 13.0.1 20230312 (experimental)

$ git log -1
commit 2246d576f922bae3629da0fe1dbfcc6ff06769ad (HEAD)
Author: Tamar Christina <tamar.christ...@arm.com>
Date:   Sun Mar 12 18:39:33 2023 +0000

    middle-end: Revert can_special_div_by_const changes [PR108583]

    This reverts the changes for the CAN_SPECIAL_DIV_BY_CONST hook.

    gcc/ChangeLog:

            PR target/108583
            * doc/tm.texi (TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Remove.
            * doc/tm.texi.in: Likewise.
            * explow.cc (round_push, align_dynamic_address): Revert previous
patch.
            * expmed.cc (expand_divmod): Likewise.
            * expmed.h (expand_divmod): Likewise.
            * expr.cc (force_operand, expand_expr_divmod): Likewise.
            * optabs.cc (expand_doubleword_mod, expand_doubleword_divmod):
Likewise.
            * target.def (can_special_div_by_const): Remove.
            * target.h: Remove tree-core.h include
            * targhooks.cc (default_can_special_div_by_const): Remove.
            * targhooks.h (default_can_special_div_by_const): Remove.
            * tree-vect-generic.cc (expand_vector_operation): Remove hook.
            * tree-vect-patterns.cc (vect_recog_divmod_pattern): Remove hook.
            * tree-vect-stmts.cc (vectorizable_operation): Remove hook.

$ ./install/bin/gcc -O2 -S -o - prtest2.c
        .file   "prtest2.c"
        .text
        .p2align 4
        .globl  interpolate_lpc
        .type   interpolate_lpc, @function
interpolate_lpc:
.LFB0:
        .cfi_startproc
        movl    interpolate_lpc_q_0(%rip), %eax
        testl   %eax, %eax
        je      .L1
        pxor    %xmm0, %xmm0
        cvtsi2ssl       %edi, %xmm0
        ucomiss .LC0(%rip), %xmm0
        jp      .L4
        jne     .L4
.L1:
        ret
        .p2align 4,,10
        .p2align 3
...

Also that commit doesn't build because I forgot to cp tm.texi to the source
directory after the revert.

So I think the bisect probably didn't find it in that range.

https://godbolt.org/z/r44xGzarY indicates GCC 13.1 is fine.  So I don't think
this one is mine.

Reply via email to