]> git.proxmox.com Git - rustc.git/blob - src/etc/platform-intrinsics/x86/sse2.json
Imported Upstream version 1.4.0+dfsg1
[rustc.git] / src / etc / platform-intrinsics / x86 / sse2.json
1 {
2 "llvm_prefix": "llvm.x86.sse2.",
3 "intrinsics": [
4 {
5 "intrinsic": "_adds_{0.data_type}",
6 "width": [128],
7 "llvm": "padd{0.kind_short}s.{0.data_type_short}",
8 "ret": "i(8-16)",
9 "args": ["0", "0"]
10 },
11 {
12 "intrinsic": "_avg_{0.data_type}",
13 "width": [128],
14 "llvm": "pavg.{0.data_type_short}",
15 "ret": "u(8-16)",
16 "args": ["0", "0"]
17 },
18 {
19 "intrinsic": "_lfence",
20 "width": [128],
21 "llvm": "lfence",
22 "ret": "V",
23 "args": []
24 },
25 {
26 "intrinsic": "_madd_epi16",
27 "width": [128],
28 "llvm": "pmadd.wd",
29 "ret": "s32",
30 "args": ["s16", "s16"]
31 },
32 {
33 "intrinsic": "_maskmoveu_si128",
34 "width": [128],
35 "llvm": "maskmov.dqu",
36 "ret": "V",
37 "args": ["u8", "u8", "U8Pm"]
38 },
39 {
40 "intrinsic": "_max_{0.data_type}",
41 "width": [128],
42 "llvm": "pmax{0.kind}.{0.data_type_short}",
43 "ret": ["s16", "u8"],
44 "args": ["0", "0"]
45 },
46 {
47 "intrinsic": "_max_pd",
48 "width": [128],
49 "llvm": "max.pd",
50 "ret": "f64",
51 "args": ["0", "0"]
52 },
53 {
54 "intrinsic": "_mfence",
55 "width": [128],
56 "llvm": "fence",
57 "ret": "V",
58 "args": []
59 },
60 {
61 "intrinsic": "_min_{0.data_type}",
62 "width": [128],
63 "llvm": "pmin{0.kind}.{0.data_type_short}",
64 "ret": ["s16", "u8"],
65 "args": ["0", "0"]
66 },
67 {
68 "intrinsic": "_min_pd",
69 "width": [128],
70 "llvm": "min.pd",
71 "ret": "f64",
72 "args": ["0", "0"]
73 },
74 {
75 "intrinsic": "_movemask_pd",
76 "width": [128],
77 "llvm": "movmsk.pd",
78 "ret": "S32",
79 "args": ["f64"]
80 },
81 {
82 "intrinsic": "_movemask_epi8",
83 "width": [128],
84 "llvm": "pmovmskb.128",
85 "ret": "S32",
86 "args": ["s8"]
87 },
88 {
89 "intrinsic": "_mul_epu32",
90 "width": [128],
91 "llvm": "pmulu.dq",
92 "ret": "u64",
93 "args": ["0dn", "0dn"]
94 },
95 {
96 "intrinsic": "_mulhi_{0.data_type}",
97 "width": [128],
98 "llvm": "pmulh{0.kind_short}.w",
99 "ret": "i16",
100 "args": ["0", "0"]
101 },
102 {
103 "intrinsic": "_packs_{1.data_type}",
104 "width": [128],
105 "llvm": "packss{1.data_type_short}{0.data_type_short}.128",
106 "ret": "s(8-16)",
107 "args": ["0hw", "0hw"]
108 },
109 {
110 "intrinsic": "_packus_epi16",
111 "width": [128],
112 "llvm": "packuswb.128",
113 "ret": "u8",
114 "args": ["s16", "s16"]
115 },
116 {
117 "intrinsic": "_sad_epu8",
118 "width": [128],
119 "llvm": "psad.bw",
120 "ret": "u64",
121 "args": ["u8", "u8"]
122 },
123 {
124 "intrinsic": "_sfence",
125 "width": [128],
126 "llvm": "sfence",
127 "ret": "V",
128 "args": []
129 },
130 {
131 "intrinsic": "_sqrt_pd",
132 "width": [128],
133 "llvm": "!llvm.sqrt.v2f64",
134 "ret": "f64",
135 "args": ["0"]
136 },
137 {
138 "intrinsic": "_storeu_pd",
139 "width": [128],
140 "llvm": "storeu.pd",
141 "ret": "V",
142 "args": ["F64Pm/U8", "f64"]
143 },
144 {
145 "intrinsic": "_storeu_si128",
146 "width": [128],
147 "llvm": "storeu.dq",
148 "ret": "V",
149 "args": ["u8Pm/U8", "u8"]
150 },
151 {
152 "intrinsic": "_subs_{0.data_type}",
153 "width": [128],
154 "llvm": "psub{0.kind_short}s.{0.data_type_short}",
155 "ret": "i(8-16)",
156 "args": ["0", "0"]
157 }
158 ]
159 }