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) ); }