https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98648
Hongtao.liu <crazylht at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |crazylht at gmail dot com --- Comment #2 from Hongtao.liu <crazylht at gmail dot com> --- It looks like not an ABI issue, but gcc didn't simplify for vector all one bits for floating point. .277r.combine Trying 6 -> 7: 6: r85:V4SF=const_vector 7: r84:V4SF=~r85:V4SF&r87:V4SF REG_DEAD r87:V4SF REG_DEAD r85:V4SF Failed to match this instruction: (set (reg:V4SF 84) (and:V4SF (reg:V4SF 87) (const_vector:V4SF [ (const_double:SF -QNaN [-QNaN]) repeated x4 ]))) When NAN is all ones(which is situation here), it should be simplified to (set (reg:V4SF 84) (reg: V4SF 87))