$ gcc -O3 transf-generated.c -lm $ ./a.out 0 x = [0x0000000000000000] = 0 Error for x_sub_zero in FE_DOWNWARD: y0 = [0x0000000000000000] = 0 y1 = [0x8000000000000000] = -0 $ gcc -O3 transf-generated.c -lm -frounding-math $ ./a.out 0 x = [0x0000000000000000] = 0 $ ./a.out 0x7ff0000000000001 x = [0x7ff0000000000001] = nan (signaling) Error for x_mul_pone in FE_TONEAREST: y0 = [0x7ff0000000000001] = nan (signaling) y1 = [0x7ff8000000000001] = nan Error for x_mul_mone in FE_TONEAREST: y0 = [0xfff0000000000001] = -nan (signaling) y1 = [0x7ff8000000000001] = nan Error for x_div_pone in FE_TONEAREST: y0 = [0x7ff0000000000001] = nan (signaling) y1 = [0x7ff8000000000001] = nan Error for x_div_mone in FE_TONEAREST: y0 = [0xfff0000000000001] = -nan (signaling) y1 = [0x7ff8000000000001] = nan Error for x_mul_pone in FE_TOWARDZERO: y0 = [0x7ff0000000000001] = nan (signaling) y1 = [0x7ff8000000000001] = nan Error for x_mul_mone in FE_TOWARDZERO: y0 = [0xfff0000000000001] = -nan (signaling) y1 = [0x7ff8000000000001] = nan Error for x_div_pone in FE_TOWARDZERO: y0 = [0x7ff0000000000001] = nan (signaling) y1 = [0x7ff8000000000001] = nan Error for x_div_mone in FE_TOWARDZERO: y0 = [0xfff0000000000001] = -nan (signaling) y1 = [0x7ff8000000000001] = nan Error for x_mul_pone in FE_DOWNWARD: y0 = [0x7ff0000000000001] = nan (signaling) y1 = [0x7ff8000000000001] = nan Error for x_mul_mone in FE_DOWNWARD: y0 = [0xfff0000000000001] = -nan (signaling) y1 = [0x7ff8000000000001] = nan Error for x_div_pone in FE_DOWNWARD: y0 = [0x7ff0000000000001] = nan (signaling) y1 = [0x7ff8000000000001] = nan Error for x_div_mone in FE_DOWNWARD: y0 = [0xfff0000000000001] = -nan (signaling) y1 = [0x7ff8000000000001] = nan Error for x_mul_pone in FE_UPWARD: y0 = [0x7ff0000000000001] = nan (signaling) y1 = [0x7ff8000000000001] = nan Error for x_mul_mone in FE_UPWARD: y0 = [0xfff0000000000001] = -nan (signaling) y1 = [0x7ff8000000000001] = nan Error for x_div_pone in FE_UPWARD: y0 = [0x7ff0000000000001] = nan (signaling) y1 = [0x7ff8000000000001] = nan Error for x_div_mone in FE_UPWARD: y0 = [0xfff0000000000001] = -nan (signaling) y1 = [0x7ff8000000000001] = nan $ gcc -O3 transf-generated.c -lm -fsignaling-nans $ ./a.out 0x7ff0000000000001 x = [0x7ff0000000000001] = nan (signaling) Error for x_sub_zero in FE_TONEAREST: y0 = [0x7ff0000000000001] = nan (signaling) y1 = [0x7ff8000000000001] = nan Error for x_sub_zero in FE_TOWARDZERO: y0 = [0x7ff0000000000001] = nan (signaling) y1 = [0x7ff8000000000001] = nan Error for x_sub_zero in FE_DOWNWARD: y0 = [0x7ff0000000000001] = nan (signaling) y1 = [0x7ff8000000000001] = nan Error for x_sub_zero in FE_UPWARD: y0 = [0x7ff0000000000001] = nan (signaling) y1 = [0x7ff8000000000001] = nan $ gcc -O3 transf-generated.c -lm -fsignaling-nans -frounding-math $ ./a.out 0x7ff0000000000001 x = [0x7ff0000000000001] = nan (signaling)