Commit 3c6e259
Allow native vector intrinsics with fixed component types (microsoft#7597)
Several intrinsics that support native vectors return the same element
type regardless of overload. For native vectors, these need to return a
vector of size matching the overload with the fixed element type. This
provides the source generation to allow it and the changes to the
related lowering operations to generate the correct DXIL.
This includes some queries that return boolean information about the
vector components in a boolean vector output and also the unary bit
operations which operate on integers and return integers containing
information about the component bits.
Incidentally moves some intrinsics that have long since not been
scalarized out of the scalarized test. They were updated to expect the
new output, but were in the wrong location and not tested as thoroughly
as their native vector counterparts.
Fixes microsoft#7342
---------
Co-authored-by: Greg Roth <[email protected]>
Co-authored-by: Ashley Coleman <[email protected]>1 parent 86f5bb5 commit 3c6e259
File tree
10 files changed
+345
-74
lines changed- lib
- DXIL
- HLSL
- tools/clang/test/CodeGenDXIL
- hlsl/types
- passes
- utils/hct
10 files changed
+345
-74
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
113 | 113 | | |
114 | 114 | | |
115 | 115 | | |
116 | | - | |
117 | | - | |
| 116 | + | |
| 117 | + | |
118 | 118 | | |
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
122 | 122 | | |
123 | 123 | | |
124 | | - | |
125 | | - | |
| 124 | + | |
| 125 | + | |
126 | 126 | | |
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
130 | 130 | | |
131 | 131 | | |
132 | | - | |
133 | | - | |
| 132 | + | |
| 133 | + | |
134 | 134 | | |
135 | 135 | | |
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
139 | 139 | | |
140 | | - | |
141 | | - | |
| 140 | + | |
| 141 | + | |
142 | 142 | | |
143 | 143 | | |
144 | 144 | | |
| |||
301 | 301 | | |
302 | 302 | | |
303 | 303 | | |
304 | | - | |
305 | | - | |
| 304 | + | |
| 305 | + | |
306 | 306 | | |
307 | 307 | | |
308 | 308 | | |
309 | 309 | | |
310 | 310 | | |
311 | 311 | | |
312 | | - | |
313 | | - | |
| 312 | + | |
| 313 | + | |
314 | 314 | | |
315 | 315 | | |
316 | 316 | | |
| |||
319 | 319 | | |
320 | 320 | | |
321 | 321 | | |
322 | | - | |
323 | | - | |
| 322 | + | |
| 323 | + | |
324 | 324 | | |
325 | 325 | | |
326 | 326 | | |
| |||
329 | 329 | | |
330 | 330 | | |
331 | 331 | | |
332 | | - | |
333 | | - | |
| 332 | + | |
| 333 | + | |
334 | 334 | | |
335 | 335 | | |
336 | 336 | | |
| |||
3787 | 3787 | | |
3788 | 3788 | | |
3789 | 3789 | | |
| 3790 | + | |
3790 | 3791 | | |
3791 | 3792 | | |
3792 | 3793 | | |
| 3794 | + | |
| 3795 | + | |
| 3796 | + | |
| 3797 | + | |
| 3798 | + | |
| 3799 | + | |
| 3800 | + | |
3793 | 3801 | | |
3794 | 3802 | | |
3795 | 3803 | | |
| |||
3878 | 3886 | | |
3879 | 3887 | | |
3880 | 3888 | | |
3881 | | - | |
| 3889 | + | |
3882 | 3890 | | |
3883 | 3891 | | |
3884 | 3892 | | |
3885 | 3893 | | |
3886 | | - | |
| 3894 | + | |
3887 | 3895 | | |
3888 | 3896 | | |
3889 | 3897 | | |
3890 | 3898 | | |
3891 | | - | |
| 3899 | + | |
3892 | 3900 | | |
3893 | 3901 | | |
3894 | 3902 | | |
3895 | 3903 | | |
3896 | | - | |
| 3904 | + | |
3897 | 3905 | | |
3898 | 3906 | | |
3899 | 3907 | | |
| |||
3997 | 4005 | | |
3998 | 4006 | | |
3999 | 4007 | | |
4000 | | - | |
| 4008 | + | |
4001 | 4009 | | |
4002 | 4010 | | |
4003 | 4011 | | |
4004 | 4012 | | |
4005 | | - | |
| 4013 | + | |
4006 | 4014 | | |
4007 | 4015 | | |
4008 | 4016 | | |
4009 | 4017 | | |
4010 | 4018 | | |
4011 | 4019 | | |
4012 | | - | |
| 4020 | + | |
4013 | 4021 | | |
4014 | 4022 | | |
4015 | 4023 | | |
4016 | 4024 | | |
4017 | 4025 | | |
4018 | 4026 | | |
4019 | | - | |
| 4027 | + | |
4020 | 4028 | | |
4021 | 4029 | | |
4022 | 4030 | | |
| |||
4661 | 4669 | | |
4662 | 4670 | | |
4663 | 4671 | | |
4664 | | - | |
| 4672 | + | |
4665 | 4673 | | |
4666 | 4674 | | |
4667 | 4675 | | |
| |||
5397 | 5405 | | |
5398 | 5406 | | |
5399 | 5407 | | |
5400 | | - | |
| 5408 | + | |
5401 | 5409 | | |
5402 | 5410 | | |
5403 | 5411 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2083 | 2083 | | |
2084 | 2084 | | |
2085 | 2085 | | |
2086 | | - | |
2087 | | - | |
2088 | | - | |
| 2086 | + | |
2089 | 2087 | | |
2090 | | - | |
2091 | | - | |
| 2088 | + | |
| 2089 | + | |
| 2090 | + | |
| 2091 | + | |
| 2092 | + | |
| 2093 | + | |
| 2094 | + | |
| 2095 | + | |
| 2096 | + | |
| 2097 | + | |
| 2098 | + | |
| 2099 | + | |
| 2100 | + | |
| 2101 | + | |
| 2102 | + | |
2092 | 2103 | | |
2093 | | - | |
2094 | 2104 | | |
2095 | | - | |
| 2105 | + | |
| 2106 | + | |
2096 | 2107 | | |
2097 | | - | |
2098 | | - | |
2099 | | - | |
2100 | | - | |
2101 | | - | |
2102 | | - | |
2103 | | - | |
2104 | | - | |
2105 | | - | |
2106 | | - | |
2107 | | - | |
2108 | | - | |
2109 | | - | |
2110 | | - | |
2111 | | - | |
| 2108 | + | |
| 2109 | + | |
| 2110 | + | |
2112 | 2111 | | |
| 2112 | + | |
| 2113 | + | |
| 2114 | + | |
| 2115 | + | |
2113 | 2116 | | |
2114 | 2117 | | |
2115 | 2118 | | |
2116 | 2119 | | |
2117 | 2120 | | |
2118 | 2121 | | |
2119 | | - | |
2120 | | - | |
2121 | | - | |
| 2122 | + | |
| 2123 | + | |
| 2124 | + | |
| 2125 | + | |
| 2126 | + | |
| 2127 | + | |
| 2128 | + | |
| 2129 | + | |
| 2130 | + | |
| 2131 | + | |
| 2132 | + | |
| 2133 | + | |
| 2134 | + | |
| 2135 | + | |
| 2136 | + | |
| 2137 | + | |
2122 | 2138 | | |
2123 | 2139 | | |
2124 | 2140 | | |
| |||
Lines changed: 76 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
216 | 216 | | |
217 | 217 | | |
218 | 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 | + | |
219 | 295 | | |
220 | 296 | | |
221 | 297 | | |
| |||
Lines changed: 51 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 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 | + | |
0 commit comments