aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.2.1-5666.3/gcc/config/rs6000/builtin.ops
blob: a28e35654fc3017fbca31db2cfd16cd91f56c8a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
# APPLE LOCAL file AltiVec
# ops-to-gp -gcc vec.ops builtin.ops
# @ betype betype-code type-spelling
@ @ float BETYPE_R4 float
@ @ ushort BETYPE_U4 unsigned=short
@ @ uint BETYPE_U4 unsigned=int
@ @ ulong BETYPE_U4 unsigned=long
@ @ immed_u2 U2 0..3
@ @ immed_u4 U4 0..15
@ @ immed_s5 I5 -16..15
@ @ immed_u5 U5 0..31
@ @ int BETYPE_I4 int
@ @ long BETYPE_I4 long
@ @ ptr PTR void=*
@ @ v16 BETYPE_V16 vec_type
@ @ void BETYPE_I4 void
# fetype betype [code [spelling]]
@ float_ptr ptr i float=*
@ const_float_ptr ptr i float=*
@ const_volatile_float_ptr ptr i float=*
@ int int i
@ int_ptr ptr i int=*
@ long_ptr ptr i long=*
@ const_int_ptr ptr i int=*
@ const_long_ptr ptr i long=*
@ const_volatile_int_ptr ptr i int=*
@ const_volatile_long_ptr ptr i long=*
@ immed_s5 immed_s5 A
@ immed_u5 immed_u5 B
@ immed_u4 immed_u4 C
@ immed_u2 immed_u2 D
@ cc24f int j=24=f
@ cc24fd int j=24=f=d
@ cc24fr int j=24=f=r
@ cc24t int j=24=t
@ cc24td int j=24=t=d
@ cc24tr int j=24=t=r
@ cc26f int j=26=f
@ cc26fd int j=26=f=d
@ cc26fr int j=26=f=r
@ cc26t int j=26=t
@ cc26td int j=26=t=d
@ cc26tr int j=26=t=r
@ short_ptr ptr i short=*
@ signed_char_ptr ptr i signed=char=*
@ unsigned_char_ptr ptr i unsigned=char=*
@ unsigned_short_ptr ptr i unsigned=short=*
@ unsigned_int_ptr ptr i unsigned=int=*
@ unsigned_long_ptr ptr i unsigned=long=*
@ const_short_ptr ptr i short=*
@ const_signed_char_ptr ptr i signed=char=*
@ const_unsigned_char_ptr ptr i unsigned=char=*
@ const_unsigned_short_ptr ptr i unsigned=short=*
@ const_unsigned_int_ptr ptr i unsigned=int=*
@ const_unsigned_long_ptr ptr i unsigned=long=*
@ const_volatile_short_ptr ptr i short=*
@ const_volatile_signed_char_ptr ptr i signed=char=*
@ const_volatile_unsigned_char_ptr ptr i unsigned=char=*
@ const_volatile_unsigned_short_ptr ptr i unsigned=short=*
@ const_volatile_unsigned_int_ptr ptr i unsigned=int=*
@ const_volatile_unsigned_long_ptr ptr i unsigned=long=*
@ vec_b16 v16 x vec_b16
@ vec_b16_load_op v16 xl vec_b16
@ vec_b16_ptr ptr i vec_b16=*
@ const_vec_b16_ptr ptr i vec_b16=*
@ vec_b32 v16 x vec_b32
@ vec_b32_load_op v16 xl vec_b32
@ vec_b32_ptr ptr i vec_b32=*
@ const_vec_b32_ptr ptr i vec_b32=*
@ vec_b8 v16 x vec_b8
@ vec_b8_load_op v16 xl vec_b8
@ vec_b8_ptr ptr i vec_b8=*
@ const_vec_b8_ptr ptr i vec_b8=*
@ vec_f32 v16 x vec_f32
@ vec_f32_load_op v16 xl vec_f32
@ vec_f32_ptr ptr i vec_f32=*
@ const_vec_f32_ptr ptr i vec_f32=*
@ vec_p16 v16 x vec_p16
@ vec_p16_load_op v16 xl vec_p16
@ vec_p16_ptr ptr i vec_p16=*
@ const_vec_p16_ptr ptr i vec_p16=*
@ vec_s16 v16 x vec_s16
@ vec_s16_load_op v16 xl vec_s16
@ vec_s16_ptr ptr i vec_s16=*
@ const_vec_s16_ptr ptr i vec_s16=*
@ vec_s32 v16 x vec_s32
@ vec_s32_load_op v16 xl vec_s32
@ vec_s32_ptr ptr i vec_s32=*
@ const_vec_s32_ptr ptr i vec_s32=*
@ vec_s8 v16 x vec_s8
@ vec_s8_load_op v16 xl vec_s8
@ vec_s8_ptr ptr i vec_s8=*
@ const_vec_s8_ptr ptr i vec_s8=*
@ vec_u16 v16 x vec_u16
@ vec_u16_load_op v16 xl vec_u16
@ vec_u16_ptr ptr i vec_u16=*
@ const_vec_u16_ptr ptr i vec_u16=*
@ vec_u32 v16 x vec_u32
@ vec_u32_load_op v16 xl vec_u32
@ vec_u32_ptr ptr i vec_u32=*
@ const_vec_u32_ptr ptr i vec_u32=*
@ vec_u8 v16 x vec_u8
@ vec_u8_load_op v16 xl vec_u8
@ vec_u8_ptr ptr i vec_u8=*
@ const_vec_u8_ptr ptr i vec_u8=*
@ void_store_op void s
@ volatile_void void v
@ volatile_void_load_op void vl
@ volatile_void_store_op void vs
@ volatile_vec_u16 v16 vx vec_u16
@ char_ptr ptr i char=*
@ const_char_ptr ptr i char=*
# @ @ instruction type
@ @ @ MOP_mfvscr fxu
@ @ @ MOP_mtvscr fxu
@ @ @ MOP_dss load
@ @ @ MOP_dssall load
@ @ @ MOP_dst load
@ @ @ MOP_dstst load
@ @ @ MOP_dststt load
@ @ @ MOP_dstt load
@ @ @ MOP_lvebx load
@ @ @ MOP_lvehx load
@ @ @ MOP_lvewx load
@ @ @ MOP_lvsl load
@ @ @ MOP_lvsr load
@ @ @ MOP_lvx load
@ @ @ MOP_lvxl load
@ @ @ MOP_stvebx store
@ @ @ MOP_stvehx store
@ @ @ MOP_stvewx store
@ @ @ MOP_stvx store
@ @ @ MOP_stvxl store
@ @ @ MOP_vaddcuw simple
@ @ @ MOP_vaddfp fp
@ @ @ MOP_vaddsbs simple
@ @ @ MOP_vaddshs simple
@ @ @ MOP_vaddsws simple
@ @ @ MOP_vaddubm simple
@ @ @ MOP_vaddubs simple
@ @ @ MOP_vadduhm simple
@ @ @ MOP_vadduhs simple
@ @ @ MOP_vadduwm simple
@ @ @ MOP_vadduws simple
@ @ @ MOP_vand simple
@ @ @ MOP_vandc simple
@ @ @ MOP_vavgsb simple
@ @ @ MOP_vavgsh simple
@ @ @ MOP_vavgsw simple
@ @ @ MOP_vavgub simple
@ @ @ MOP_vavguh simple
@ @ @ MOP_vavguw simple
@ @ @ MOP_vcfsx fp
@ @ @ MOP_vcfux fp
@ @ @ MOP_vcmpbfp simple
@ @ @ MOP_vcmpbfpD simple
@ @ @ MOP_vcmpeqfp simple
@ @ @ MOP_vcmpeqfpD simple
@ @ @ MOP_vcmpequb simple
@ @ @ MOP_vcmpequbD simple
@ @ @ MOP_vcmpequh simple
@ @ @ MOP_vcmpequhD simple
@ @ @ MOP_vcmpequw simple
@ @ @ MOP_vcmpequwD simple
@ @ @ MOP_vcmpgefp simple
@ @ @ MOP_vcmpgefpD simple
@ @ @ MOP_vcmpgtfp simple
@ @ @ MOP_vcmpgtfpD simple
@ @ @ MOP_vcmpgtsb simple
@ @ @ MOP_vcmpgtsbD simple
@ @ @ MOP_vcmpgtsh simple
@ @ @ MOP_vcmpgtshD simple
@ @ @ MOP_vcmpgtsw simple
@ @ @ MOP_vcmpgtswD simple
@ @ @ MOP_vcmpgtub simple
@ @ @ MOP_vcmpgtubD simple
@ @ @ MOP_vcmpgtuh simple
@ @ @ MOP_vcmpgtuhD simple
@ @ @ MOP_vcmpgtuw simple
@ @ @ MOP_vcmpgtuwD simple
@ @ @ MOP_vctsxs fp
@ @ @ MOP_vctuxs fp
@ @ @ MOP_vexptefp fp
@ @ @ MOP_vlogefp fp
@ @ @ MOP_vmaddfp fp
@ @ @ MOP_vmaxfp simple
@ @ @ MOP_vmaxsb simple
@ @ @ MOP_vmaxsh simple
@ @ @ MOP_vmaxsw simple
@ @ @ MOP_vmaxub simple
@ @ @ MOP_vmaxuh simple
@ @ @ MOP_vmaxuw simple
@ @ @ MOP_vmhaddshs complex
@ @ @ MOP_vmhraddshs complex
@ @ @ MOP_vminfp simple
@ @ @ MOP_vminsb simple
@ @ @ MOP_vminsh simple
@ @ @ MOP_vminsw simple
@ @ @ MOP_vminub simple
@ @ @ MOP_vminuh simple
@ @ @ MOP_vminuw simple
@ @ @ MOP_vmladduhm complex
@ @ @ MOP_vmrghb perm
@ @ @ MOP_vmrghh perm
@ @ @ MOP_vmrghw perm
@ @ @ MOP_vmrglb perm
@ @ @ MOP_vmrglh perm
@ @ @ MOP_vmrglw perm
@ @ @ MOP_vmsummbm complex
@ @ @ MOP_vmsumshm complex
@ @ @ MOP_vmsumshs complex
@ @ @ MOP_vmsumubm complex
@ @ @ MOP_vmsumuhm complex
@ @ @ MOP_vmsumuhs complex
@ @ @ MOP_vmulesb complex
@ @ @ MOP_vmulesh complex
@ @ @ MOP_vmuleub complex
@ @ @ MOP_vmuleuh complex
@ @ @ MOP_vmulosb complex
@ @ @ MOP_vmulosh complex
@ @ @ MOP_vmuloub complex
@ @ @ MOP_vmulouh complex
@ @ @ MOP_vnmsubfp fp
@ @ @ MOP_vnor simple
@ @ @ MOP_vor simple
@ @ @ MOP_vperm perm
@ @ @ MOP_vpkpx perm
@ @ @ MOP_vpkshss perm
@ @ @ MOP_vpkshus perm
@ @ @ MOP_vpkswss perm
@ @ @ MOP_vpkswus perm
@ @ @ MOP_vpkuhum perm
@ @ @ MOP_vpkuhus perm
@ @ @ MOP_vpkuwum perm
@ @ @ MOP_vpkuwus perm
@ @ @ MOP_vrefp fp
@ @ @ MOP_vrfim fp
@ @ @ MOP_vrfin fp
@ @ @ MOP_vrfip fp
@ @ @ MOP_vrfiz fp
@ @ @ MOP_vrlb simple
@ @ @ MOP_vrlh simple
@ @ @ MOP_vrlw simple
@ @ @ MOP_vrsqrtefp fp
@ @ @ MOP_vsel simple
@ @ @ MOP_vsl simple
@ @ @ MOP_vslb simple
@ @ @ MOP_vsldoi perm
@ @ @ MOP_vslh simple
@ @ @ MOP_vslo perm_bug
@ @ @ MOP_vslw simple
@ @ @ MOP_vspltb perm
@ @ @ MOP_vsplth perm
@ @ @ MOP_vspltisb perm
@ @ @ MOP_vspltish perm
@ @ @ MOP_vspltisw perm
@ @ @ MOP_vspltw perm
@ @ @ MOP_vsr simple
@ @ @ MOP_vsrab simple
@ @ @ MOP_vsrah simple
@ @ @ MOP_vsraw simple
@ @ @ MOP_vsrb simple
@ @ @ MOP_vsrh simple
@ @ @ MOP_vsro perm_bug
@ @ @ MOP_vsrw simple
@ @ @ MOP_vsubcuw simple
@ @ @ MOP_vsubfp fp
@ @ @ MOP_vsubsbs simple
@ @ @ MOP_vsubshs simple
@ @ @ MOP_vsubsws simple
@ @ @ MOP_vsububm simple
@ @ @ MOP_vsububs simple
@ @ @ MOP_vsubuhm simple
@ @ @ MOP_vsubuhs simple
@ @ @ MOP_vsubuwm simple
@ @ @ MOP_vsubuws simple
@ @ @ MOP_vsum2sws complex
@ @ @ MOP_vsum4sbs complex
@ @ @ MOP_vsum4shs complex
@ @ @ MOP_vsum4ubs complex
@ @ @ MOP_vsumsws complex
@ @ @ MOP_vupkhpx perm
@ @ @ MOP_vupkhsb perm
@ @ @ MOP_vupkhsh perm
@ @ @ MOP_vupklpx perm
@ @ @ MOP_vupklsb perm
@ @ @ MOP_vupklsh perm
@ @ @ MOP_vxor simple
# The vec_abs and vec_abss operations identify their variants with insn_name.
# Map these into a valid insn code (xfx_perm).
@ @ @ 1 perm
@ @ @ 2 perm
@ @ @ 3 perm
@ @ @ 4 perm
@ @ @ 5 perm
@ @ @ 6 perm
@ @ @ 7 perm