暫無描述
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172
  1. using System.Diagnostics;
  2. using System.Runtime.InteropServices;
  3. namespace Unity.Burst.Intrinsics
  4. {
  5. /// <summary>
  6. /// Represents a 256-bit SIMD value
  7. /// </summary>
  8. [StructLayout(LayoutKind.Explicit)]
  9. [DebuggerTypeProxy(typeof(V256DebugView))]
  10. public struct v256
  11. {
  12. /// <summary>
  13. /// Get the 0th Byte of the vector
  14. /// </summary>
  15. [FieldOffset(0)] public byte Byte0;
  16. /// <summary>
  17. /// Get the 1st Byte of the vector
  18. /// </summary>
  19. [FieldOffset(1)] public byte Byte1;
  20. /// <summary>
  21. /// Get the 2nd Byte of the vector
  22. /// </summary>
  23. [FieldOffset(2)] public byte Byte2;
  24. /// <summary>
  25. /// Get the 3rd Byte of the vector
  26. /// </summary>
  27. [FieldOffset(3)] public byte Byte3;
  28. /// <summary>
  29. /// Get the 4th Byte of the vector
  30. /// </summary>
  31. [FieldOffset(4)] public byte Byte4;
  32. /// <summary>
  33. /// Get the 5th Byte of the vector
  34. /// </summary>
  35. [FieldOffset(5)] public byte Byte5;
  36. /// <summary>
  37. /// Get the 6th Byte of the vector
  38. /// </summary>
  39. [FieldOffset(6)] public byte Byte6;
  40. /// <summary>
  41. /// Get the 7th Byte of the vector
  42. /// </summary>
  43. [FieldOffset(7)] public byte Byte7;
  44. /// <summary>
  45. /// Get the 8th Byte of the vector
  46. /// </summary>
  47. [FieldOffset(8)] public byte Byte8;
  48. /// <summary>
  49. /// Get the 9th Byte of the vector
  50. /// </summary>
  51. [FieldOffset(9)] public byte Byte9;
  52. /// <summary>
  53. /// Get the 10th Byte of the vector
  54. /// </summary>
  55. [FieldOffset(10)] public byte Byte10;
  56. /// <summary>
  57. /// Get the 11th Byte of the vector
  58. /// </summary>
  59. [FieldOffset(11)] public byte Byte11;
  60. /// <summary>
  61. /// Get the 12 Byte of the vector
  62. /// </summary>
  63. [FieldOffset(12)] public byte Byte12;
  64. /// <summary>
  65. /// Get the 13th Byte of the vector
  66. /// </summary>
  67. [FieldOffset(13)] public byte Byte13;
  68. /// <summary>
  69. /// Get the 14th Byte of the vector
  70. /// </summary>
  71. [FieldOffset(14)] public byte Byte14;
  72. /// <summary>
  73. /// Get the 15th Byte of the vector
  74. /// </summary>
  75. [FieldOffset(15)] public byte Byte15;
  76. /// <summary>
  77. /// Get the 16th Byte of the vector
  78. /// </summary>
  79. [FieldOffset(16)] public byte Byte16;
  80. /// <summary>
  81. /// Get the 17th Byte of the vector
  82. /// </summary>
  83. [FieldOffset(17)] public byte Byte17;
  84. /// <summary>
  85. /// Get the 18th Byte of the vector
  86. /// </summary>
  87. [FieldOffset(18)] public byte Byte18;
  88. /// <summary>
  89. /// Get the 19th Byte of the vector
  90. /// </summary>
  91. [FieldOffset(19)] public byte Byte19;
  92. /// <summary>
  93. /// Get the 20th Byte of the vector
  94. /// </summary>
  95. [FieldOffset(20)] public byte Byte20;
  96. /// <summary>
  97. /// Get the 21st Byte of the vector
  98. /// </summary>
  99. [FieldOffset(21)] public byte Byte21;
  100. /// <summary>
  101. /// Get the 22nd Byte of the vector
  102. /// </summary>
  103. [FieldOffset(22)] public byte Byte22;
  104. /// <summary>
  105. /// Get the 23rd Byte of the vector
  106. /// </summary>
  107. [FieldOffset(23)] public byte Byte23;
  108. /// <summary>
  109. /// Get the 24th Byte of the vector
  110. /// </summary>
  111. [FieldOffset(24)] public byte Byte24;
  112. /// <summary>
  113. /// Get the 25th Byte of the vector
  114. /// </summary>
  115. [FieldOffset(25)] public byte Byte25;
  116. /// <summary>
  117. /// Get the 26th Byte of the vector
  118. /// </summary>
  119. [FieldOffset(26)] public byte Byte26;
  120. /// <summary>
  121. /// Get the 27th Byte of the vector
  122. /// </summary>
  123. [FieldOffset(27)] public byte Byte27;
  124. /// <summary>
  125. /// Get the 28th Byte of the vector
  126. /// </summary>
  127. [FieldOffset(28)] public byte Byte28;
  128. /// <summary>
  129. /// Get the 29th Byte of the vector
  130. /// </summary>
  131. [FieldOffset(29)] public byte Byte29;
  132. /// <summary>
  133. /// Get the 30th Byte of the vector
  134. /// </summary>
  135. [FieldOffset(30)] public byte Byte30;
  136. /// <summary>
  137. /// Get the 31st Byte of the vector
  138. /// </summary>
  139. [FieldOffset(31)] public byte Byte31;
  140. /// <summary>
  141. /// Get the 0th SByte of the vector
  142. /// </summary>
  143. [FieldOffset(0)] public sbyte SByte0;
  144. /// <summary>
  145. /// Get the 1st SByte of the vector
  146. /// </summary>
  147. [FieldOffset(1)] public sbyte SByte1;
  148. /// <summary>
  149. /// Get the 2nd SByte of the vector
  150. /// </summary>
  151. [FieldOffset(2)] public sbyte SByte2;
  152. /// <summary>
  153. /// Get the 3rd SByte of the vector
  154. /// </summary>
  155. [FieldOffset(3)] public sbyte SByte3;
  156. /// <summary>
  157. /// Get the 4th SByte of the vector
  158. /// </summary>
  159. [FieldOffset(4)] public sbyte SByte4;
  160. /// <summary>
  161. /// Get the 5th SByte of the vector
  162. /// </summary>
  163. [FieldOffset(5)] public sbyte SByte5;
  164. /// <summary>
  165. /// Get the 6th SByte of the vector
  166. /// </summary>
  167. [FieldOffset(6)] public sbyte SByte6;
  168. /// <summary>
  169. /// Get the 7th SByte of the vector
  170. /// </summary>
  171. [FieldOffset(7)] public sbyte SByte7;
  172. /// <summary>
  173. /// Get the 8th SByte of the vector
  174. /// </summary>
  175. [FieldOffset(8)] public sbyte SByte8;
  176. /// <summary>
  177. /// Get the 9th SByte of the vector
  178. /// </summary>
  179. [FieldOffset(9)] public sbyte SByte9;
  180. /// <summary>
  181. /// Get the 10th SByte of the vector
  182. /// </summary>
  183. [FieldOffset(10)] public sbyte SByte10;
  184. /// <summary>
  185. /// Get the 11th SByte of the vector
  186. /// </summary>
  187. [FieldOffset(11)] public sbyte SByte11;
  188. /// <summary>
  189. /// Get the 12th SByte of the vector
  190. /// </summary>
  191. [FieldOffset(12)] public sbyte SByte12;
  192. /// <summary>
  193. /// Get the 13th SByte of the vector
  194. /// </summary>
  195. [FieldOffset(13)] public sbyte SByte13;
  196. /// <summary>
  197. /// Get the 14th SByte of the vector
  198. /// </summary>
  199. [FieldOffset(14)] public sbyte SByte14;
  200. /// <summary>
  201. /// Get the 15th SByte of the vector
  202. /// </summary>
  203. [FieldOffset(15)] public sbyte SByte15;
  204. /// <summary>
  205. /// Get the 16th SByte of the vector
  206. /// </summary>
  207. [FieldOffset(16)] public sbyte SByte16;
  208. /// <summary>
  209. /// Get the 17th SByte of the vector
  210. /// </summary>
  211. [FieldOffset(17)] public sbyte SByte17;
  212. /// <summary>
  213. /// Get the 18th SByte of the vector
  214. /// </summary>
  215. [FieldOffset(18)] public sbyte SByte18;
  216. /// <summary>
  217. /// Get the 19th SByte of the vector
  218. /// </summary>
  219. [FieldOffset(19)] public sbyte SByte19;
  220. /// <summary>
  221. /// Get the 20th SByte of the vector
  222. /// </summary>
  223. [FieldOffset(20)] public sbyte SByte20;
  224. /// <summary>
  225. /// Get the 21st SByte of the vector
  226. /// </summary>
  227. [FieldOffset(21)] public sbyte SByte21;
  228. /// <summary>
  229. /// Get the 22nd SByte of the vector
  230. /// </summary>
  231. [FieldOffset(22)] public sbyte SByte22;
  232. /// <summary>
  233. /// Get the 23rd SByte of the vector
  234. /// </summary>
  235. [FieldOffset(23)] public sbyte SByte23;
  236. /// <summary>
  237. /// Get the 24th SByte of the vector
  238. /// </summary>
  239. [FieldOffset(24)] public sbyte SByte24;
  240. /// <summary>
  241. /// Get the 25th SByte of the vector
  242. /// </summary>
  243. [FieldOffset(25)] public sbyte SByte25;
  244. /// <summary>
  245. /// Get the 26th SByte of the vector
  246. /// </summary>
  247. [FieldOffset(26)] public sbyte SByte26;
  248. /// <summary>
  249. /// Get the 27th SByte of the vector
  250. /// </summary>
  251. [FieldOffset(27)] public sbyte SByte27;
  252. /// <summary>
  253. /// Get the 28th SByte of the vector
  254. /// </summary>
  255. [FieldOffset(28)] public sbyte SByte28;
  256. /// <summary>
  257. /// Get the 29th SByte of the vector
  258. /// </summary>
  259. [FieldOffset(29)] public sbyte SByte29;
  260. /// <summary>
  261. /// Get the 30th SByte of the vector
  262. /// </summary>
  263. [FieldOffset(30)] public sbyte SByte30;
  264. /// <summary>
  265. /// Get the 31st SByte of the vector
  266. /// </summary>
  267. [FieldOffset(31)] public sbyte SByte31;
  268. /// <summary>
  269. /// Get the 0th UShort of the vector
  270. /// </summary>
  271. [FieldOffset(0)] public ushort UShort0;
  272. /// <summary>
  273. /// Get the 1st UShort of the vector
  274. /// </summary>
  275. [FieldOffset(2)] public ushort UShort1;
  276. /// <summary>
  277. /// Get the 2nd UShort of the vector
  278. /// </summary>
  279. [FieldOffset(4)] public ushort UShort2;
  280. /// <summary>
  281. /// Get the 3rd UShort of the vector
  282. /// </summary>
  283. [FieldOffset(6)] public ushort UShort3;
  284. /// <summary>
  285. /// Get the 4th UShort of the vector
  286. /// </summary>
  287. [FieldOffset(8)] public ushort UShort4;
  288. /// <summary>
  289. /// Get the 5th UShort of the vector
  290. /// </summary>
  291. [FieldOffset(10)] public ushort UShort5;
  292. /// <summary>
  293. /// Get the 6th UShort of the vector
  294. /// </summary>
  295. [FieldOffset(12)] public ushort UShort6;
  296. /// <summary>
  297. /// Get the 7th UShort of the vector
  298. /// </summary>
  299. [FieldOffset(14)] public ushort UShort7;
  300. /// <summary>
  301. /// Get the 8th UShort of the vector
  302. /// </summary>
  303. [FieldOffset(16)] public ushort UShort8;
  304. /// <summary>
  305. /// Get the 9th UShort of the vector
  306. /// </summary>
  307. [FieldOffset(18)] public ushort UShort9;
  308. /// <summary>
  309. /// Get the 10th UShort of the vector
  310. /// </summary>
  311. [FieldOffset(20)] public ushort UShort10;
  312. /// <summary>
  313. /// Get the 11th UShort of the vector
  314. /// </summary>
  315. [FieldOffset(22)] public ushort UShort11;
  316. /// <summary>
  317. /// Get the 12th UShort of the vector
  318. /// </summary>
  319. [FieldOffset(24)] public ushort UShort12;
  320. /// <summary>
  321. /// Get the 13th UShort of the vector
  322. /// </summary>
  323. [FieldOffset(26)] public ushort UShort13;
  324. /// <summary>
  325. /// Get the 14th UShort of the vector
  326. /// </summary>
  327. [FieldOffset(28)] public ushort UShort14;
  328. /// <summary>
  329. /// Get the 15th UShort of the vector
  330. /// </summary>
  331. [FieldOffset(30)] public ushort UShort15;
  332. /// <summary>
  333. /// Get the 0th SShort of the vector
  334. /// </summary>
  335. [FieldOffset(0)] public short SShort0;
  336. /// <summary>
  337. /// Get the 1st SShort of the vector
  338. /// </summary>
  339. [FieldOffset(2)] public short SShort1;
  340. /// <summary>
  341. /// Get the 2nd SShort of the vector
  342. /// </summary>
  343. [FieldOffset(4)] public short SShort2;
  344. /// <summary>
  345. /// Get the 3rd SShort of the vector
  346. /// </summary>
  347. [FieldOffset(6)] public short SShort3;
  348. /// <summary>
  349. /// Get the 4th SShort of the vector
  350. /// </summary>
  351. [FieldOffset(8)] public short SShort4;
  352. /// <summary>
  353. /// Get the 5th SShort of the vector
  354. /// </summary>
  355. [FieldOffset(10)] public short SShort5;
  356. /// <summary>
  357. /// Get the 6th SShort of the vector
  358. /// </summary>
  359. [FieldOffset(12)] public short SShort6;
  360. /// <summary>
  361. /// Get the 7th SShort of the vector
  362. /// </summary>
  363. [FieldOffset(14)] public short SShort7;
  364. /// <summary>
  365. /// Get the 8th SShort of the vector
  366. /// </summary>
  367. [FieldOffset(16)] public short SShort8;
  368. /// <summary>
  369. /// Get the 9th SShort of the vector
  370. /// </summary>
  371. [FieldOffset(18)] public short SShort9;
  372. /// <summary>
  373. /// Get the 10th SShort of the vector
  374. /// </summary>
  375. [FieldOffset(20)] public short SShort10;
  376. /// <summary>
  377. /// Get the 11th SShort of the vector
  378. /// </summary>
  379. [FieldOffset(22)] public short SShort11;
  380. /// <summary>
  381. /// Get the 12th SShort of the vector
  382. /// </summary>
  383. [FieldOffset(24)] public short SShort12;
  384. /// <summary>
  385. /// Get the 13th SShort of the vector
  386. /// </summary>
  387. [FieldOffset(26)] public short SShort13;
  388. /// <summary>
  389. /// Get the 14th SShort of the vector
  390. /// </summary>
  391. [FieldOffset(28)] public short SShort14;
  392. /// <summary>
  393. /// Get the 15th SShort of the vector
  394. /// </summary>
  395. [FieldOffset(30)] public short SShort15;
  396. #if BURST_INTERNAL || UNITY_BURST_EXPERIMENTAL_NEON_INTRINSICS
  397. /// <summary>
  398. /// Get the 0th f16 of the vector
  399. /// </summary>
  400. [FieldOffset(0)] public f16 Half0;
  401. /// <summary>
  402. /// Get the 1st f16 of the vector
  403. /// </summary>
  404. [FieldOffset(2)] public f16 Half1;
  405. /// <summary>
  406. /// Get the 2nd f16 of the vector
  407. /// </summary>
  408. [FieldOffset(4)] public f16 Half2;
  409. /// <summary>
  410. /// Get the 3rd f16 of the vector
  411. /// </summary>
  412. [FieldOffset(6)] public f16 Half3;
  413. /// <summary>
  414. /// Get the 4th f16 of the vector
  415. /// </summary>
  416. [FieldOffset(8)] public f16 Half4;
  417. /// <summary>
  418. /// Get the 5th f16 of the vector
  419. /// </summary>
  420. [FieldOffset(10)] public f16 Half5;
  421. /// <summary>
  422. /// Get the 6th f16 of the vector
  423. /// </summary>
  424. [FieldOffset(12)] public f16 Half6;
  425. /// <summary>
  426. /// Get the 7th f16 of the vector
  427. /// </summary>
  428. [FieldOffset(14)] public f16 Half7;
  429. /// <summary>
  430. /// Get the 8th f16 of the vector
  431. /// </summary>
  432. [FieldOffset(16)] public f16 Half8;
  433. /// <summary>
  434. /// Get the 9th f16 of the vector
  435. /// </summary>
  436. [FieldOffset(18)] public f16 Half9;
  437. /// <summary>
  438. /// Get the 10th f16 of the vector
  439. /// </summary>
  440. [FieldOffset(20)] public f16 Half10;
  441. /// <summary>
  442. /// Get the 11th f16 of the vector
  443. /// </summary>
  444. [FieldOffset(22)] public f16 Half11;
  445. /// <summary>
  446. /// Get the 12th f16 of the vector
  447. /// </summary>
  448. [FieldOffset(24)] public f16 Half12;
  449. /// <summary>
  450. /// Get the 13th f16 of the vector
  451. /// </summary>
  452. [FieldOffset(26)] public f16 Half13;
  453. /// <summary>
  454. /// Get the 14th f16 of the vector
  455. /// </summary>
  456. [FieldOffset(28)] public f16 Half14;
  457. /// <summary>
  458. /// Get the 15th f16 of the vector
  459. /// </summary>
  460. [FieldOffset(30)] public f16 Half15;
  461. #endif // BURST_INTERNAL || UNITY_BURST_EXPERIMENTAL_NEON_INTRINSICS
  462. /// <summary>
  463. /// Get the 0th UInt of the vector
  464. /// </summary>
  465. [FieldOffset(0)] public uint UInt0;
  466. /// <summary>
  467. /// Get the 1st UInt of the vector
  468. /// </summary>
  469. [FieldOffset(4)] public uint UInt1;
  470. /// <summary>
  471. /// Get the 2nd UInt of the vector
  472. /// </summary>
  473. [FieldOffset(8)] public uint UInt2;
  474. /// <summary>
  475. /// Get the 3rd UInt of the vector
  476. /// </summary>
  477. [FieldOffset(12)] public uint UInt3;
  478. /// <summary>
  479. /// Get the 4th UInt of the vector
  480. /// </summary>
  481. [FieldOffset(16)] public uint UInt4;
  482. /// <summary>
  483. /// Get the 5th UInt of the vector
  484. /// </summary>
  485. [FieldOffset(20)] public uint UInt5;
  486. /// <summary>
  487. /// Get the 6th UInt of the vector
  488. /// </summary>
  489. [FieldOffset(24)] public uint UInt6;
  490. /// <summary>
  491. /// Get the 7th UInt of the vector
  492. /// </summary>
  493. [FieldOffset(28)] public uint UInt7;
  494. /// <summary>
  495. /// Get the 0th SInt of the vector
  496. /// </summary>
  497. [FieldOffset(0)] public int SInt0;
  498. /// <summary>
  499. /// Get the 1st SInt of the vector
  500. /// </summary>
  501. [FieldOffset(4)] public int SInt1;
  502. /// <summary>
  503. /// Get the 2nd SInt of the vector
  504. /// </summary>
  505. [FieldOffset(8)] public int SInt2;
  506. /// <summary>
  507. /// Get the 3rd SInt of the vector
  508. /// </summary>
  509. [FieldOffset(12)] public int SInt3;
  510. /// <summary>
  511. /// Get the 4th SInt of the vector
  512. /// </summary>
  513. [FieldOffset(16)] public int SInt4;
  514. /// <summary>
  515. /// Get the 5th SInt of the vector
  516. /// </summary>
  517. [FieldOffset(20)] public int SInt5;
  518. /// <summary>
  519. /// Get the 6th SInt of the vector
  520. /// </summary>
  521. [FieldOffset(24)] public int SInt6;
  522. /// <summary>
  523. /// Get the 7th SInt of the vector
  524. /// </summary>
  525. [FieldOffset(28)] public int SInt7;
  526. /// <summary>
  527. /// Get the 0th ULong of the vector
  528. /// </summary>
  529. [FieldOffset(0)] public ulong ULong0;
  530. /// <summary>
  531. /// Get the 1st ULong of the vector
  532. /// </summary>
  533. [FieldOffset(8)] public ulong ULong1;
  534. /// <summary>
  535. /// Get the 2nd ULong of the vector
  536. /// </summary>
  537. [FieldOffset(16)] public ulong ULong2;
  538. /// <summary>
  539. /// Get the 3rd ULong of the vector
  540. /// </summary>
  541. [FieldOffset(24)] public ulong ULong3;
  542. /// <summary>
  543. /// Get the 0th SLong of the vector
  544. /// </summary>
  545. [FieldOffset(0)] public long SLong0;
  546. /// <summary>
  547. /// Get the 1st SLong of the vector
  548. /// </summary>
  549. [FieldOffset(8)] public long SLong1;
  550. /// <summary>
  551. /// Get the 2nd SLong of the vector
  552. /// </summary>
  553. [FieldOffset(16)] public long SLong2;
  554. /// <summary>
  555. /// Get the 3rd SLong of the vector
  556. /// </summary>
  557. [FieldOffset(24)] public long SLong3;
  558. /// <summary>
  559. /// Get the 0th Float of the vector
  560. /// </summary>
  561. [FieldOffset(0)] public float Float0;
  562. /// <summary>
  563. /// Get the 1st Float of the vector
  564. /// </summary>
  565. [FieldOffset(4)] public float Float1;
  566. /// <summary>
  567. /// Get the 2nd Float of the vector
  568. /// </summary>
  569. [FieldOffset(8)] public float Float2;
  570. /// <summary>
  571. /// Get the 3rd Float of the vector
  572. /// </summary>
  573. [FieldOffset(12)] public float Float3;
  574. /// <summary>
  575. /// Get the 4th Float of the vector
  576. /// </summary>
  577. [FieldOffset(16)] public float Float4;
  578. /// <summary>
  579. /// Get the 5th Float of the vector
  580. /// </summary>
  581. [FieldOffset(20)] public float Float5;
  582. /// <summary>
  583. /// Get the 6th Float of the vector
  584. /// </summary>
  585. [FieldOffset(24)] public float Float6;
  586. /// <summary>
  587. /// Get the 7th Float of the vector
  588. /// </summary>
  589. [FieldOffset(28)] public float Float7;
  590. /// <summary>
  591. /// Get the 0th Double of the vector
  592. /// </summary>
  593. [FieldOffset(0)] public double Double0;
  594. /// <summary>
  595. /// Get the 1st Double of the vector
  596. /// </summary>
  597. [FieldOffset(8)] public double Double1;
  598. /// <summary>
  599. /// Get the 2nd Double of the vector
  600. /// </summary>
  601. [FieldOffset(16)] public double Double2;
  602. /// <summary>
  603. /// Get the 3rd Double of the vector
  604. /// </summary>
  605. [FieldOffset(24)] public double Double3;
  606. /// <summary>
  607. /// Get the low half of the vector
  608. /// </summary>
  609. [FieldOffset(0)] public v128 Lo128;
  610. /// <summary>
  611. /// Get the high half of the vector
  612. /// </summary>
  613. [FieldOffset(16)] public v128 Hi128;
  614. /// <summary>
  615. /// Splat a single byte across the v256
  616. /// </summary>
  617. /// <param name="b">Splatted byte.</param>
  618. public v256(byte b)
  619. {
  620. this = default(v256);
  621. Byte0 = Byte1 = Byte2 = Byte3 = Byte4 = Byte5 = Byte6 = Byte7 =
  622. Byte8 = Byte9 = Byte10 = Byte11 = Byte12 = Byte13 = Byte14 = Byte15 =
  623. Byte16 = Byte17 = Byte18 = Byte19 = Byte20 = Byte21 = Byte22 = Byte23 =
  624. Byte24 = Byte25 = Byte26 = Byte27 = Byte28 = Byte29 = Byte30 = Byte31 =
  625. b;
  626. }
  627. /// <summary>
  628. /// Initialize the v128 with 32 bytes
  629. /// </summary>
  630. /// <param name="a">byte a.</param>
  631. /// <param name="b">byte b.</param>
  632. /// <param name="c">byte c.</param>
  633. /// <param name="d">byte d.</param>
  634. /// <param name="e">byte e.</param>
  635. /// <param name="f">byte f.</param>
  636. /// <param name="g">byte g.</param>
  637. /// <param name="h">byte h.</param>
  638. /// <param name="i">byte i.</param>
  639. /// <param name="j">byte j.</param>
  640. /// <param name="k">byte k.</param>
  641. /// <param name="l">byte l.</param>
  642. /// <param name="m">byte m.</param>
  643. /// <param name="n">byte n.</param>
  644. /// <param name="o">byte o.</param>
  645. /// <param name="p">byte p.</param>
  646. /// <param name="q">byte q.</param>
  647. /// <param name="r">byte r.</param>
  648. /// <param name="s">byte s.</param>
  649. /// <param name="t">byte t.</param>
  650. /// <param name="u">byte u.</param>
  651. /// <param name="v">byte v.</param>
  652. /// <param name="w">byte w.</param>
  653. /// <param name="x">byte x.</param>
  654. /// <param name="y">byte y.</param>
  655. /// <param name="z">byte z.</param>
  656. /// <param name="A">byte A.</param>
  657. /// <param name="B">byte B.</param>
  658. /// <param name="C">byte C.</param>
  659. /// <param name="D">byte D.</param>
  660. /// <param name="E">byte E.</param>
  661. /// <param name="F">byte F.</param>
  662. public v256(
  663. byte a, byte b, byte c, byte d,
  664. byte e, byte f, byte g, byte h,
  665. byte i, byte j, byte k, byte l,
  666. byte m, byte n, byte o, byte p,
  667. byte q, byte r, byte s, byte t,
  668. byte u, byte v, byte w, byte x,
  669. byte y, byte z, byte A, byte B,
  670. byte C, byte D, byte E, byte F)
  671. {
  672. this = default(v256);
  673. Byte0 = a;
  674. Byte1 = b;
  675. Byte2 = c;
  676. Byte3 = d;
  677. Byte4 = e;
  678. Byte5 = f;
  679. Byte6 = g;
  680. Byte7 = h;
  681. Byte8 = i;
  682. Byte9 = j;
  683. Byte10 = k;
  684. Byte11 = l;
  685. Byte12 = m;
  686. Byte13 = n;
  687. Byte14 = o;
  688. Byte15 = p;
  689. Byte16 = q;
  690. Byte17 = r;
  691. Byte18 = s;
  692. Byte19 = t;
  693. Byte20 = u;
  694. Byte21 = v;
  695. Byte22 = w;
  696. Byte23 = x;
  697. Byte24 = y;
  698. Byte25 = z;
  699. Byte26 = A;
  700. Byte27 = B;
  701. Byte28 = C;
  702. Byte29 = D;
  703. Byte30 = E;
  704. Byte31 = F;
  705. }
  706. /// <summary>
  707. /// Splat a single sbyte across the v256
  708. /// </summary>
  709. /// <param name="b">Splatted sbyte.</param>
  710. public v256(sbyte b)
  711. {
  712. this = default(v256);
  713. SByte0 = SByte1 = SByte2 = SByte3 = SByte4 = SByte5 = SByte6 = SByte7 =
  714. SByte8 = SByte9 = SByte10 = SByte11 = SByte12 = SByte13 = SByte14 = SByte15 =
  715. SByte16 = SByte17 = SByte18 = SByte19 = SByte20 = SByte21 = SByte22 = SByte23 =
  716. SByte24 = SByte25 = SByte26 = SByte27 = SByte28 = SByte29 = SByte30 = SByte31 =
  717. b;
  718. }
  719. /// <summary>
  720. /// Initialize the v256 with 32 sbytes
  721. /// </summary>
  722. /// <param name="a">sbyte a.</param>
  723. /// <param name="b">sbyte b.</param>
  724. /// <param name="c">sbyte c.</param>
  725. /// <param name="d">sbyte d.</param>
  726. /// <param name="e">sbyte e.</param>
  727. /// <param name="f">sbyte f.</param>
  728. /// <param name="g">sbyte g.</param>
  729. /// <param name="h">sbyte h.</param>
  730. /// <param name="i">sbyte i.</param>
  731. /// <param name="j">sbyte j.</param>
  732. /// <param name="k">sbyte k.</param>
  733. /// <param name="l">sbyte l.</param>
  734. /// <param name="m">sbyte m.</param>
  735. /// <param name="n">sbyte n.</param>
  736. /// <param name="o">sbyte o.</param>
  737. /// <param name="p">sbyte p.</param>
  738. /// <param name="q">sbyte q.</param>
  739. /// <param name="r">sbyte r.</param>
  740. /// <param name="s">sbyte s.</param>
  741. /// <param name="t">sbyte t.</param>
  742. /// <param name="u">sbyte u.</param>
  743. /// <param name="v">sbyte v.</param>
  744. /// <param name="w">sbyte w.</param>
  745. /// <param name="x">sbyte x.</param>
  746. /// <param name="y">sbyte y.</param>
  747. /// <param name="z">sbyte z.</param>
  748. /// <param name="A">sbyte A.</param>
  749. /// <param name="B">sbyte B.</param>
  750. /// <param name="C">sbyte C.</param>
  751. /// <param name="D">sbyte D.</param>
  752. /// <param name="E">sbyte E.</param>
  753. /// <param name="F">sbyte F.</param>
  754. public v256(
  755. sbyte a, sbyte b, sbyte c, sbyte d,
  756. sbyte e, sbyte f, sbyte g, sbyte h,
  757. sbyte i, sbyte j, sbyte k, sbyte l,
  758. sbyte m, sbyte n, sbyte o, sbyte p,
  759. sbyte q, sbyte r, sbyte s, sbyte t,
  760. sbyte u, sbyte v, sbyte w, sbyte x,
  761. sbyte y, sbyte z, sbyte A, sbyte B,
  762. sbyte C, sbyte D, sbyte E, sbyte F)
  763. {
  764. this = default(v256);
  765. SByte0 = a;
  766. SByte1 = b;
  767. SByte2 = c;
  768. SByte3 = d;
  769. SByte4 = e;
  770. SByte5 = f;
  771. SByte6 = g;
  772. SByte7 = h;
  773. SByte8 = i;
  774. SByte9 = j;
  775. SByte10 = k;
  776. SByte11 = l;
  777. SByte12 = m;
  778. SByte13 = n;
  779. SByte14 = o;
  780. SByte15 = p;
  781. SByte16 = q;
  782. SByte17 = r;
  783. SByte18 = s;
  784. SByte19 = t;
  785. SByte20 = u;
  786. SByte21 = v;
  787. SByte22 = w;
  788. SByte23 = x;
  789. SByte24 = y;
  790. SByte25 = z;
  791. SByte26 = A;
  792. SByte27 = B;
  793. SByte28 = C;
  794. SByte29 = D;
  795. SByte30 = E;
  796. SByte31 = F;
  797. }
  798. /// <summary>
  799. /// Splat a single short across the v256
  800. /// </summary>
  801. /// <param name="v">Splatted short.</param>
  802. public v256(short v)
  803. {
  804. this = default(v256);
  805. SShort0 = SShort1 = SShort2 = SShort3 = SShort4 = SShort5 = SShort6 = SShort7 =
  806. SShort8 = SShort9 = SShort10 = SShort11 = SShort12 = SShort13 = SShort14 = SShort15 =
  807. v;
  808. }
  809. /// <summary>
  810. /// Initialize the v256 with 16 shorts
  811. /// </summary>
  812. /// <param name="a">short a.</param>
  813. /// <param name="b">short b.</param>
  814. /// <param name="c">short c.</param>
  815. /// <param name="d">short d.</param>
  816. /// <param name="e">short e.</param>
  817. /// <param name="f">short f.</param>
  818. /// <param name="g">short g.</param>
  819. /// <param name="h">short h.</param>
  820. /// <param name="i">short i.</param>
  821. /// <param name="j">short j.</param>
  822. /// <param name="k">short k.</param>
  823. /// <param name="l">short l.</param>
  824. /// <param name="m">short m.</param>
  825. /// <param name="n">short n.</param>
  826. /// <param name="o">short o.</param>
  827. /// <param name="p">short p.</param>
  828. public v256(
  829. short a, short b, short c, short d, short e, short f, short g, short h,
  830. short i, short j, short k, short l, short m, short n, short o, short p)
  831. {
  832. this = default(v256);
  833. SShort0 = a;
  834. SShort1 = b;
  835. SShort2 = c;
  836. SShort3 = d;
  837. SShort4 = e;
  838. SShort5 = f;
  839. SShort6 = g;
  840. SShort7 = h;
  841. SShort8 = i;
  842. SShort9 = j;
  843. SShort10 = k;
  844. SShort11 = l;
  845. SShort12 = m;
  846. SShort13 = n;
  847. SShort14 = o;
  848. SShort15 = p;
  849. }
  850. /// <summary>
  851. /// Splat a single ushort across the v256
  852. /// </summary>
  853. /// <param name="v">Splatted ushort.</param>
  854. public v256(ushort v)
  855. {
  856. this = default(v256);
  857. UShort0 = UShort1 = UShort2 = UShort3 = UShort4 = UShort5 = UShort6 = UShort7 =
  858. UShort8 = UShort9 = UShort10 = UShort11 = UShort12 = UShort13 = UShort14 = UShort15 =
  859. v;
  860. }
  861. /// <summary>
  862. /// Initialize the v256 with 16 ushorts
  863. /// </summary>
  864. /// <param name="a">ushort a.</param>
  865. /// <param name="b">ushort b.</param>
  866. /// <param name="c">ushort c.</param>
  867. /// <param name="d">ushort d.</param>
  868. /// <param name="e">ushort e.</param>
  869. /// <param name="f">ushort f.</param>
  870. /// <param name="g">ushort g.</param>
  871. /// <param name="h">ushort h.</param>
  872. /// <param name="i">ushort i.</param>
  873. /// <param name="j">ushort j.</param>
  874. /// <param name="k">ushort k.</param>
  875. /// <param name="l">ushort l.</param>
  876. /// <param name="m">ushort m.</param>
  877. /// <param name="n">ushort n.</param>
  878. /// <param name="o">ushort o.</param>
  879. /// <param name="p">ushort p.</param>
  880. public v256(
  881. ushort a, ushort b, ushort c, ushort d, ushort e, ushort f, ushort g, ushort h,
  882. ushort i, ushort j, ushort k, ushort l, ushort m, ushort n, ushort o, ushort p)
  883. {
  884. this = default(v256);
  885. UShort0 = a;
  886. UShort1 = b;
  887. UShort2 = c;
  888. UShort3 = d;
  889. UShort4 = e;
  890. UShort5 = f;
  891. UShort6 = g;
  892. UShort7 = h;
  893. UShort8 = i;
  894. UShort9 = j;
  895. UShort10 = k;
  896. UShort11 = l;
  897. UShort12 = m;
  898. UShort13 = n;
  899. UShort14 = o;
  900. UShort15 = p;
  901. }
  902. #if BURST_INTERNAL || UNITY_BURST_EXPERIMENTAL_NEON_INTRINSICS
  903. /// <summary>
  904. /// Splat a single f16 across the v256
  905. /// </summary>
  906. /// <param name="v">Splatted f16.</param>
  907. public v256(f16 v)
  908. {
  909. this = default(v256);
  910. Half0 = Half1 = Half2 = Half3 = Half4 = Half5 = Half6 = Half7 =
  911. Half8 = Half9 = Half10 = Half11 = Half12 = Half13 = Half14 = Half15 =
  912. v;
  913. }
  914. /// <summary>
  915. /// Initialize the v256 with 16 f16's
  916. /// </summary>
  917. /// <param name="a">f16 a.</param>
  918. /// <param name="b">f16 b.</param>
  919. /// <param name="c">f16 c.</param>
  920. /// <param name="d">f16 d.</param>
  921. /// <param name="e">f16 e.</param>
  922. /// <param name="f">f16 f.</param>
  923. /// <param name="g">f16 g.</param>
  924. /// <param name="h">f16 h.</param>
  925. /// <param name="i">f16 i.</param>
  926. /// <param name="j">f16 j.</param>
  927. /// <param name="k">f16 k.</param>
  928. /// <param name="l">f16 l.</param>
  929. /// <param name="m">f16 m.</param>
  930. /// <param name="n">f16 n.</param>
  931. /// <param name="o">f16 o.</param>
  932. /// <param name="p">f16 p.</param>
  933. public v256(
  934. f16 a, f16 b, f16 c, f16 d, f16 e, f16 f, f16 g, f16 h,
  935. f16 i, f16 j, f16 k, f16 l, f16 m, f16 n, f16 o, f16 p)
  936. {
  937. this = default(v256);
  938. Half0 = a;
  939. Half1 = b;
  940. Half2 = c;
  941. Half3 = d;
  942. Half4 = e;
  943. Half5 = f;
  944. Half6 = g;
  945. Half7 = h;
  946. Half8 = i;
  947. Half9 = j;
  948. Half10 = k;
  949. Half11 = l;
  950. Half12 = m;
  951. Half13 = n;
  952. Half14 = o;
  953. Half15 = p;
  954. }
  955. #endif // BURST_INTERNAL || UNITY_BURST_EXPERIMENTAL_NEON_INTRINSICS
  956. /// <summary>
  957. /// Splat a single int across the v256
  958. /// </summary>
  959. /// <param name="v">Splatted int.</param>
  960. public v256(int v)
  961. {
  962. this = default(v256);
  963. SInt0 = SInt1 = SInt2 = SInt3 = SInt4 = SInt5 = SInt6 = SInt7 = v;
  964. }
  965. /// <summary>
  966. /// Initialize the v256 with 8 ints
  967. /// </summary>
  968. /// <param name="a">int a.</param>
  969. /// <param name="b">int b.</param>
  970. /// <param name="c">int c.</param>
  971. /// <param name="d">int d.</param>
  972. /// <param name="e">int e.</param>
  973. /// <param name="f">int f.</param>
  974. /// <param name="g">int g.</param>
  975. /// <param name="h">int h.</param>
  976. public v256(int a, int b, int c, int d, int e, int f, int g, int h)
  977. {
  978. this = default(v256);
  979. SInt0 = a;
  980. SInt1 = b;
  981. SInt2 = c;
  982. SInt3 = d;
  983. SInt4 = e;
  984. SInt5 = f;
  985. SInt6 = g;
  986. SInt7 = h;
  987. }
  988. /// <summary>
  989. /// Splat a single uint across the v256
  990. /// </summary>
  991. /// <param name="v">Splatted uint.</param>
  992. public v256(uint v)
  993. {
  994. this = default(v256);
  995. UInt0 = UInt1 = UInt2 = UInt3 = UInt4 = UInt5 = UInt6 = UInt7 = v;
  996. }
  997. /// <summary>
  998. /// Initialize the v256 with 8 uints
  999. /// </summary>
  1000. /// <param name="a">uint a.</param>
  1001. /// <param name="b">uint b.</param>
  1002. /// <param name="c">uint c.</param>
  1003. /// <param name="d">uint d.</param>
  1004. /// <param name="e">uint e.</param>
  1005. /// <param name="f">uint f.</param>
  1006. /// <param name="g">uint g.</param>
  1007. /// <param name="h">uint h.</param>
  1008. public v256(uint a, uint b, uint c, uint d, uint e, uint f, uint g, uint h)
  1009. {
  1010. this = default(v256);
  1011. UInt0 = a;
  1012. UInt1 = b;
  1013. UInt2 = c;
  1014. UInt3 = d;
  1015. UInt4 = e;
  1016. UInt5 = f;
  1017. UInt6 = g;
  1018. UInt7 = h;
  1019. }
  1020. /// <summary>
  1021. /// Splat a single float across the v256
  1022. /// </summary>
  1023. /// <param name="f">Splatted float.</param>
  1024. public v256(float f)
  1025. {
  1026. this = default(v256);
  1027. Float0 = Float1 = Float2 = Float3 = Float4 = Float5 = Float6 = Float7 = f;
  1028. }
  1029. /// <summary>
  1030. /// Initialize the v256 with 8 floats
  1031. /// </summary>
  1032. /// <param name="a">float a.</param>
  1033. /// <param name="b">float b.</param>
  1034. /// <param name="c">float c.</param>
  1035. /// <param name="d">float d.</param>
  1036. /// <param name="e">float e.</param>
  1037. /// <param name="f">float f.</param>
  1038. /// <param name="g">float g.</param>
  1039. /// <param name="h">float h.</param>
  1040. public v256(float a, float b, float c, float d, float e, float f, float g, float h)
  1041. {
  1042. this = default(v256);
  1043. Float0 = a;
  1044. Float1 = b;
  1045. Float2 = c;
  1046. Float3 = d;
  1047. Float4 = e;
  1048. Float5 = f;
  1049. Float6 = g;
  1050. Float7 = h;
  1051. }
  1052. /// <summary>
  1053. /// Splat a single double across the v256
  1054. /// </summary>
  1055. /// <param name="f">Splatted double.</param>
  1056. public v256(double f)
  1057. {
  1058. this = default(v256);
  1059. Double0 = Double1 = Double2 = Double3 = f;
  1060. }
  1061. /// <summary>
  1062. /// Initialize the v256 with 4 doubles
  1063. /// </summary>
  1064. /// <param name="a">double a.</param>
  1065. /// <param name="b">double b.</param>
  1066. /// <param name="c">double c.</param>
  1067. /// <param name="d">double d.</param>
  1068. public v256(double a, double b, double c, double d)
  1069. {
  1070. this = default(v256);
  1071. Double0 = a;
  1072. Double1 = b;
  1073. Double2 = c;
  1074. Double3 = d;
  1075. }
  1076. /// <summary>
  1077. /// Splat a single long across the v256
  1078. /// </summary>
  1079. /// <param name="f">Splatted long.</param>
  1080. public v256(long f)
  1081. {
  1082. this = default(v256);
  1083. SLong0 = SLong1 = SLong2 = SLong3 = f;
  1084. }
  1085. /// <summary>
  1086. /// Initialize the v256 with 4 longs
  1087. /// </summary>
  1088. /// <param name="a">long a.</param>
  1089. /// <param name="b">long b.</param>
  1090. /// <param name="c">long c.</param>
  1091. /// <param name="d">long d.</param>
  1092. public v256(long a, long b, long c, long d)
  1093. {
  1094. this = default(v256);
  1095. SLong0 = a;
  1096. SLong1 = b;
  1097. SLong2 = c;
  1098. SLong3 = d;
  1099. }
  1100. /// <summary>
  1101. /// Splat a single ulong across the v256
  1102. /// </summary>
  1103. /// <param name="f">Splatted ulong.</param>
  1104. public v256(ulong f)
  1105. {
  1106. this = default(v256);
  1107. ULong0 = ULong1 = ULong2 = ULong3 = f;
  1108. }
  1109. /// <summary>
  1110. /// Initialize the v256 with 4 ulongs
  1111. /// </summary>
  1112. /// <param name="a">ulong a.</param>
  1113. /// <param name="b">ulong b.</param>
  1114. /// <param name="c">ulong c.</param>
  1115. /// <param name="d">ulong d.</param>
  1116. public v256(ulong a, ulong b, ulong c, ulong d)
  1117. {
  1118. this = default(v256);
  1119. ULong0 = a;
  1120. ULong1 = b;
  1121. ULong2 = c;
  1122. ULong3 = d;
  1123. }
  1124. /// <summary>
  1125. /// Initialize the v256 with 2 v128's
  1126. /// </summary>
  1127. /// <param name="lo">Low half of v128.</param>
  1128. /// <param name="hi">High half of v128.</param>
  1129. public v256(v128 lo, v128 hi)
  1130. {
  1131. this = default(v256);
  1132. Lo128 = lo;
  1133. Hi128 = hi;
  1134. }
  1135. }
  1136. }