@@ -94,7 +94,7 @@ Here and hereafter, `NUM` is the number of elements in the loaded vector, `TYPE`
9494#### Vector access
9595
9696Dynamic access to vectors were previously converted to array accesses.
97- Native vectors can be dynamically accessed using ` extractelement ` , ` insertelement ` , or ` getelementptr ` operations.
97+ Native vectors can be dynamically accessed using ` extractelement ` , ` insertelement ` , ` shufflevector ` or ` getelementptr ` operations.
9898Previously usage of ` extractelement ` and ` insertelement ` in DXIL didn't allow dynamic index parameters.
9999
100100#### Elementwise intrinsics
@@ -186,66 +186,68 @@ In practice, this testing will largely represent verifying correct intrinsic out
186186
187187## Appendix 1: New Elementwise Overloads
188188
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 |
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+ | 113 | WaveAnyTrue | WaveAnyTrue |
235+ | 114 | WaveAllTrue | WaveAllTrue |
236+ | 115 | WaveActiveAllEqual | WaveActiveAllEqual |
237+ | 116 | WaveActiveBallot | WaveActiveBallot |
238+ | 117 | WaveReadLaneAt | WaveReadLaneAt |
239+ | 118 | WaveReadLaneFirst | WaveReadLaneFirst |
240+ | 119 | WaveActiveOp | WaveActiveOp |
241+ | 120 | WaveActiveBit | WaveActiveBit |
242+ | 121 | WavePrefixOp | WavePrefixOp |
243+ | 122 | QuadReadLaneAt | QuadReadLaneAt |
244+ | 123 | QuadOp | QuadOp |
245+ | 135 | WaveAllBitCount | WaveAllBitCount |
246+ | 136 | WavePrefixBitCount | WavePrefixBitCount |
247+ | 165 | WaveMatch | WaveMatch |
248+ | 166 | WaveMultiPrefixOp | WaveMultiPrefixOp |
249+ | 167 | WaveMultiPrefixBitCount | WaveMultiPrefixBitCount |
250+ | 222 | QuadVote | QuadVote |
249251
250252
251253
0 commit comments