https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90993
--- Comment #3 from Matthias Kretz (Vir) <kretz at kde dot org> --- IIUC, AVX512 only allows overriding the rounding-mode from div instructions. So that wouldn't help. What standard requires that "integer division is not permitted to raise the "inexact" exception flag"? C++ points to C which says: "Certain programming conventions support the intended model of use for the floating-point environment: — a function call does not alter its caller’s floating-point control modes, clear its caller’s floating-point status flags, nor depend on the state of its caller’s floating-point status flags unless the function is so documented; — a function call is assumed to require default floating-point control modes, unless its documentation promises otherwise; — a function call is assumed to have the potential for raising floating-point exceptions, unless its documentation promises otherwise." [§7.6 p3] Thus it's a valid implementation to use floating point division for a SIMD type library, but not valid for auto-vectorization of integer division? (For vector_size(N) types the spec is up to you, no?)