@@ -100,6 +100,7 @@ Previously usage of `extractelement` and `insertelement` in DXIL didn't allow dy
100100#### Elementwise intrinsics
101101
102102A selection of elementwise intrinsics are given additional native vector forms.
103+ The full list of intrinsics with elementwise overloads is listed in [ Appendix 1] ( #appendix-1-new-elementwise-overloads ) .
103104Elementwise intrinsics are those that perform their calculations irrespective of the location of the element
104105 in the vector or matrix arguments except insofar as that position corresponds to those of the other elements
105106 that might be used in the individual element calculations.
@@ -183,6 +184,71 @@ Calculations should produce the correct results in all cases for a range of vect
183184In practice, this testing will largely represent verifying correct intrinsic output
184185 with the new shader model.
185186
187+ ## Appendix 1: New Elementwise Overloads
188+
189+ | Opcode | Name | Class |
190+ | ------ | -------------- | -------- |
191+ | 6 | FAbs | Unary |
192+ | 7 | Saturate | Unary |
193+ | 8 | IsNaN | IsSpecialFloat |
194+ | 9 | IsInf | IsSpecialFloat |
195+ | 10 | IsFinite | IsSpecialFloat |
196+ | 11 | IsNormal | IsSpecialFloat |
197+ | 12 | Cos | Unary |
198+ | 13 | Sin | Unary |
199+ | 14 | Tan | Unary |
200+ | 15 | Acos | Unary |
201+ | 16 | Asin | Unary |
202+ | 17 | Atan | Unary |
203+ | 18 | Hcos | Unary |
204+ | 19 | Hsin | Unary |
205+ | 20 | Htan | Unary |
206+ | 21 | Exp | Unary |
207+ | 22 | Frc | Unary |
208+ | 23 | Log | Unary |
209+ | 24 | Sqrt | Unary |
210+ | 25 | Rsqrt | Unary |
211+ | 26 | Round_ne | Unary |
212+ | 27 | Round_ni | Unary |
213+ | 28 | Round_pi | Unary |
214+ | 29 | Round_z | Unary |
215+ | 30 | Bfrev | Unary |
216+ | 31 | Countbits | UnaryBits |
217+ | 32 | FirstBitLo | UnaryBits |
218+ | 33 | FirstBitHi | UnaryBits |
219+ | 34 | FirstBitSHi | UnaryBits |
220+ | 35 | FMax | Binary |
221+ | 36 | FMin | Binary |
222+ | 37 | IMax | Binary |
223+ | 38 | IMin | Binary |
224+ | 39 | UMax | Binary |
225+ | 40 | UMin | Binary |
226+ | 46 | FMad | Tertiary |
227+ | 47 | Fma | Tertiary |
228+ | 48 | IMad | Tertiary |
229+ | 49 | UMad | Tertiary |
230+ | 83 | DerivCoarseX | Unary |
231+ | 84 | DerivCoarseY | Unary |
232+ | 85 | DerivFineX | Unary |
233+ | 86 | DerivFineY | Unary |
234+ | 115 | WaveActiveAllEqual | WaveActiveAllEqual |
235+ | 117 | WaveReadLaneAt | WaveReadLaneAt |
236+ | 118 | WaveReadLaneFirst | WaveReadLaneFirst |
237+ | 119 | WaveActiveOp | WaveActiveOp |
238+ | 120 | WaveActiveBit | WaveActiveBit |
239+ | 121 | WavePrefixOp | WavePrefixOp |
240+ | 122 | QuadReadLaneAt | QuadReadLaneAt |
241+ | 123 | QuadOp | QuadOp |
242+ | 124 | BitcastI16toF16 | BitcastI16toF16 |
243+ | 125 | BitcastF16toI16 | BitcastF16toI16 |
244+ | 126 | BitcastI32toF32 | BitcastI32toF32 |
245+ | 127 | BitcastF32toI32 | BitcastF32toI32 |
246+ | 128 | BitcastI64toF64 | BitcastI64toF64 |
247+ | 129 | BitcastF64toI64 | BitcastF64toI64 |
248+ | 165 | WaveMatch | WaveMatch |
249+
250+
251+
186252## Acknowledgments
187253
188254* [ Anupama Chandrasekhar] ( https://github.com/anupamachandra ) and [ Tex Riddell] ( https://github.com/tex3d ) for foundational contributions to the design.
0 commit comments