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

            Bug ID: 112568
           Summary: [14 Regression] Miscompilation of radeonsi (mesa) with
                    -march=raptorlake (-mavx) since
                    r14-5355-g3cd3a09b3f91a1
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: kocelfc at tutanota dot com
  Target Milestone: ---
              Host: x86_64-pc-linux-gnu
            Target: x86_64-pc-linux-gnu

Created attachment 56602
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=56602&action=edit
objdump -d -Mintel of function at trunk

Since r14-5355-g3cd3a09b3f91a1, there is a bug causing gcc to miscompile
radeonsi when using -march=raptorlake, which leads to segfaults. I tried making
a testcase but I've got no idea where to even start looking.

The function appears in the preprocessed file as 
static uint16_t
tc_call_flush(struct pipe_context *pipe, void *call, uint64_t *last)
{
   struct tc_flush_call *p = ((struct tc_flush_call *)to_call_check((void
*)(call), ( ((sizeof(struct tc_flush_call)) + (8) - 1) / (8) )));
   struct pipe_screen *screen = pipe->screen;

   pipe->flush(pipe, p->fence ? &p->fence : 
# 3619 "../src/gallium/auxiliary/util/u_threaded_context.c" 3 4
                                           ((void *)0)
# 3619 "../src/gallium/auxiliary/util/u_threaded_context.c"
                                               , p->flags);
   screen->fence_reference(screen, &p->fence, 
# 3620 "../src/gallium/auxiliary/util/u_threaded_context.c" 3 4
                                             ((void *)0)
# 3620 "../src/gallium/auxiliary/util/u_threaded_context.c"
                                                 );

   tc_flush_queries(p->tc);

   return ( ((sizeof(struct tc_flush_call)) + (8) - 1) / (8) );
}

Reply via email to