https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120203
Bug ID: 120203 Summary: RISC-V: Frm restore missing after call insn (float-point-dynamic-frm-74.c) Product: gcc Version: 15.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: target Assignee: vineetg at gcc dot gnu.org Reporter: vineetg at gcc dot gnu.org CC: jeffreyalaw at gmail dot com, pan2.li at intel dot com, rdapp at gcc dot gnu.org Target Milestone: --- FRM mode switching is failing to reload a frm after a function call. The issue happens all the way to when the test was added and thus test expectation needs to be adjusted as well. The overall control flow of test is as follows: | frrm a5 | fsrmi 1 | vfadd.vv v1,v8,v9 | fsrm a5 <-- call1/call2: restore before call | beq a1,zero,.L2 | | call normalize_vl_1 | frrm a5 <-- call1: save after call | | .L3: | fsrmi 3 | vfadd.vv v8,v8,v9 | fsrm a5 | jr ra | | .L2: | call normalize_vl_2 | frrm a5 <-- call2: save after call MISSING | j .L3