https://gcc.gnu.org/bugzilla/show_bug.cgi?id=21809
nicbrown <contacts at buymore dot pro> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |contacts at buymore dot pro --- Comment #23 from nicbrown <contacts at buymore dot pro> --- This is a target problem, as the RTL is correct. Looks like there is a forgotten rounding back https://tinyurl.com/y46wuubk to float. Read the code carefully: test-case.c: #include <assert,h> volatile float x = 3; int main() { float a = 1 / x; x = a; assert(a == x); } Fixed???