0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-12-28 00:14:07 +01:00
Commit graph

49 commits

Author SHA1 Message Date
Jason Volk
28887b0dc0 ircd::simd: Additional block-aligned fixed-stride half-duplex stream template. 2020-10-07 01:27:49 -07:00
Jason Volk
638efbc0e9 ircd::simd: Make stream template into enable_if complex w/ closure deductions. 2020-10-07 01:07:51 -07:00
Jason Volk
ef715a637d ircd::simd: Add accumulate template. 2020-10-06 19:15:42 -07:00
Jason Volk
7f63dc07ef ircd::simd: Simplify stream template; deduce unaligned type. 2020-10-06 19:15:42 -07:00
Jason Volk
112151249b ircd::simd: Use template as basis for unaligned wrapper; simplify suite.
ircd::simd: Rename unaligned header.
2020-10-06 19:15:40 -07:00
Jason Volk
9cee52fff0 ircd::simd: Add all() template w/ efficient word specializations. 2020-09-28 00:27:30 -07:00
Jason Volk
38a52f76d5 ircd::simd: Add any() template w/ efficient word specializations. 2020-09-28 00:27:30 -07:00
Jason Volk
42fd88d169 ircd::simd: Add broad_cast template without required deduction argument. 2020-09-27 14:57:07 -07:00
Jason Volk
4168f2899f ircd::simd: Add scatter template. 2020-09-20 06:41:38 -07:00
Jason Volk
dc14f2f803 ircd::simd: Reorg existing mask related into header. 2020-09-20 06:41:38 -07:00
Jason Volk
972fbcc97d ircd::simd: Add rotate left/right template interfaces. 2020-09-20 06:41:38 -07:00
Jason Volk
13c2df9992 ircd::simd: Add missing non-intrinsic alternative templates at 128 bit shift.
ircd::simd: Split shift left and right suites into headers.
2020-09-20 06:41:38 -07:00
Jason Volk
818241db86 ircd::simd: Add vpgather achieving template. 2020-09-20 06:41:38 -07:00
Jason Volk
4a59ea5b4a ircd::simd: Add template typedef for lane type. 2020-09-20 05:15:50 -07:00
Jason Volk
13d267cefb ircd::simd: Ensure return counts are bound to max values. 2020-09-13 08:42:34 -07:00
Jason Volk
8ecb2d9653 ircd::simd: Fix comment. [ci skip] 2020-09-10 23:50:47 -07:00
Jason Volk
84564aee5f ircd::simd: Add a streaming transform boilerplate template for the common pattern.
ircd::simd: Add a streaming consumer boilerplate template for the common pattern.

ircd::json: Simplify w/ stream templates; update counter lane convention.
2020-09-09 04:47:27 -07:00
Jason Volk
c9156b0f99 ircd::simd: Add typedef for corresponding type in the unaligned wrapper. 2020-09-09 02:12:37 -07:00
Jason Volk
b738d95330 ircd::simd: Remove precocious 512-shift intrinsic templates. 2020-09-08 22:27:06 -07:00
Jason Volk
97248b2f44 ircd::simd: Refactor typedefs to not require external header. 2020-09-06 00:11:17 -07:00
Jason Volk
82308ee4b3 ircd::simd: Consolidate sum_ templates into lateral template template. 2020-09-05 14:34:48 -07:00
Jason Volk
0d586d6d0c ircd::simd: Add lower()/upper() templates for splitting. 2020-09-04 00:16:18 -07:00
Jason Volk
7557040542 ircd::simd: Add sum_add() template suite. 2020-09-03 21:53:59 -07:00
Jason Volk
afdc3ef794 ircd::simd: Fix inclusion define conflict. 2020-09-03 21:14:43 -07:00
Jason Volk
3955c80b34 ircd::simd: Improve vectorization characteristics of reduce suite. 2020-09-01 21:41:02 -07:00
Jason Volk
c87e444cda ircd::simd: Add reduce util suite. 2020-08-31 12:10:41 -07:00
Jason Volk
77f858d27d ircd::simd: Use explicit instantiations w/ optimal conversions for lzcnt/tzcnt generation. 2020-08-23 02:32:54 -07:00
Jason Volk
d2a2b7aed1 ircd::simd: Improve x-platform generation of lzcnt/tzcnt. 2020-08-23 02:32:54 -07:00
Jason Volk
146a08dabd ircd::simd: Fix static emission of traits and related templates. 2020-08-23 02:32:54 -07:00
Jason Volk
61287cdbe2 ircd::simd: Split unaligned type related to separate header. 2020-08-10 03:41:06 -07:00
Jason Volk
8443dcf3bb ircd::simd: Macro and diagnostic adjustments for GCC. 2020-08-09 07:44:56 -07:00
Jason Volk
f89f15eebd ircd::simd: Minor typedef cleanup. [ci skip] 2020-08-09 07:03:19 -07:00
Jason Volk
52bc00673e ircd::simd: Redress unaligned typedefs for proper instruction generation. 2020-08-07 02:14:27 -07:00
Jason Volk
97deec5c68 ircd::simd: Additional vector sizes and scaling template for shift suite. 2020-08-06 23:34:37 -07:00
Jason Volk
3a70943b94 ircd::simd: Split bit manipulations suites to headers; renames. 2020-07-17 16:46:43 -07:00
Jason Volk
291038a014 ircd::simd: Portabilities for clz on various x86. 2020-07-17 07:17:17 -07:00
Jason Volk
0e37275773 ircd::simd: Add broad_cast template. 2020-07-15 17:43:17 -07:00
Jason Volk
63f43ba60a ircd::simd: Attribute target lzcnt feature. 2020-07-12 15:21:00 -07:00
Jason Volk
04e87b0095 ircd::simd: Fix constexpr-if failure in gcc-8. 2020-07-10 02:41:02 -07:00
Jason Volk
b1a60451b7 ircd::simd: Simplify traits constexprs. 2020-07-09 20:18:35 -07:00
Jason Volk
2f9aa15fc0 ircd::utf: Eliminate recasting for shift. 2020-07-09 19:45:42 -07:00
Jason Volk
6195be54a5 ircd::simd: Split and improve byte shifter interface. 2020-07-06 17:31:04 -07:00
Jason Volk
35bee76625 ircd::simd: Add clz/ctz convenience template suite for now; minor reorg. 2020-07-01 16:28:21 -07:00
Jason Volk
aec21af0e4 ircd::simd: Add population mask convenience template. 2020-07-01 07:03:11 -07:00
Jason Volk
abea8ad5b8 ircd::simd: Use value arguments for optimal calling convention. 2020-06-28 18:22:18 -07:00
Jason Volk
86aa96fa91 ircd::simd: Split lane_cast into header. 2020-06-28 16:37:00 -07:00
Jason Volk
cdc6c03ec6 ircd::simd: Improve lane_cast related template. 2020-06-27 16:31:57 -07:00
Jason Volk
d26fed6a20 ircd::simd: Add basic traits constexprs. 2020-06-27 16:31:57 -07:00
Jason Volk
ac21ebdc90 ircd::simd: Expose SIMD utils to standard include group; split header into dir. 2020-06-27 16:31:57 -07:00