With SSE emulation of MMX intrinsics, we should make _mm_empty () as NOP when MMX is disabled.
PR target/89021 * config/i386/mmx.md (EMMS): Also allow TARGET_MMX_WITH_SSE. (mmx_<emms>): Generate "<emms>" only when MMX is enabled. --- gcc/config/i386/mmx.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gcc/config/i386/mmx.md b/gcc/config/i386/mmx.md index d662663a445..eaca71d5750 100644 --- a/gcc/config/i386/mmx.md +++ b/gcc/config/i386/mmx.md @@ -1839,7 +1839,7 @@ (set_attr "mode" "DI")]) (define_int_iterator EMMS - [(UNSPECV_EMMS "TARGET_MMX") + [(UNSPECV_EMMS "TARGET_MMX || TARGET_MMX_WITH_SSE") (UNSPECV_FEMMS "TARGET_3DNOW")]) (define_int_attr emms @@ -1865,7 +1865,9 @@ (clobber (reg:DI MM6_REG)) (clobber (reg:DI MM7_REG))] "" - "<emms>" +{ + return TARGET_MMX ? "<emms>" : ""; +} [(set_attr "type" "mmx") (set_attr "modrm" "0") (set_attr "memory" "none")]) -- 2.20.1