Jason Volk
cda10cc799
ircd::simd::support: Fix formatting; fix avx512f macro name; add vbmi/vbmi2.
2020-10-20 22:19:34 -07:00
Jason Volk
913ec123e3
ircd::simd: Rename lateral to reduce.
2020-10-11 10:10:50 -07:00
Jason Volk
c80dc79e36
ircd::simd: Minor fix indentation.
2020-10-11 10:10:50 -07:00
Jason Volk
019010336b
ircd::simd: Add constexpr feature support suite.
2020-10-10 05:54:15 -07:00
Jason Volk
5e21435e1a
ircd::simd: Add closure to stream interface; include in stack.
2020-10-10 02:47:53 -07:00
Jason Volk
d4de92c61f
ircd::simd: Add various ircd::buffer convenience overloads to interface.
2020-10-10 01:16:39 -07:00
Jason Volk
c49e546be5
ircd::simd: Categorical interface renaming for stream related.
2020-10-10 00:43:59 -07:00
Jason Volk
de0650d3f7
ircd: Reorg simd.h / buffer.h interface dependency relationship.
2020-10-10 00:43:59 -07:00
Jason Volk
b63d88d195
ircd::simd: Relax assertion on unused lane.
2020-10-09 09:06:17 -07:00
Jason Volk
5b63366e5d
ircd::simd: Add pointer cast template w/ alignment assertion.
2020-10-09 09:06:17 -07:00
Jason Volk
a88934f4e7
ircd::simd: Add ostream suite to interface.
2020-10-09 09:06:17 -07:00
Jason Volk
20f9301158
ircd::simd: Split and improve stream template util naming.
2020-10-09 03:50:24 -07:00
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