https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108293
Bug ID: 108293 Summary: Incorrect assembly emitted for float for BPF target Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: dkm at gcc dot gnu.org Target Milestone: --- https://godbolt.org/z/z9WEs3Ksn The generated code has identical function for b() and d(), which is obviously wrong. float f; float a() { f = 1.0; return 1.0; } float b() { f = 2.0; return 2.0; } float c() { f = 2.0; return 3.0; } float d() { f = 3.0; return 3.0; } _Z1av: lddw %r0,65 lddw %r1,f stxw [%r1+0],%r0 exit _Z1bv: lddw %r0,129 lddw %r1,f stxw [%r1+0],%r0 exit _Z1cv: lddw %r0,f lddw %r1,129 stxw [%r0+0],%r1 lddw %r0,129 exit _Z1dv: lddw %r0,129 lddw %r1,f stxw [%r1+0],%r0 exit