{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":597511570,"defaultBranch":"main","name":"simd-prototyping","ownerLogin":"mattkretz","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-02-04T19:19:38.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3306474?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1721918552.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"ad65d108a4bc690b301c86bb8525882009d731ea","ref":"refs/heads/simd_namespace","pushedAt":"2024-07-25T14:42:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"cpp26::simd::vec instead of std::simd, redesign load/store\n\n- Implement the simd namespace exploration for P3287. This renames\nbasic_simd to basic_vec and basic_simd_mask to basic_mask.\n\n- Implement simd and simd-generic concepts as shown (but not proposed)\nin P3287.\n\n- Implement non-member load/store and conversion from static-size ranges\nas explored in P3299.\n\n- Remove simd_size_v from public API (P1928)\n\n- Implement preconditions as IFNDR + optional runtime assert/trap.\n\n- Add README.md which documents several macros for options: cpp26 vs std\nnamespace, simd is (not) a range, the above IFNDR, ...\n\n- Start of a simd_math.h implementation with experimental use of\nlibmvec.\n\nincomplete ChangeLog:\n\n\t* Makefile.common: Build as C++26. Hardcode GCC toolchain for\n\tClang. Handle obj/ as target/dependency.\n\t* README.md: New file.\n\t* codegen/reduce.c++: Use simd::vec instead of std::simd. Adjust\n\tfor improved GCC 15 code-gen.\n\t* codegen/select.c++: Use simd::vec instead of std::simd. Ditto\n\tfor select.\n\t* codegen/simd_cat.c++: Use simd::vec instead of std::simd.\n\t* constexpr_tests.c++: Adjust for renamed simd::vec and\n\tsimd::mask. Adjust for renamed internals. Remove load\n\tconstructor checks. Modify check for disabled simd::vec to look\n\tfor 0 size. Add test for generator ctor interface.\n\t* detail.h: Move from std:: to cpp26::simd::. Add\n\t__glibcxx_simd_precondition macro. Test for _GLIBCXX_ASSERTIONS\n\tinstead of _GLIBCXX_DEBUG_UB.\n\t(__static_range_size): tuple_size is only a valid range size if\n\tthe given type also has a range_value_t.\n\t* detail_bitmask.h: Move from std:: to cpp26::simd::. Qualify\n\tconcepts with std:: to avoid simd:: variants.\n\t* flags.h: Move from std:: to cpp26::simd:: and remove simd_\n\tprefixes. Add flag_allow_partial_store.\n\t* fwddecl.h: Move from std:: to cpp26::simd::. Moved\n\t__vectorizable concept here from simd_meta.h. Rename basic_simd\n\tto basic_vec, simd to vec, basic_simd_mask to basic_mask, and\n\tsimd_mask to mask.\n\t* interleave.h: Move from std:: to cpp26::simd::.\n\t* iota.h: Move from std:: to cpp26::simd::.\n\t* mask_reductions.h: Move from std:: to cpp26::simd::.\n\t* permute.h: Move from std:: to cpp26::simd::.\n\t* prefix_sum/ce.cpp: Move from std:: to cpp26::simd:: and rename\n\tto basic_vec.\n\t* simd: Move from std:: to cpp26::simd::.\n\t* simd_abi.h: Move from std:: to cpp26::simd::.\n\t* simd_builtin.h: Move from std:: to cpp26::simd::.\n\t* simd_config.h:\n\t* simd_converter.h: Move from std:: to cpp26::simd::.\n\t* simd_generic.h: New file.\n\t* simd.h: Move from std:: to cpp26::simd::.\n\t* simd_iterator.h: Move from std:: to cpp26::simd::.\n\t* simd_mask.h: Move from std:: to cpp26::simd::.\n\t* simd_math.h: New file.\n\t* simd_meta.h: Move from std:: to cpp26::simd::.\n\t* simd_reductions.h: Move from std:: to cpp26::simd::.\n\t* simd_scalar.h: Move from std:: to cpp26::simd::.\n\t* simd_split.h: Move from std:: to cpp26::simd::.\n\t* simd_x86.h: Move from std:: to cpp26::simd::.\n\t* tests/misc.cpp:\n\t* tests/shift_left.cpp:\n\t* tests/shift_right.cpp:\n\t* tests/unittest.h:\n\t* tests/unittest_pch.h:\n\t* vec_detail.h: Move from std:: to cpp26::simd::.\n\t* x86_detail.h: Move from std:: to cpp26::simd::.","shortMessageHtmlLink":"cpp26::simd::vec<T> instead of std::simd<T>, redesign load/store"}},{"before":null,"after":"626fd8403ad732894491a33862c1c3f6b1ba9663","ref":"refs/heads/non-member_load_store_and_generate","pushedAt":"2024-05-17T09:26:11.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Explore non-member simd_load\n\nmasked simd_load is still missing\n\nChangeLog:\n\n\t* examples_load.asm: New file.\n\t* examples_load.cpp: New file.\n\t* flags.h (_LoadDefaultInit, simd_flag_default_init): New.\n\t* simd.h: Remove all load ctors except implicit conversion from\n\tstatically sized ranges. Remove member copy_from.\n\t(simd_load): New.","shortMessageHtmlLink":"Explore non-member simd_load"}},{"before":null,"after":"313f50a95247e042f2c20ac181bbd115c5bd5219","ref":"refs/heads/explore_widening_reductions","pushedAt":"2024-05-16T15:30:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"WIP\n\nChangeLog:\n\n\t* fwddecl.h (reduce): Deduce return type.\n\t* simd_reductions.h (__split_and_invoke_once): Let __binary_op\n\tdetermine the value-type of the return type simd.\n\t(reduce): Deduce return type.","shortMessageHtmlLink":"WIP"}},{"before":null,"after":"c4cede48a86ffa0998e4eb71367035820a5cc0b0","ref":"refs/heads/simd","pushedAt":"2024-05-16T15:20:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"WIP\n\nChangeLog:\n\n\t* fwddecl.h (representation_type_t): New.\n\t* simd.h (unsupported basic_simd): Adjust constraints for\n\tindirectly vectorizable basic_simd.\n\t(basic_simd): Add partial specialization for indirectly\n\tvectorizable value-types.\n\t* simd_config.h (_GLIBCXX_SIMD_LIST_COMPARES): New.\n\t(_GLIBCXX_SIMD_ALL_COMPARES): New.\n\t* simd_meta.h (__convertible_from): New concept.\n\t* tests/fixed_point.h: New file.\n\t* tests/udt_simd.cpp: New file.\n\t* udt_simd.h: New file.","shortMessageHtmlLink":"WIP"}},{"before":"9a0a2e5534316b92d1d008015b5c52bd18bb6632","after":"9b5b1e467cd8e49c962b613e1832dc27d7f3f4b2","ref":"refs/heads/main","pushedAt":"2024-05-16T15:16:58.000Z","pushType":"push","commitsCount":22,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Fix constraint (copy and paste error)\n\nChangeLog:\n\n\t* simd.h (operator!): Fix constraint to test for ! on the\n\tvalue_type.","shortMessageHtmlLink":"Fix constraint (copy and paste error)"}},{"before":"25210b77c16dde3ec36f45c08430f42458bc2dce","after":"9a0a2e5534316b92d1d008015b5c52bd18bb6632","ref":"refs/heads/main","pushedAt":"2024-02-16T13:40:38.000Z","pushType":"push","commitsCount":36,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Import from simd-benchmarks repo; add reduce benchmark\n\nChangeLog:\n\n\t* benchmarks/bench.h: New file.\n\t* benchmarks/benchmark-mode.sh: New file.\n\t* benchmarks/reduce.cpp: New file.\n\t* benchmarks/run.sh: New file.","shortMessageHtmlLink":"Import from simd-benchmarks repo; add reduce benchmark"}},{"before":"5e10736e37bb81433d1d841ec3e67201a3309a18","after":"25210b77c16dde3ec36f45c08430f42458bc2dce","ref":"refs/heads/main","pushedAt":"2024-02-08T13:40:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Complete mask reduction tests; add load tests\n\nChangeLog:\n\n\t* tests/misc.cpp (mask_reductions): New set of tests.\n\t(loads): New test.\n\t* tests/unittest_pch.h (verify): New.\n\t(log_failure): Add single argument variant.","shortMessageHtmlLink":"Complete mask reduction tests; add load tests"}},{"before":"38d125bf97791ebb0d8fc9be9f7f74c633295a13","after":"5e10736e37bb81433d1d841ec3e67201a3309a18","ref":"refs/heads/main","pushedAt":"2024-02-06T09:55:13.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Improve icecream support and building locally while icecream is set up.\n\nUse icerun for running tests to enable -j.\n\nChangeLog:\n\n\t* Makefile: Run tests in icerun. Compile and link in one step if\n\tDIRECT is non-empty. Document DIRECT in help target.\n\tUnconditionally set DIRECT=1 without icecream. Build without\n\ticecream wrapper but with icerun when DIRECT is non-empty.","shortMessageHtmlLink":"Improve icecream support and building locally while icecream is set up."}},{"before":"acbb219878e1eab7eb689fb8effa44eca3018273","after":"38d125bf97791ebb0d8fc9be9f7f74c633295a13","ref":"refs/heads/main","pushedAt":"2024-02-05T15:40:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Much faster and complete Makefile\n\n60k check targets:\n- 0.6s for 'make help', listing all 60k targets\n- 0.5s for 'make debug', parsing the whole Makefile and a bit of output\n\nAll check targets are shuffled differently on every make invocation\nwithout significant overhead. The 'check' target works without sub-make,\nwhereas all the other check-% targets recurs once (which might become a\nproblem with too long command lines).\n\nPer -march, a header is generated, a PCH is built from it, and the\nheader is automatically included into the builds.\n\nChangeLog:\n\n\t* Makefile: Rewrite.","shortMessageHtmlLink":"Much faster and complete Makefile"}},{"before":"c8c86720054d0eb57b5ba3287820b31c0a12e3dd","after":"acbb219878e1eab7eb689fb8effa44eca3018273","ref":"refs/heads/main","pushedAt":"2024-02-05T15:21:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Much faster and complete Makefile\n\n60k check targets:\n- 0.6s for 'make help', listing all 60k targets\n- 0.5s for 'make debug', parsing the whole Makefile and a bit of output\n\nAll check targets are shuffled differently on every make invocation\nwithout significant overhead. The 'check' target works without sub-make,\nwhereas all the other check-% targets recurs once (which might become a\nproblem with too long command lines).\n\nPer -march, a header is generated, a PCH is built from it, and the\nheader is automatically included into the builds.\n\nChangeLog:\n\n\t* Makefile: Rewrite.","shortMessageHtmlLink":"Much faster and complete Makefile"}},{"before":"a1f494345adfc52d6139831374c83ffbfb21bb8a","after":"c8c86720054d0eb57b5ba3287820b31c0a12e3dd","ref":"refs/heads/main","pushedAt":"2024-02-05T14:47:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Much faster and complete Makefile\n\n60k check targets:\n- 0.6s for 'make help', listing all 60k targets\n- 0.5s for 'make debug', parsing the whole Makefile and a bit of output\n\nAll check targets are shuffled differently on every make invocation\nwithout significant overhead. The 'check' target works without sub-make,\nwhereas all the other check-% targets recurs once (which might become a\nproblem with too long command lines).\n\nPer -march, a header is generated, a PCH is built from it, and the\nheader is automatically included into the builds.\n\nChangeLog:\n\n\t* Makefile: Rewrite.","shortMessageHtmlLink":"Much faster and complete Makefile"}},{"before":"f54817d34a73313ea4d5bc8ce9c7707168aac29f","after":"a1f494345adfc52d6139831374c83ffbfb21bb8a","ref":"refs/heads/main","pushedAt":"2024-02-03T10:11:31.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"ABI tparm change and build fixes\n\nChange _VecAbi and _Avx512Abi to use number of elements as template\nparameter instead of number of bytes. This simplifies _S_size,\n_S_full_size, and _S_is_partial, which don't need to be templates\nanymore. More importantly, it removes the need for passing the\nvalue-type as a template parameter to some of the Impl functions.\n\nRemove unused _SimdBase and _MaskBase.\n\nHave _SimdTraits depend on build flags, adding a new _SimdMaskTraits to\nwork out the right ABI for AVX w/o AVX2.\n\nChangeLog:\n\n\t* arm_detail.h: Include detail.h.\n\t* constexpr_tests.c++: Add sanity checks relating to AVX w/o\n\tAVX2.\n\t* detail.h (__make_dependent): New.\n\t(_SimdTraits): Add __build_flags template argument.\n\t(_SimdMaskTraits): New.\n\t* fwddecl.h (_VecAbi, _Avx512Abi): Change template parameter\n\tname.\n\t(__native_abi_impl_recursive): Adjust for change from bytes to\n\twidth.\n\t(_DeduceAbi): Move default definition to simd_abi.h.\n\t* power_detail.h: Include detail.h.\n\t* simd.h (simd::mask_type): Test for void not vectorizable to\n\tdocument intent.\n\t(basic_simd(basic_simd_mask) deduction guide): Defer ABI tag\n\tdeduction to __simd_abi_for_mask trait.\n\t* simd_abi.h: Adjust for ABI tag template parameter change from\n\tbytes to width.\n\t(_AbiCombine): Move from std::__detail to std namespace.\n\t(_SimdImplArray::_S_masked_assign): Handle some AVX w/o AVX2\n\tcases.\n\t* simd_builtin.h: Adjust for ABI tag template parameter change\n\tfrom bytes to width.\n\t* simd_mask.h (__simd_abi_for_mask): New.\n\t* simd_scalar.h: Remove template heads from _S_size,\n\t_S_full_size, and _S_is_partial. Remove _SimdBase, _MaskBase.\n\t* simd_x86.h: Adjust for ABI tag template parameter change.\n\t(_SimdMaskTraits): Specialize for the AVX w/o AVX2 case.\n\t(_ImplBuiltin::_S_load): Overload for AVX512 bitmasks.\n\t(_ImplBuiltin::_S_select_bitmask): Swap argument names. Enable\n\tconstexpr eval.\n\t(_ImplBuiltin::_S_select): Enable constexpr eval. Disambiguate\n\toverloads when _MaskMember<_TV> is a bitmask type.\n\t(_ImplBuiltin::_S_masked_assign): Broadcast scalar argument to a\n\tvector when calling _S_select_bitmask.\n\t(_ImplBuiltin::_S_bit_and, _S_bit_or, _S_bit_xor, _S_to_bits):\n\tOverload for bitmasks.\n\t(_ImplBuiltin::_S_bit_shift_right, _S_bit_shift_left): Replace\n\tseveral reinterpret_cast with __vec_bitcast_trunc on return.\n\tAdjust ABI/Impl type needed after template parameter change.\n\tFix conditions for sizeof<16 inputs.\n\t(_ImplBuiltin::_S_ldexp): Use __make_dependent to instantiate\n\t_Rebind only on use of _S_ldexp. Start of supporting sizeof<16\n\tinputs.\n\t* unittest.h (instantiate_tests_for_value_type): Sanity check\n\tthat if simd is usable, then the corresponding mask is\n\talso usable.\n\t* x86_detail.h (__x86_builtin_fp): New.\n\t(__to_x86_intrin): Normalize floating-point types using\n\t__x86_builtin_fp.","shortMessageHtmlLink":"ABI tparm change and build fixes"}},{"before":"e00c67d7271a552014e721e70a475dbd0219accf","after":"f54817d34a73313ea4d5bc8ce9c7707168aac29f","ref":"refs/heads/main","pushedAt":"2023-11-21T08:56:39.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Avoid deduced return type to avoid type mismatch\n\nChangeLog:\n\n\t* detail.h:","shortMessageHtmlLink":"Avoid deduced return type to avoid type mismatch"}},{"before":"9959b0aa546ca97362d08240e6fa9c19da9d85fd","after":"e00c67d7271a552014e721e70a475dbd0219accf","ref":"refs/heads/main","pushedAt":"2023-11-20T15:44:08.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Simplify simd range ctor impl\n\nChangeLog:\n\n\t* simd.h:","shortMessageHtmlLink":"Simplify simd range ctor impl"}},{"before":"5c561b6bb99d53b5bb0e4caea2dd82de01c3441f","after":"9959b0aa546ca97362d08240e6fa9c19da9d85fd","ref":"refs/heads/main","pushedAt":"2023-10-22T20:11:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Work around clang errors\n\nChangeLog:\n\n\t* constexpr_wrapper.h:","shortMessageHtmlLink":"Work around clang errors"}},{"before":"d789b8badb778671ac51a00cfffef46d7fe1c3ed","after":"5c561b6bb99d53b5bb0e4caea2dd82de01c3441f","ref":"refs/heads/main","pushedAt":"2023-10-20T19:42:20.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Let simd and simd_mask model random_access_range\n\nChangeLog:\n\n\t* Makefile: Add -fconcepts-diagnostics-depth=3.\n\t* constexpr_tests.c++: Test for random_access_range and not\n\toutput_range.\n\t* simd.h (simd::begin, simd::end): New.\n\t* simd_iterator.h: New file.\n\t* simd_mask.h (simd_mask::begin, simd_mask::end): New.","shortMessageHtmlLink":"Let simd and simd_mask model random_access_range"}},{"before":"5d57f861ffaed5b9f71ea073410ee455bf1b4ea5","after":"d789b8badb778671ac51a00cfffef46d7fe1c3ed","ref":"refs/heads/main","pushedAt":"2023-09-28T16:23:29.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Ensure proper inlining\n\nChangeLog:\n\n\t* permute.h (simd_permute): Mark helper lambda as always_inline.","shortMessageHtmlLink":"Ensure proper inlining"}},{"before":"1aea544a157311aec89e8ab05d2fc890117523e2","after":"5d57f861ffaed5b9f71ea073410ee455bf1b4ea5","ref":"refs/heads/main","pushedAt":"2023-09-28T16:06:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Fix converting ctors\n\n... to work without conversion to private base\n\nChangeLog:\n\n\t* simd.h (basic_simd::basic_simd): Use _M_as_base() to convert\n\tto base class.\n\t(basic_simd::_M_as_base): New.\n\t* simd_mask.h (basic_simd_mask::basic_simd_mask): Call\n\t_Impl::_S_convert directly.","shortMessageHtmlLink":"Fix converting ctors"}},{"before":"b1575298c816b52f2b2be31917b4af357cd04354","after":"1aea544a157311aec89e8ab05d2fc890117523e2","ref":"refs/heads/main","pushedAt":"2023-07-10T08:37:51.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Test reduce codegen and add x86 optimizations\n\nChangeLog:\n\n\t* Makefile:\n\t* detail.h:\n\t* simd.h:\n\t* simd_mask.h:\n\t* simd_reductions.h:\n\t* codegen/reduce.c++: New file.","shortMessageHtmlLink":"Test reduce codegen and add x86 optimizations"}},{"before":"12e286907252c069c9e1f0ba0a670c738d56648e","after":"b1575298c816b52f2b2be31917b4af357cd04354","ref":"refs/heads/main","pushedAt":"2023-07-03T08:29:26.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Define simd_select_impl bool overload using same_as\n\nChangeLog:\n\n\t* simd_mask.h:\n\t* tests.h:","shortMessageHtmlLink":"Define simd_select_impl bool overload using same_as<bool>"}},{"before":"b52a88b4085b5491321a2ed006c3d57fae2d9fa9","after":null,"ref":"refs/heads/simd_select","pushedAt":"2023-06-27T06:39:04.918Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"}},{"before":"864d10ba04e205a0c812b4e13660eda21826e3eb","after":"12e286907252c069c9e1f0ba0a670c738d56648e","ref":"refs/heads/main","pushedAt":"2023-06-27T06:38:18.960Z","pushType":"push","commitsCount":1,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Simplify to simd_select instead of CPO\n\nChangeLog:\n\n\t* conditional_operator/ce.cpp: Call qualified and unqualified\n\tsimd_select instead of std::conditional_operator.\n\t* simd.h: Rename to simd_select_impl from\n\tconditional_operator_impl.\n\t* simd_mask.h: Likewise.\n\t(simd_select): Replace conditional_operator CPO by two\n\tsimd_select overloads for simd and T.","shortMessageHtmlLink":"Simplify to simd_select instead of CPO"}},{"before":null,"after":"b52a88b4085b5491321a2ed006c3d57fae2d9fa9","ref":"refs/heads/simd_select","pushedAt":"2023-06-27T06:19:02.474Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Simplify to simd_select instead of CPO\n\nChangeLog:\n\n\t* conditional_operator/ce.cpp: Call qualified and unqualified\n\tsimd_select instead of std::conditional_operator.\n\t* simd.h: Rename to simd_select_impl from\n\tconditional_operator_impl.\n\t* simd_mask.h: Likewise.\n\t(simd_select): Replace conditional_operator CPO by two\n\tsimd_select overloads for simd and T.","shortMessageHtmlLink":"Simplify to simd_select instead of CPO"}},{"before":"8de88fcebb9454893476ab5156030c8239906228","after":"864d10ba04e205a0c812b4e13660eda21826e3eb","ref":"refs/heads/main","pushedAt":"2023-06-27T06:11:18.163Z","pushType":"push","commitsCount":7,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Simple peak-FLOP test\n\nChangeLog:\n\n\t* peak_flop/ce.cpp: New file.","shortMessageHtmlLink":"Simple peak-FLOP test"}},{"before":"7340334d0161867f057c5d86492e291dbddd1123","after":"8de88fcebb9454893476ab5156030c8239906228","ref":"refs/heads/main","pushedAt":"2023-06-23T19:14:39.441Z","pushType":"push","commitsCount":1,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Test and fix mask unary minus\n\nChangeLog:\n\n\t* simd_mask.h:\n\t* tests.h:","shortMessageHtmlLink":"Test and fix mask unary minus"}},{"before":"6b0d5ae728da7b8a01bfa3be853c395b996b1982","after":"7340334d0161867f057c5d86492e291dbddd1123","ref":"refs/heads/main","pushedAt":"2023-06-23T19:12:04.972Z","pushType":"push","commitsCount":10,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Implement _AbiCombine to replace fixed_size from the TS\n\nThe TS fixed_size guarantee of passing via the stack is not something we\nwant to reproduce in the C++26 std::simd implementation. Therefore,\nreplace the necessary parts in this prototype, while keeping most of the\nimplementation as-is.\n\nChangeLog:\n\n\t* detail.h: Move to simd_abi.h\n\t* fwddecl.h: Move basic_simd and basic_simd_mask fwd decl to\n\tsimd_abi.h, which needs it.\n\t* simd_abi.h (_AbiCombine): New ABI tag based off fixed_size.\n\tIncrease max size to at least 64 or 4 * native width.\n\t(_MaskImplAbiCombine): Modified mask impl for correct\n\tbasic_simd_mask signatures.\n\t(_DeduceAbi): New ABI deduction facility to deduce _AbiCombine\n\tinstead of fixed_size.\n\t* tests.h: Add a _AbiCombine test.","shortMessageHtmlLink":"Implement _AbiCombine to replace fixed_size from the TS"}},{"before":"22b5190d04ee6dfe0837b5586bbe7fdcab3f1333","after":"6b0d5ae728da7b8a01bfa3be853c395b996b1982","ref":"refs/heads/main","pushedAt":"2023-06-19T06:50:25.580Z","pushType":"push","commitsCount":4,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Remove long double from __vectorizable\n\nChangeLog:\n\n\t* detail.h (__vectorizable): Reject long double.","shortMessageHtmlLink":"Remove long double from __vectorizable"}},{"before":"6364127a7043ee81c967e1d79c688f5337e09837","after":"22b5190d04ee6dfe0837b5586bbe7fdcab3f1333","ref":"refs/heads/main","pushedAt":"2023-06-13T21:02:33.003Z","pushType":"push","commitsCount":8,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Add interleave prototype (already tested)\n\nChangeLog:\n\n\t* interleave.h: New file.","shortMessageHtmlLink":"Add interleave prototype (already tested)"}},{"before":"c49c4e4c56fb164b91add37d9a027f9d3fe28659","after":"6364127a7043ee81c967e1d79c688f5337e09837","ref":"refs/heads/main","pushedAt":"2023-06-13T17:58:03.654Z","pushType":"push","commitsCount":1,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"Make __data work after private inheritance\n\nChangeLog:\n\n\t* simd.h: Add _M_data and hidden friend __data.\n\t* simd_mask.h: Likewise.","shortMessageHtmlLink":"Make __data work after private inheritance"}},{"before":"2cf9f0352487411a0c195838893a97f72aeba50a","after":"c49c4e4c56fb164b91add37d9a027f9d3fe28659","ref":"refs/heads/main","pushedAt":"2023-06-13T17:51:43.227Z","pushType":"push","commitsCount":1,"pusher":{"login":"mattkretz","name":"Matthias Kretz","path":"/mattkretz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3306474?s=80&v=4"},"commit":{"message":"More work on the prefix-sum demo","shortMessageHtmlLink":"More work on the prefix-sum demo"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNy0yNVQxNDo0MjozMi4wMDAwMDBazwAAAASJIVRR","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNy0yNVQxNDo0MjozMi4wMDAwMDBazwAAAASJIVRR","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wNi0xM1QxNzo1MTo0My4yMjc4NjBazwAAAANAtqXV"}},"title":"Activity ยท mattkretz/simd-prototyping"}