2626# define TARGET_HEADER_BUILTIN (ID, TYPE, ATTRS, HEADER, LANG, FEATURE ) BUILTIN(ID, TYPE, ATTRS)
2727#endif
2828
29- // Undefined Values
30- //
31- TARGET_BUILTIN (__builtin_ia32_undef128, " V2d" , " ncV:128:" , " " )
32- TARGET_BUILTIN(__builtin_ia32_undef256, " V4d" , " ncV:256:" , " " )
33- TARGET_BUILTIN(__builtin_ia32_undef512, " V8d" , " ncV:512:" , " " )
34-
35- // FLAGS
36- //
37- TARGET_BUILTIN(__builtin_ia32_readeflags_u32, " Ui" , " n" , " " )
38- TARGET_BUILTIN(__builtin_ia32_writeeflags_u32, " vUi" , " n" , " " )
39-
4029// MMX
4130//
4231// All MMX instructions will be generated via builtins. Any MMX vector
@@ -46,113 +35,8 @@ TARGET_BUILTIN(__builtin_ia32_writeeflags_u32, "vUi", "n", "")
4635// argument and our prior approach of using a #define to the current built-in
4736// doesn't work in the presence of re-declaration of _mm_prefetch for windows.
4837TARGET_BUILTIN (_mm_prefetch, " vcC*i" , " nc" , " mmx" )
49- TARGET_BUILTIN(__builtin_ia32_emms, " v" , " n" , " mmx" )
50- TARGET_BUILTIN(__builtin_ia32_vec_ext_v4hi, " sV4sIi" , " ncV:64:" , " sse" )
51- TARGET_BUILTIN(__builtin_ia32_vec_set_v4hi, " V4sV4ssIi" , " ncV:64:" , " sse" )
5238
5339// SSE intrinsics.
54- TARGET_BUILTIN(__builtin_ia32_comieq, " iV4fV4f" , " ncV:128:" , " sse" )
55- TARGET_BUILTIN(__builtin_ia32_comilt, " iV4fV4f" , " ncV:128:" , " sse" )
56- TARGET_BUILTIN(__builtin_ia32_comile, " iV4fV4f" , " ncV:128:" , " sse" )
57- TARGET_BUILTIN(__builtin_ia32_comigt, " iV4fV4f" , " ncV:128:" , " sse" )
58- TARGET_BUILTIN(__builtin_ia32_comige, " iV4fV4f" , " ncV:128:" , " sse" )
59- TARGET_BUILTIN(__builtin_ia32_comineq, " iV4fV4f" , " ncV:128:" , " sse" )
60- TARGET_BUILTIN(__builtin_ia32_ucomieq, " iV4fV4f" , " ncV:128:" , " sse" )
61- TARGET_BUILTIN(__builtin_ia32_ucomilt, " iV4fV4f" , " ncV:128:" , " sse" )
62- TARGET_BUILTIN(__builtin_ia32_ucomile, " iV4fV4f" , " ncV:128:" , " sse" )
63- TARGET_BUILTIN(__builtin_ia32_ucomigt, " iV4fV4f" , " ncV:128:" , " sse" )
64- TARGET_BUILTIN(__builtin_ia32_ucomige, " iV4fV4f" , " ncV:128:" , " sse" )
65- TARGET_BUILTIN(__builtin_ia32_ucomineq, " iV4fV4f" , " ncV:128:" , " sse" )
66-
67- TARGET_BUILTIN(__builtin_ia32_comisdeq, " iV2dV2d" , " ncV:128:" , " sse2" )
68- TARGET_BUILTIN(__builtin_ia32_comisdlt, " iV2dV2d" , " ncV:128:" , " sse2" )
69- TARGET_BUILTIN(__builtin_ia32_comisdle, " iV2dV2d" , " ncV:128:" , " sse2" )
70- TARGET_BUILTIN(__builtin_ia32_comisdgt, " iV2dV2d" , " ncV:128:" , " sse2" )
71- TARGET_BUILTIN(__builtin_ia32_comisdge, " iV2dV2d" , " ncV:128:" , " sse2" )
72- TARGET_BUILTIN(__builtin_ia32_comisdneq, " iV2dV2d" , " ncV:128:" , " sse2" )
73- TARGET_BUILTIN(__builtin_ia32_ucomisdeq, " iV2dV2d" , " ncV:128:" , " sse2" )
74- TARGET_BUILTIN(__builtin_ia32_ucomisdlt, " iV2dV2d" , " ncV:128:" , " sse2" )
75- TARGET_BUILTIN(__builtin_ia32_ucomisdle, " iV2dV2d" , " ncV:128:" , " sse2" )
76- TARGET_BUILTIN(__builtin_ia32_ucomisdgt, " iV2dV2d" , " ncV:128:" , " sse2" )
77- TARGET_BUILTIN(__builtin_ia32_ucomisdge, " iV2dV2d" , " ncV:128:" , " sse2" )
78- TARGET_BUILTIN(__builtin_ia32_ucomisdneq, " iV2dV2d" , " ncV:128:" , " sse2" )
79-
80- TARGET_BUILTIN(__builtin_ia32_cmpeqps, " V4fV4fV4f" , " ncV:128:" , " sse" )
81- TARGET_BUILTIN(__builtin_ia32_cmpltps, " V4fV4fV4f" , " ncV:128:" , " sse" )
82- TARGET_BUILTIN(__builtin_ia32_cmpleps, " V4fV4fV4f" , " ncV:128:" , " sse" )
83- TARGET_BUILTIN(__builtin_ia32_cmpunordps, " V4fV4fV4f" , " ncV:128:" , " sse" )
84- TARGET_BUILTIN(__builtin_ia32_cmpneqps, " V4fV4fV4f" , " ncV:128:" , " sse" )
85- TARGET_BUILTIN(__builtin_ia32_cmpnltps, " V4fV4fV4f" , " ncV:128:" , " sse" )
86- TARGET_BUILTIN(__builtin_ia32_cmpnleps, " V4fV4fV4f" , " ncV:128:" , " sse" )
87- TARGET_BUILTIN(__builtin_ia32_cmpordps, " V4fV4fV4f" , " ncV:128:" , " sse" )
88- TARGET_BUILTIN(__builtin_ia32_cmpeqss, " V4fV4fV4f" , " ncV:128:" , " sse" )
89- TARGET_BUILTIN(__builtin_ia32_cmpltss, " V4fV4fV4f" , " ncV:128:" , " sse" )
90- TARGET_BUILTIN(__builtin_ia32_cmpless, " V4fV4fV4f" , " ncV:128:" , " sse" )
91- TARGET_BUILTIN(__builtin_ia32_cmpunordss, " V4fV4fV4f" , " ncV:128:" , " sse" )
92- TARGET_BUILTIN(__builtin_ia32_cmpneqss, " V4fV4fV4f" , " ncV:128:" , " sse" )
93- TARGET_BUILTIN(__builtin_ia32_cmpnltss, " V4fV4fV4f" , " ncV:128:" , " sse" )
94- TARGET_BUILTIN(__builtin_ia32_cmpnless, " V4fV4fV4f" , " ncV:128:" , " sse" )
95- TARGET_BUILTIN(__builtin_ia32_cmpordss, " V4fV4fV4f" , " ncV:128:" , " sse" )
96- TARGET_BUILTIN(__builtin_ia32_minps, " V4fV4fV4f" , " ncV:128:" , " sse" )
97- TARGET_BUILTIN(__builtin_ia32_maxps, " V4fV4fV4f" , " ncV:128:" , " sse" )
98- TARGET_BUILTIN(__builtin_ia32_minss, " V4fV4fV4f" , " ncV:128:" , " sse" )
99- TARGET_BUILTIN(__builtin_ia32_maxss, " V4fV4fV4f" , " ncV:128:" , " sse" )
100- TARGET_BUILTIN(__builtin_ia32_cmpps, " V4fV4fV4fIc" , " ncV:128:" , " sse" )
101- TARGET_BUILTIN(__builtin_ia32_cmpss, " V4fV4fV4fIc" , " ncV:128:" , " sse" )
102-
103- TARGET_BUILTIN(__builtin_ia32_cmpeqpd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
104- TARGET_BUILTIN(__builtin_ia32_cmpltpd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
105- TARGET_BUILTIN(__builtin_ia32_cmplepd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
106- TARGET_BUILTIN(__builtin_ia32_cmpunordpd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
107- TARGET_BUILTIN(__builtin_ia32_cmpneqpd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
108- TARGET_BUILTIN(__builtin_ia32_cmpnltpd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
109- TARGET_BUILTIN(__builtin_ia32_cmpnlepd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
110- TARGET_BUILTIN(__builtin_ia32_cmpordpd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
111- TARGET_BUILTIN(__builtin_ia32_cmpeqsd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
112- TARGET_BUILTIN(__builtin_ia32_cmpltsd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
113- TARGET_BUILTIN(__builtin_ia32_cmplesd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
114- TARGET_BUILTIN(__builtin_ia32_cmpunordsd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
115- TARGET_BUILTIN(__builtin_ia32_cmpneqsd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
116- TARGET_BUILTIN(__builtin_ia32_cmpnltsd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
117- TARGET_BUILTIN(__builtin_ia32_cmpnlesd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
118- TARGET_BUILTIN(__builtin_ia32_cmpordsd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
119- TARGET_BUILTIN(__builtin_ia32_cmpsd, " V2dV2dV2dIc" , " ncV:128:" , " sse2" )
120- TARGET_BUILTIN(__builtin_ia32_cmppd, " V2dV2dV2dIc" , " ncV:128:" , " sse2" )
121- TARGET_BUILTIN(__builtin_ia32_minpd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
122- TARGET_BUILTIN(__builtin_ia32_maxpd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
123- TARGET_BUILTIN(__builtin_ia32_minsd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
124- TARGET_BUILTIN(__builtin_ia32_maxsd, " V2dV2dV2d" , " ncV:128:" , " sse2" )
125- TARGET_BUILTIN(__builtin_ia32_pmulhw128, " V8sV8sV8s" , " ncV:128:" , " sse2" )
126- TARGET_BUILTIN(__builtin_ia32_pavgb128, " V16cV16cV16c" , " ncV:128:" , " sse2" )
127- TARGET_BUILTIN(__builtin_ia32_pavgw128, " V8sV8sV8s" , " ncV:128:" , " sse2" )
128- TARGET_BUILTIN(__builtin_ia32_packsswb128, " V16cV8sV8s" , " ncV:128:" , " sse2" )
129- TARGET_BUILTIN(__builtin_ia32_packssdw128, " V8sV4iV4i" , " ncV:128:" , " sse2" )
130- TARGET_BUILTIN(__builtin_ia32_packuswb128, " V16cV8sV8s" , " ncV:128:" , " sse2" )
131- TARGET_BUILTIN(__builtin_ia32_pmulhuw128, " V8sV8sV8s" , " ncV:128:" , " sse2" )
132- TARGET_BUILTIN(__builtin_ia32_vec_ext_v2di, " OiV2OiIi" , " ncV:128:" , " sse2" )
133- TARGET_BUILTIN(__builtin_ia32_vec_ext_v4si, " iV4iIi" , " ncV:128:" , " sse2" )
134- TARGET_BUILTIN(__builtin_ia32_vec_ext_v4sf, " fV4fIi" , " ncV:128:" , " sse2" )
135- TARGET_BUILTIN(__builtin_ia32_vec_ext_v8hi, " sV8sIi" , " ncV:128:" , " sse2" )
136- TARGET_BUILTIN(__builtin_ia32_vec_set_v8hi, " V8sV8ssIi" , " ncV:128:" , " sse2" )
137-
138- TARGET_BUILTIN(__builtin_ia32_addsubps, " V4fV4fV4f" , " ncV:128:" , " sse3" )
139- TARGET_BUILTIN(__builtin_ia32_addsubpd, " V2dV2dV2d" , " ncV:128:" , " sse3" )
140- TARGET_BUILTIN(__builtin_ia32_haddps, " V4fV4fV4f" , " ncV:128:" , " sse3" )
141- TARGET_BUILTIN(__builtin_ia32_haddpd, " V2dV2dV2d" , " ncV:128:" , " sse3" )
142- TARGET_BUILTIN(__builtin_ia32_hsubps, " V4fV4fV4f" , " ncV:128:" , " sse3" )
143- TARGET_BUILTIN(__builtin_ia32_hsubpd, " V2dV2dV2d" , " ncV:128:" , " sse3" )
144- TARGET_BUILTIN(__builtin_ia32_phaddw128, " V8sV8sV8s" , " ncV:128:" , " ssse3" )
145- TARGET_BUILTIN(__builtin_ia32_phaddd128, " V4iV4iV4i" , " ncV:128:" , " ssse3" )
146- TARGET_BUILTIN(__builtin_ia32_phaddsw128, " V8sV8sV8s" , " ncV:128:" , " ssse3" )
147- TARGET_BUILTIN(__builtin_ia32_phsubw128, " V8sV8sV8s" , " ncV:128:" , " ssse3" )
148- TARGET_BUILTIN(__builtin_ia32_phsubd128, " V4iV4iV4i" , " ncV:128:" , " ssse3" )
149- TARGET_BUILTIN(__builtin_ia32_phsubsw128, " V8sV8sV8s" , " ncV:128:" , " ssse3" )
150- TARGET_BUILTIN(__builtin_ia32_pmaddubsw128, " V8sV16cV16c" , " ncV:128:" , " ssse3" )
151- TARGET_BUILTIN(__builtin_ia32_pmulhrsw128, " V8sV8sV8s" , " ncV:128:" , " ssse3" )
152- TARGET_BUILTIN(__builtin_ia32_pshufb128, " V16cV16cV16c" , " ncV:128:" , " ssse3" )
153- TARGET_BUILTIN(__builtin_ia32_psignb128, " V16cV16cV16c" , " ncV:128:" , " ssse3" )
154- TARGET_BUILTIN(__builtin_ia32_psignw128, " V8sV8sV8s" , " ncV:128:" , " ssse3" )
155- TARGET_BUILTIN(__builtin_ia32_psignd128, " V4iV4iV4i" , " ncV:128:" , " ssse3" )
15640
15741TARGET_BUILTIN(__builtin_ia32_ldmxcsr, " vUi" , " n" , " sse" )
15842TARGET_HEADER_BUILTIN(_mm_setcsr, " vUi" , " nh" ,XMMINTRIN_H, ALL_LANGUAGES, " sse" )
@@ -316,16 +200,6 @@ TARGET_BUILTIN(__builtin_ia32_pclmulqdq256, "V4OiV4OiV4OiIc", "ncV:256:", "vpclm
316200TARGET_BUILTIN(__builtin_ia32_pclmulqdq512, " V8OiV8OiV8OiIc" , " ncV:512:" , " avx512f,evex512,vpclmulqdq" )
317201
318202// AVX
319- TARGET_BUILTIN(__builtin_ia32_addsubpd256, " V4dV4dV4d" , " ncV:256:" , " avx" )
320- TARGET_BUILTIN(__builtin_ia32_addsubps256, " V8fV8fV8f" , " ncV:256:" , " avx" )
321- TARGET_BUILTIN(__builtin_ia32_haddpd256, " V4dV4dV4d" , " ncV:256:" , " avx" )
322- TARGET_BUILTIN(__builtin_ia32_hsubps256, " V8fV8fV8f" , " ncV:256:" , " avx" )
323- TARGET_BUILTIN(__builtin_ia32_hsubpd256, " V4dV4dV4d" , " ncV:256:" , " avx" )
324- TARGET_BUILTIN(__builtin_ia32_haddps256, " V8fV8fV8f" , " ncV:256:" , " avx" )
325- TARGET_BUILTIN(__builtin_ia32_maxpd256, " V4dV4dV4d" , " ncV:256:" , " avx" )
326- TARGET_BUILTIN(__builtin_ia32_maxps256, " V8fV8fV8f" , " ncV:256:" , " avx" )
327- TARGET_BUILTIN(__builtin_ia32_minpd256, " V4dV4dV4d" , " ncV:256:" , " avx" )
328- TARGET_BUILTIN(__builtin_ia32_minps256, " V8fV8fV8f" , " ncV:256:" , " avx" )
329203TARGET_BUILTIN(__builtin_ia32_vpermilvarpd, " V2dV2dV2Oi" , " ncV:256:" , " avx" )
330204TARGET_BUILTIN(__builtin_ia32_vpermilvarps, " V4fV4fV4i" , " ncV:256:" , " avx" )
331205TARGET_BUILTIN(__builtin_ia32_vpermilvarpd256, " V4dV4dV4Oi" , " ncV:256:" , " avx" )
0 commit comments