AArch64: implement TARGET_VECTORIZE_CONDITIONAL_OPERATION_IS_EXPENSIVE [PR115531].
[official-gcc.git] / libgcc / config / i386 / 64 / sfp-machine.h
blob1c8e8a5024072fd5d17e0151763781355f579e5c
1 #define _FP_W_TYPE_SIZE 64
2 #define _FP_W_TYPE unsigned long long
3 #define _FP_WS_TYPE signed long long
4 #define _FP_I_TYPE long long
6 typedef int TItype __attribute__ ((mode (TI)));
7 typedef unsigned int UTItype __attribute__ ((mode (TI)));
9 #define TI_BITS (__CHAR_BIT__ * (int)sizeof(TItype))
11 #define _FP_MUL_MEAT_Q(R,X,Y) \
12 _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
14 #define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_2_udiv(Q,R,X,Y)
16 #define _FP_NANFRAC_H _FP_QNANBIT_H
17 #define _FP_NANFRAC_B _FP_QNANBIT_B
18 #define _FP_NANFRAC_S _FP_QNANBIT_S
19 #define _FP_NANFRAC_D _FP_QNANBIT_D
20 #define _FP_NANFRAC_E _FP_QNANBIT_E, 0
21 #define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0
23 #ifndef _SOFT_FLOAT
24 #define FP_EX_SHIFT 7
26 #define _FP_DECL_EX \
27 unsigned int _fcw __attribute__ ((unused)) = FP_RND_NEAREST;
29 #define FP_RND_NEAREST 0
30 #define FP_RND_ZERO 0x6000
31 #define FP_RND_PINF 0x4000
32 #define FP_RND_MINF 0x2000
34 #define FP_RND_MASK 0x6000
36 #define FP_INIT_ROUNDMODE \
37 do { \
38 __asm__ __volatile__ ("%vstmxcsr\t%0" : "=m" (_fcw)); \
39 } while (0)
40 #endif