26
26
# define TARGET_HEADER_BUILTIN (ID, TYPE, ATTRS, HEADER, LANG, FEATURE ) BUILTIN(ID, TYPE, ATTRS)
27
27
#endif
28
28
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
-
40
29
// MMX
41
30
//
42
31
// All MMX instructions will be generated via builtins. Any MMX vector
@@ -46,113 +35,8 @@ TARGET_BUILTIN(__builtin_ia32_writeeflags_u32, "vUi", "n", "")
46
35
// argument and our prior approach of using a #define to the current built-in
47
36
// doesn't work in the presence of re-declaration of _mm_prefetch for windows.
48
37
TARGET_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" )
52
38
53
39
// 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" )
156
40
157
41
TARGET_BUILTIN(__builtin_ia32_ldmxcsr, " vUi" , " n" , " sse" )
158
42
TARGET_HEADER_BUILTIN(_mm_setcsr, " vUi" , " nh" ,XMMINTRIN_H, ALL_LANGUAGES, " sse" )
@@ -316,16 +200,6 @@ TARGET_BUILTIN(__builtin_ia32_pclmulqdq256, "V4OiV4OiV4OiIc", "ncV:256:", "vpclm
316
200
TARGET_BUILTIN(__builtin_ia32_pclmulqdq512, " V8OiV8OiV8OiIc" , " ncV:512:" , " avx512f,evex512,vpclmulqdq" )
317
201
318
202
// 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" )
329
203
TARGET_BUILTIN(__builtin_ia32_vpermilvarpd, " V2dV2dV2Oi" , " ncV:256:" , " avx" )
330
204
TARGET_BUILTIN(__builtin_ia32_vpermilvarps, " V4fV4fV4i" , " ncV:256:" , " avx" )
331
205
TARGET_BUILTIN(__builtin_ia32_vpermilvarpd256, " V4dV4dV4Oi" , " ncV:256:" , " avx" )
0 commit comments