[Hexagon] Replacing XTYPE/SHIFT intrinsic patternss. Adding tests and missing instru...
[oota-llvm.git] / lib / Target / Hexagon / HexagonIntrinsicsV5.td
1 //===- HexagonIntrinsicsV5.td - V4 Instruction intrinsics --*- tablegen -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 def : T_PI_pat <S2_asr_i_p_rnd, int_hexagon_S2_asr_i_p_rnd>;
11 def : T_PI_pat <S2_asr_i_p_rnd_goodsyntax,
12                 int_hexagon_S2_asr_i_p_rnd_goodsyntax>;
13
14 class sf_SInst_sf<string opc, Intrinsic IntID>
15   : SInst<(outs IntRegs:$dst), (ins IntRegs:$src1),
16              !strconcat("$dst = ", !strconcat(opc , "($src1)")),
17              [(set IntRegs:$dst, (IntID IntRegs:$src1))]>;
18
19 class si_SInst_sf<string opc, Intrinsic IntID>
20   : SInst<(outs IntRegs:$dst), (ins IntRegs:$src1),
21              !strconcat("$dst = ", !strconcat(opc , "($src1)")),
22              [(set IntRegs:$dst, (IntID IntRegs:$src1))]>;
23
24 class sf_SInst_si<string opc, Intrinsic IntID>
25   : SInst<(outs IntRegs:$dst), (ins IntRegs:$src1),
26              !strconcat("$dst = ", !strconcat(opc , "($src1)")),
27              [(set IntRegs:$dst, (IntID IntRegs:$src1))]>;
28
29 class sf_SInst_di<string opc, Intrinsic IntID>
30   : SInst<(outs IntRegs:$dst), (ins DoubleRegs:$src1),
31              !strconcat("$dst = ", !strconcat(opc , "($src1)")),
32              [(set IntRegs:$dst, (IntID DoubleRegs:$src1))]>;
33
34 class sf_SInst_df<string opc, Intrinsic IntID>
35   : SInst<(outs IntRegs:$dst), (ins DoubleRegs:$src1),
36              !strconcat("$dst = ", !strconcat(opc , "($src1)")),
37              [(set IntRegs:$dst, (IntID DoubleRegs:$src1))]>;
38
39 class si_SInst_df<string opc, Intrinsic IntID>
40   : SInst<(outs IntRegs:$dst), (ins DoubleRegs:$src1),
41              !strconcat("$dst = ", !strconcat(opc , "($src1)")),
42              [(set IntRegs:$dst, (IntID DoubleRegs:$src1))]>;
43
44 class df_SInst_sf<string opc, Intrinsic IntID>
45   : SInst<(outs DoubleRegs:$dst), (ins IntRegs:$src1),
46              !strconcat("$dst = ", !strconcat(opc , "($src1)")),
47              [(set DoubleRegs:$dst, (IntID IntRegs:$src1))]>;
48
49 class di_SInst_sf<string opc, Intrinsic IntID>
50   : SInst<(outs DoubleRegs:$dst), (ins IntRegs:$src1),
51              !strconcat("$dst = ", !strconcat(opc , "($src1)")),
52              [(set DoubleRegs:$dst, (IntID IntRegs:$src1))]>;
53
54 class df_SInst_si<string opc, Intrinsic IntID>
55   : SInst<(outs DoubleRegs:$dst), (ins IntRegs:$src1),
56              !strconcat("$dst = ", !strconcat(opc , "($src1)")),
57              [(set DoubleRegs:$dst, (IntID IntRegs:$src1))]>;
58
59 class df_SInst_df<string opc, Intrinsic IntID>
60   : SInst<(outs DoubleRegs:$dst), (ins DoubleRegs:$src1),
61              !strconcat("$dst = ", !strconcat(opc , "($src1)")),
62              [(set DoubleRegs:$dst, (IntID DoubleRegs:$src1))]>;
63
64 class di_SInst_df<string opc, Intrinsic IntID>
65   : SInst<(outs DoubleRegs:$dst), (ins DoubleRegs:$src1),
66              !strconcat("$dst = ", !strconcat(opc , "($src1)")),
67              [(set DoubleRegs:$dst, (IntID DoubleRegs:$src1))]>;
68
69
70 class df_SInst_di<string opc, Intrinsic IntID>
71   : SInst<(outs DoubleRegs:$dst), (ins DoubleRegs:$src1),
72              !strconcat("$dst = ", !strconcat(opc , "($src1)")),
73              [(set DoubleRegs:$dst, (IntID DoubleRegs:$src1))]>;
74
75 class sf_MInst_sfsf<string opc, Intrinsic IntID>
76   : MInst<(outs IntRegs:$dst), (ins IntRegs:$src1, IntRegs:$src2),
77              !strconcat("$dst = ", !strconcat(opc , "($src1, $src2)")),
78              [(set IntRegs:$dst, (IntID IntRegs:$src1, IntRegs:$src2))]>;
79
80 class df_MInst_dfdf<string opc, Intrinsic IntID>
81   : MInst<(outs DoubleRegs:$dst), (ins DoubleRegs:$src1, DoubleRegs:$src2),
82            !strconcat("$dst = ", !strconcat(opc , "($src1, $src2)")),
83            [(set DoubleRegs:$dst, (IntID DoubleRegs:$src1, DoubleRegs:$src2))]>;
84
85 class qi_ALU64_dfdf<string opc, Intrinsic IntID>
86   : ALU64_rr<(outs PredRegs:$dst), (ins DoubleRegs:$src1, DoubleRegs:$src2),
87            !strconcat("$dst = ", !strconcat(opc , "($src1, $src2)")),
88            [(set PredRegs:$dst, (IntID DoubleRegs:$src1, DoubleRegs:$src2))]>;
89
90 class qi_ALU64_dfu5<string opc, Intrinsic IntID>
91   : ALU64_ri<(outs PredRegs:$dst), (ins DoubleRegs:$src1, u5Imm:$src2),
92            !strconcat("$dst = ", !strconcat(opc , "($src1, #$src2)")),
93            [(set PredRegs:$dst, (IntID DoubleRegs:$src1, imm:$src2))]>;
94
95
96 class sf_MInst_sfsfsf_acc<string opc, Intrinsic IntID>
97   : MInst_acc<(outs IntRegs:$dst), (ins IntRegs:$src1, IntRegs:$src2,
98                                         IntRegs:$dst2),
99                !strconcat("$dst += ", !strconcat(opc ,
100                                                  "($src1, $src2)")),
101                [(set IntRegs:$dst, (IntID IntRegs:$src1,
102                                           IntRegs:$src2, IntRegs:$dst2))],
103                "$dst2 = $dst">;
104
105 class sf_MInst_sfsfsf_nac<string opc, Intrinsic IntID>
106   : MInst_acc<(outs IntRegs:$dst), (ins IntRegs:$src1, IntRegs:$src2,
107                                         IntRegs:$dst2),
108                !strconcat("$dst -= ", !strconcat(opc ,
109                                                  "($src1, $src2)")),
110                [(set IntRegs:$dst, (IntID IntRegs:$src1,
111                                           IntRegs:$src2, IntRegs:$dst2))],
112                "$dst2 = $dst">;
113
114
115 class sf_MInst_sfsfsfsi_sc<string opc, Intrinsic IntID>
116   : MInst_acc<(outs IntRegs:$dst), (ins IntRegs:$dst2, IntRegs:$src1,
117                                         IntRegs:$src2, IntRegs:$src3),
118                !strconcat("$dst += ", !strconcat(opc ,
119                                                  "($src1, $src2, $src3):scale")),
120                [(set IntRegs:$dst, (IntID IntRegs:$dst2, IntRegs:$src1,
121                                         IntRegs:$src2, IntRegs:$src3))],
122                "$dst2 = $dst">;
123
124 class sf_MInst_sfsfsf_acc_lib<string opc, Intrinsic IntID>
125   : MInst_acc<(outs IntRegs:$dst), (ins IntRegs:$src1, IntRegs:$src2,
126                                         IntRegs:$dst2),
127                !strconcat("$dst += ", !strconcat(opc ,
128                                                  "($src1, $src2):lib")),
129                [(set IntRegs:$dst, (IntID IntRegs:$src1,
130                                           IntRegs:$src2, IntRegs:$dst2))],
131                "$dst2 = $dst">;
132
133 class sf_MInst_sfsfsf_nac_lib<string opc, Intrinsic IntID>
134   : MInst_acc<(outs IntRegs:$dst), (ins IntRegs:$src1, IntRegs:$src2,
135                                         IntRegs:$dst2),
136                !strconcat("$dst -= ", !strconcat(opc ,
137                                                  "($src1, $src2):lib")),
138                [(set IntRegs:$dst, (IntID IntRegs:$src1,
139                                           IntRegs:$src2, IntRegs:$dst2))],
140                "$dst2 = $dst">;
141
142 class df_MInst_dfdfdf_acc<string opc, Intrinsic IntID>
143   : MInst_acc<(outs DoubleRegs:$dst), (ins DoubleRegs:$src1, DoubleRegs:$src2,
144                                         DoubleRegs:$dst2),
145                !strconcat("$dst += ", !strconcat(opc ,
146                                                  "($src1, $src2)")),
147                [(set DoubleRegs:$dst, (IntID DoubleRegs:$src1,
148                                           DoubleRegs:$src2, DoubleRegs:$dst2))],
149                "$dst2 = $dst">;
150
151 class df_MInst_dfdfdf_nac<string opc, Intrinsic IntID>
152   : MInst_acc<(outs DoubleRegs:$dst), (ins DoubleRegs:$src1, DoubleRegs:$src2,
153                                         DoubleRegs:$dst2),
154                !strconcat("$dst -= ", !strconcat(opc ,
155                                                  "($src1, $src2)")),
156                [(set DoubleRegs:$dst, (IntID DoubleRegs:$src1,
157                                           DoubleRegs:$src2, DoubleRegs:$dst2))],
158                "$dst2 = $dst">;
159
160
161 class df_MInst_dfdfdfsi_sc<string opc, Intrinsic IntID>
162   : MInst_acc<(outs DoubleRegs:$dst), (ins DoubleRegs:$dst2, DoubleRegs:$src1,
163                                         DoubleRegs:$src2, IntRegs:$src3),
164                !strconcat("$dst += ", !strconcat(opc ,
165                                                  "($src1, $src2, $src3):scale")),
166                [(set DoubleRegs:$dst, (IntID DoubleRegs:$dst2, DoubleRegs:$src1,
167                                         DoubleRegs:$src2, IntRegs:$src3))],
168                "$dst2 = $dst">;
169
170 class df_MInst_dfdfdf_acc_lib<string opc, Intrinsic IntID>
171   : MInst_acc<(outs DoubleRegs:$dst), (ins DoubleRegs:$src1, DoubleRegs:$src2,
172                                         DoubleRegs:$dst2),
173                !strconcat("$dst += ", !strconcat(opc ,
174                                                  "($src1, $src2):lib")),
175                [(set DoubleRegs:$dst, (IntID DoubleRegs:$src1,
176                                           DoubleRegs:$src2, DoubleRegs:$dst2))],
177                "$dst2 = $dst">;
178
179 class df_MInst_dfdfdf_nac_lib<string opc, Intrinsic IntID>
180   : MInst_acc<(outs DoubleRegs:$dst), (ins DoubleRegs:$src1, DoubleRegs:$src2,
181                                         DoubleRegs:$dst2),
182                !strconcat("$dst -= ", !strconcat(opc ,
183                                                  "($src1, $src2):lib")),
184                [(set DoubleRegs:$dst, (IntID DoubleRegs:$src1,
185                                           DoubleRegs:$src2, DoubleRegs:$dst2))],
186                "$dst2 = $dst">;
187
188 class qi_SInst_sfsf<string opc, Intrinsic IntID>
189   : SInst<(outs PredRegs:$dst), (ins IntRegs:$src1, IntRegs:$src2),
190              !strconcat("$dst = ", !strconcat(opc , "($src1, $src2)")),
191              [(set PredRegs:$dst, (IntID IntRegs:$src1, IntRegs:$src2))]>;
192
193 class qi_SInst_sfu5<string opc, Intrinsic IntID>
194   : MInst<(outs PredRegs:$dst), (ins IntRegs:$src1, u5Imm:$src2),
195              !strconcat("$dst = ", !strconcat(opc , "($src1, #$src2)")),
196              [(set PredRegs:$dst, (IntID IntRegs:$src1, imm:$src2))]>;
197
198 class sf_ALU64_u10_pos<string opc, Intrinsic IntID>
199   : ALU64_ri<(outs IntRegs:$dst), (ins u10Imm:$src1),
200              !strconcat("$dst = ", !strconcat(opc , "#$src1):pos")),
201              [(set IntRegs:$dst, (IntID imm:$src1))]>;
202
203 class sf_ALU64_u10_neg<string opc, Intrinsic IntID>
204   : ALU64_ri<(outs IntRegs:$dst), (ins u10Imm:$src1),
205              !strconcat("$dst = ", !strconcat(opc , "#$src1):neg")),
206              [(set IntRegs:$dst, (IntID imm:$src1))]>;
207
208 class df_ALU64_u10_pos<string opc, Intrinsic IntID>
209   : ALU64_ri<(outs DoubleRegs:$dst), (ins u10Imm:$src1),
210              !strconcat("$dst = ", !strconcat(opc , "#$src1):pos")),
211              [(set DoubleRegs:$dst, (IntID imm:$src1))]>;
212
213 class df_ALU64_u10_neg<string opc, Intrinsic IntID>
214   : ALU64_ri<(outs DoubleRegs:$dst), (ins u10Imm:$src1),
215              !strconcat("$dst = ", !strconcat(opc , "#$src1):neg")),
216              [(set DoubleRegs:$dst, (IntID imm:$src1))]>;
217
218 class di_MInst_diu6<string opc, Intrinsic IntID>
219   : MInst<(outs DoubleRegs:$dst), (ins DoubleRegs:$src1, u6Imm:$src2),
220           !strconcat("$dst = ", !strconcat(opc , "($src1, #$src2)")),
221           [(set DoubleRegs:$dst, (IntID DoubleRegs:$src1, imm:$src2))]>;
222
223 class di_MInst_diu4_rnd<string opc, Intrinsic IntID>
224   : MInst<(outs DoubleRegs:$dst), (ins DoubleRegs:$src1, u4Imm:$src2),
225           !strconcat("$dst = ", !strconcat(opc , "($src1, #$src2):rnd")),
226           [(set DoubleRegs:$dst, (IntID DoubleRegs:$src1, imm:$src2))]>;
227
228 class si_MInst_diu4_rnd_sat<string opc, Intrinsic IntID>
229   : MInst<(outs IntRegs:$dst), (ins DoubleRegs:$src1, u4Imm:$src2),
230           !strconcat("$dst = ", !strconcat(opc , "($src1, #$src2):rnd:sat")),
231           [(set IntRegs:$dst, (IntID DoubleRegs:$src1, imm:$src2))]>;
232
233 class si_SInst_diu4_sat<string opc, Intrinsic IntID>
234   : SInst<(outs IntRegs:$dst), (ins DoubleRegs:$src1, u4Imm:$src2),
235           !strconcat("$dst = ", !strconcat(opc , "($src1, #$src2):sat")),
236           [(set IntRegs:$dst, (IntID DoubleRegs:$src1, imm:$src2))]>;
237
238
239 def HEXAGON_C4_fastcorner9:
240     qi_SInst_qiqi       <"fastcorner9", int_hexagon_C4_fastcorner9>;
241 def HEXAGON_C4_fastcorner9_not:
242     qi_SInst_qiqi <"!fastcorner9", int_hexagon_C4_fastcorner9_not>;
243 def HEXAGON_M5_vrmpybuu:
244     di_MInst_didi <"vrmpybu", int_hexagon_M5_vrmpybuu>;
245 def HEXAGON_M5_vrmacbuu:
246     di_MInst_dididi_acc <"vrmpybu", int_hexagon_M5_vrmacbuu>;
247 def HEXAGON_M5_vrmpybsu:
248     di_MInst_didi <"vrmpybsu", int_hexagon_M5_vrmpybsu>;
249 def HEXAGON_M5_vrmacbsu:
250     di_MInst_dididi_acc <"vrmpybsu", int_hexagon_M5_vrmacbsu>;
251 def HEXAGON_M5_vmpybuu:
252     di_MInst_sisi <"vmpybu", int_hexagon_M5_vmpybuu>;
253 def HEXAGON_M5_vmpybsu:
254     di_MInst_sisi <"vmpybsu", int_hexagon_M5_vmpybsu>;
255 def HEXAGON_M5_vmacbuu:
256     di_MInst_disisi_acc <"vmpybu", int_hexagon_M5_vmacbuu>;
257 def HEXAGON_M5_vmacbsu:
258     di_MInst_disisi_acc <"vmpybsu", int_hexagon_M5_vmacbsu>;
259 def HEXAGON_M5_vdmpybsu:
260     di_MInst_didi_sat <"vdmpybsu", int_hexagon_M5_vdmpybsu>;
261 def HEXAGON_M5_vdmacbsu:
262     di_MInst_dididi_acc_sat <"vdmpybsu", int_hexagon_M5_vdmacbsu>;
263 def HEXAGON_A5_vaddhubs:
264     si_SInst_didi_sat <"vaddhub", int_hexagon_A5_vaddhubs>;
265 def HEXAGON_S5_popcountp:
266     si_SInst_di <"popcount", int_hexagon_S5_popcountp>;
267 def HEXAGON_S5_asrhub_rnd_sat_goodsyntax:
268     si_MInst_diu4_rnd_sat <"vasrhub", int_hexagon_S5_asrhub_rnd_sat_goodsyntax>;
269 def HEXAGON_S5_asrhub_sat:
270     si_SInst_diu4_sat <"vasrhub", int_hexagon_S5_asrhub_sat>;
271 def HEXAGON_S5_vasrhrnd_goodsyntax:
272     di_MInst_diu4_rnd <"vasrh", int_hexagon_S5_vasrhrnd_goodsyntax>;
273 def HEXAGON_S2_asr_i_p_rnd:
274     di_SInst_diu6 <"asr", int_hexagon_S2_asr_i_p_rnd>;
275 def HEXAGON_S2_asr_i_p_rnd_goodsyntax:
276     di_MInst_diu6 <"asrrnd", int_hexagon_S2_asr_i_p_rnd_goodsyntax>;
277 def HEXAGON_F2_sfadd:
278     sf_MInst_sfsf <"sfadd", int_hexagon_F2_sfadd>;
279 def HEXAGON_F2_sfsub:
280     sf_MInst_sfsf <"sfsub", int_hexagon_F2_sfsub>;
281 def HEXAGON_F2_sfmpy:
282     sf_MInst_sfsf <"sfmpy", int_hexagon_F2_sfmpy>;
283 def HEXAGON_F2_sffma:
284     sf_MInst_sfsfsf_acc <"sfmpy", int_hexagon_F2_sffma>;
285 def HEXAGON_F2_sffma_sc:
286     sf_MInst_sfsfsfsi_sc <"sfmpy", int_hexagon_F2_sffma_sc>;
287 def HEXAGON_F2_sffms:
288     sf_MInst_sfsfsf_nac <"sfmpy", int_hexagon_F2_sffms>;
289 def HEXAGON_F2_sffma_lib:
290     sf_MInst_sfsfsf_acc_lib <"sfmpy", int_hexagon_F2_sffma_lib>;
291 def HEXAGON_F2_sffms_lib:
292     sf_MInst_sfsfsf_nac_lib <"sfmpy", int_hexagon_F2_sffms_lib>;
293 def HEXAGON_F2_sfcmpeq:
294     qi_SInst_sfsf <"sfcmp.eq", int_hexagon_F2_sfcmpeq>;
295 def HEXAGON_F2_sfcmpgt:
296     qi_SInst_sfsf <"sfcmp.gt", int_hexagon_F2_sfcmpgt>;
297 def HEXAGON_F2_sfcmpge:
298     qi_SInst_sfsf <"sfcmp.ge", int_hexagon_F2_sfcmpge>;
299 def HEXAGON_F2_sfcmpuo:
300     qi_SInst_sfsf <"sfcmp.uo", int_hexagon_F2_sfcmpuo>;
301 def HEXAGON_F2_sfmax:
302     sf_MInst_sfsf <"sfmax", int_hexagon_F2_sfmax>;
303 def HEXAGON_F2_sfmin:
304     sf_MInst_sfsf <"sfmin", int_hexagon_F2_sfmin>;
305 def HEXAGON_F2_sfclass:
306     qi_SInst_sfu5 <"sfclass", int_hexagon_F2_sfclass>;
307 def HEXAGON_F2_sfimm_p:
308     sf_ALU64_u10_pos <"sfmake", int_hexagon_F2_sfimm_p>;
309 def HEXAGON_F2_sfimm_n:
310     sf_ALU64_u10_neg <"sfmake", int_hexagon_F2_sfimm_n>;
311 def HEXAGON_F2_sffixupn:
312     sf_MInst_sfsf <"sffixupn", int_hexagon_F2_sffixupn>;
313 def HEXAGON_F2_sffixupd:
314     sf_MInst_sfsf <"sffixupd", int_hexagon_F2_sffixupd>;
315 def HEXAGON_F2_sffixupr:
316     sf_SInst_sf <"sffixupr", int_hexagon_F2_sffixupr>;
317 def HEXAGON_F2_dfadd:
318     df_MInst_dfdf <"dfadd", int_hexagon_F2_dfadd>;
319 def HEXAGON_F2_dfsub:
320     df_MInst_dfdf <"dfsub", int_hexagon_F2_dfsub>;
321 def HEXAGON_F2_dfmpy:
322     df_MInst_dfdf <"dfmpy", int_hexagon_F2_dfmpy>;
323 def HEXAGON_F2_dffma:
324     df_MInst_dfdfdf_acc <"dfmpy", int_hexagon_F2_dffma>;
325 def HEXAGON_F2_dffms:
326     df_MInst_dfdfdf_nac <"dfmpy", int_hexagon_F2_dffms>;
327 def HEXAGON_F2_dffma_lib:
328     df_MInst_dfdfdf_acc_lib <"dfmpy", int_hexagon_F2_dffma_lib>;
329 def HEXAGON_F2_dffms_lib:
330     df_MInst_dfdfdf_nac_lib <"dfmpy", int_hexagon_F2_dffms_lib>;
331 def HEXAGON_F2_dffma_sc:
332     df_MInst_dfdfdfsi_sc <"dfmpy", int_hexagon_F2_dffma_sc>;
333 def HEXAGON_F2_dfmax:
334     df_MInst_dfdf <"dfmax", int_hexagon_F2_dfmax>;
335 def HEXAGON_F2_dfmin:
336     df_MInst_dfdf <"dfmin", int_hexagon_F2_dfmin>;
337 def HEXAGON_F2_dfcmpeq:
338     qi_ALU64_dfdf <"dfcmp.eq", int_hexagon_F2_dfcmpeq>;
339 def HEXAGON_F2_dfcmpgt:
340     qi_ALU64_dfdf <"dfcmp.gt", int_hexagon_F2_dfcmpgt>;
341 def HEXAGON_F2_dfcmpge:
342     qi_ALU64_dfdf <"dfcmp.ge", int_hexagon_F2_dfcmpge>;
343 def HEXAGON_F2_dfcmpuo:
344     qi_ALU64_dfdf <"dfcmp.uo", int_hexagon_F2_dfcmpuo>;
345 def HEXAGON_F2_dfclass:
346     qi_ALU64_dfu5 <"dfclass", int_hexagon_F2_dfclass>;
347 def HEXAGON_F2_dfimm_p:
348     df_ALU64_u10_pos <"dfmake", int_hexagon_F2_dfimm_p>;
349 def HEXAGON_F2_dfimm_n:
350     df_ALU64_u10_neg <"dfmake", int_hexagon_F2_dfimm_n>;
351 def HEXAGON_F2_dffixupn:
352     df_MInst_dfdf <"dffixupn", int_hexagon_F2_dffixupn>;
353 def HEXAGON_F2_dffixupd:
354     df_MInst_dfdf <"dffixupd", int_hexagon_F2_dffixupd>;
355 def HEXAGON_F2_dffixupr:
356     df_SInst_df <"dffixupr", int_hexagon_F2_dffixupr>;
357 def HEXAGON_F2_conv_sf2df:
358     df_SInst_sf <"convert_sf2df", int_hexagon_F2_conv_sf2df>;
359 def HEXAGON_F2_conv_df2sf:
360     sf_SInst_df <"convert_df2sf", int_hexagon_F2_conv_df2sf>;
361 def HEXAGON_F2_conv_uw2sf:
362     sf_SInst_si <"convert_uw2sf", int_hexagon_F2_conv_uw2sf>;
363 def HEXAGON_F2_conv_uw2df:
364     df_SInst_si <"convert_uw2df", int_hexagon_F2_conv_uw2df>;
365 def HEXAGON_F2_conv_w2sf:
366     sf_SInst_si <"convert_w2sf", int_hexagon_F2_conv_w2sf>;
367 def HEXAGON_F2_conv_w2df:
368     df_SInst_si <"convert_w2df", int_hexagon_F2_conv_w2df>;
369 def HEXAGON_F2_conv_ud2sf:
370     sf_SInst_di <"convert_ud2sf", int_hexagon_F2_conv_ud2sf>;
371 def HEXAGON_F2_conv_ud2df:
372     df_SInst_di <"convert_ud2df", int_hexagon_F2_conv_ud2df>;
373 def HEXAGON_F2_conv_d2sf:
374     sf_SInst_di <"convert_d2sf", int_hexagon_F2_conv_d2sf>;
375 def HEXAGON_F2_conv_d2df:
376     df_SInst_di <"convert_d2df", int_hexagon_F2_conv_d2df>;
377 def HEXAGON_F2_conv_sf2uw:
378     si_SInst_sf <"convert_sf2uw", int_hexagon_F2_conv_sf2uw>;
379 def HEXAGON_F2_conv_sf2w:
380     si_SInst_sf <"convert_sf2w", int_hexagon_F2_conv_sf2w>;
381 def HEXAGON_F2_conv_sf2ud:
382     di_SInst_sf <"convert_sf2ud", int_hexagon_F2_conv_sf2ud>;
383 def HEXAGON_F2_conv_sf2d:
384     di_SInst_sf <"convert_sf2d", int_hexagon_F2_conv_sf2d>;
385 def HEXAGON_F2_conv_df2uw:
386     si_SInst_df <"convert_df2uw", int_hexagon_F2_conv_df2uw>;
387 def HEXAGON_F2_conv_df2w:
388     si_SInst_df <"convert_df2w", int_hexagon_F2_conv_df2w>;
389 def HEXAGON_F2_conv_df2ud:
390     di_SInst_df <"convert_df2ud", int_hexagon_F2_conv_df2ud>;
391 def HEXAGON_F2_conv_df2d:
392     di_SInst_df <"convert_df2d", int_hexagon_F2_conv_df2d>;
393 def HEXAGON_F2_conv_sf2uw_chop:
394     si_SInst_sf <"convert_sf2uw", int_hexagon_F2_conv_sf2uw_chop>;
395 def HEXAGON_F2_conv_sf2w_chop:
396     si_SInst_sf <"convert_sf2w", int_hexagon_F2_conv_sf2w_chop>;
397 def HEXAGON_F2_conv_sf2ud_chop:
398     di_SInst_sf <"convert_sf2ud", int_hexagon_F2_conv_sf2ud_chop>;
399 def HEXAGON_F2_conv_sf2d_chop:
400     di_SInst_sf <"convert_sf2d", int_hexagon_F2_conv_sf2d_chop>;
401 def HEXAGON_F2_conv_df2uw_chop:
402     si_SInst_df <"convert_df2uw", int_hexagon_F2_conv_df2uw_chop>;
403 def HEXAGON_F2_conv_df2w_chop:
404     si_SInst_df <"convert_df2w", int_hexagon_F2_conv_df2w_chop>;
405 def HEXAGON_F2_conv_df2ud_chop:
406     di_SInst_df <"convert_df2ud", int_hexagon_F2_conv_df2ud_chop>;
407 def HEXAGON_F2_conv_df2d_chop:
408     di_SInst_df <"convert_df2d", int_hexagon_F2_conv_df2d_chop>;