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