@@ -, +, @@
 -fno-trapping-math
---
 math/Makefile                         |  8 ++++++++
 sysdeps/x86_64/fpu/multiarch/Makefile | 17 +++++++++++++----
 2 files changed, 21 insertions(+), 4 deletions(-)
--- a/math/Makefile	
+++ a/math/Makefile	
@@ -1754,10 +1754,18 @@ CFLAGS-s_ynf.c += -fno-builtin-ynf32
 
 # These files quiet sNaNs in a way that is optimized away without
 # -fsignaling-nans.
+ifneq (yes,$(use-builtins-trunc))
 CFLAGS-s_modf.c += $(config-cflags-signaling-nans)
+endif
+ifneq (yes,$(use-builtins-truncf))
 CFLAGS-s_modff.c += $(config-cflags-signaling-nans)
+endif
+ifneq (yes,$(use-builtins-truncfl))
 CFLAGS-s_modfl.c += $(config-cflags-signaling-nans)
+endif
+ifneq (yes,$(use-builtins-truncf128))
 CFLAGS-s_modff128.c += $(config-cflags-signaling-nans)
+endif
 
 $(addprefix $(objpfx),\
 	    $(filter-out $(tests-static) $(libm-tests-vector),\
--- a/sysdeps/x86_64/fpu/multiarch/Makefile	
+++ a/sysdeps/x86_64/fpu/multiarch/Makefile	
@@ -50,6 +50,12 @@ libm-sysdep_routines += \
   s_trunc-avx \
   s_truncf-avx \
 # libm-sysdep_routines
+
+# Don't add -fsignaling-nans for ISA level is 3 or above.
+use-builtins-trunc = yes
+use-builtins-truncf = yes
+CFLAGS-s_modf.c = -fno-trapping-math
+CFLAGS-s_modff.c = -fno-trapping-math
 else
 sysdep_calls += \
   s_modf-avx \
@@ -158,11 +164,14 @@ CFLAGS-s_sin-avx.c = -msse2avx -DSSE2AVX
 CFLAGS-s_tan-avx.c = -msse2avx -DSSE2AVX
 CFLAGS-s_sincos-avx.c = -msse2avx -DSSE2AVX
 
-CFLAGS-s_modf-sse4_1.c = -msse4.1 -fno-builtin-modff32x -fno-builtin-modff64
-CFLAGS-s_modff-sse4_1.c = -msse4.1 -fno-builtin-modff32
+CFLAGS-s_modf-sse4_1.c = -msse4.1 -fno-builtin-modff32x \
+			-fno-builtin-modff64 -fno-trapping-math
+CFLAGS-s_modff-sse4_1.c = -msse4.1 -fno-builtin-modff32 \
+			-fno-trapping-math
 
-CFLAGS-s_modf-avx.c = -mavx -fno-builtin-modff32x -fno-builtin-modff64
-CFLAGS-s_modff-avx.c = -mavx -fno-builtin-modff32
+CFLAGS-s_modf-avx.c = -mavx -fno-builtin-modff32x -fno-builtin-modff64 \
+		      -fno-trapping-math
+CFLAGS-s_modff-avx.c = -mavx -fno-builtin-modff32 -fno-trapping-math
 endif
 
 ifeq ($(subdir),mathvec)
-- 
