rust/compiler
bors 0df0662ee0 Auto merge of #104693 - jhorstmann:use-high-bit-of-mask-for-select, r=workingjubilee
Consistently use the highest bit of vector masks when converting to i1 vectors

This improves the codegen for vector `select`, `gather`, `scatter` and boolean reduction intrinsics and fixes rust-lang/portable-simd#316.

The current behavior of most mask operations during llvm codegen is to truncate the mask vector to <N x i1>, telling llvm to use the least significat bit. The exception is the `simd_bitmask` intrinsics, which already used the most signifiant bit.

Since sse/avx instructions are defined to use the most significant bit, truncating means that llvm has to insert a left shift to move the bit into the most significant position, before the mask can actually be used.

Similarly on aarch64, mask operations like blend work bit by bit, repeating the least significant bit across the whole lane involves shifting it into the sign position and then comparing against zero.

By shifting before truncating to <N x i1>, we tell llvm that we only consider the most significant bit, removing the need for additional shift instructions in the assembly.
2025-01-26 22:45:21 +00:00
..
rustc switch jemalloc-sys back to tikv-jemalloc-sys, and update to 0.6.0 2024-12-03 08:56:33 +00:00
rustc_abi Auto merge of #135047 - Flakebi:amdgpu-kernel-cc, r=workingjubilee 2025-01-17 04:36:09 +00:00
rustc_arena Add inherent versions of MaybeUninit methods for slices 2025-01-11 23:57:00 -05:00
rustc_ast Handle parenthesised infer args 2025-01-23 06:01:36 +00:00
rustc_ast_ir Add sugar for &pin (const|mut) types 2024-10-07 11:15:04 -07:00
rustc_ast_lowering Handle parenthesised infer args 2025-01-23 06:01:36 +00:00
rustc_ast_passes Auto merge of #134299 - RalfJung:remove-start, r=compiler-errors 2025-01-21 19:46:20 +00:00
rustc_ast_pretty Rename PatKind::Lit to Expr 2025-01-08 07:34:59 +00:00
rustc_attr_data_structures Rename OptimizeAttr::None to Default 2025-01-24 19:34:01 +00:00
rustc_attr_parsing Run clippy --fix for unnecessary_map_or lint 2025-01-19 19:15:00 +00:00
rustc_baked_icu_data Delete the cfg(not(parallel)) serial compiler 2024-11-12 13:38:58 +00:00
rustc_borrowck Rollup merge of #136031 - lqd:polonius-debugger-episode-1, r=compiler-errors 2025-01-25 23:27:01 -05:00
rustc_builtin_macros Rollup merge of #135557 - estebank:wtf8, r=fee1-dead 2025-01-22 20:37:24 +01:00
rustc_codegen_cranelift Auto merge of #134299 - RalfJung:remove-start, r=compiler-errors 2025-01-21 19:46:20 +00:00
rustc_codegen_gcc Rollup merge of #135581 - EnzymeAD:refactor-codgencx, r=oli-obk 2025-01-24 23:25:42 +01:00
rustc_codegen_llvm Consistently use the most significant bit of vector masks 2025-01-26 16:44:23 +01:00
rustc_codegen_ssa Shorten linker output even more when --verbose is not present 2025-01-25 16:04:52 -05:00
rustc_const_eval Fix typo in const stability error message 2025-01-25 21:43:22 +08:00
rustc_data_structures bumpt compiler and tools to windows 0.59 2025-01-21 16:48:44 +03:00
rustc_driver Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_driver_impl Rollup merge of #135880 - bjorn3:misc_driver_refactors, r=oli-obk 2025-01-23 19:54:26 +01:00
rustc_error_codes Auto merge of #133154 - estebank:issue-133137, r=wesleywiser 2025-01-25 11:41:21 +00:00
rustc_error_messages Convert some Into impls into From impls 2024-12-31 01:56:33 +00:00
rustc_errors Auto merge of #119286 - jyn514:linker-output, r=bjorn3 2025-01-25 17:16:33 +00:00
rustc_expand Auto merge of #134478 - compiler-errors:attr-span, r=oli-obk 2025-01-22 14:46:41 +00:00
rustc_feature Rollup merge of #134300 - RalfJung:remove-dead-attrs, r=chenyukang 2025-01-25 23:15:22 +01:00
rustc_fluent_macro use tracked_path in rustc_fluent_macro 2024-10-19 22:32:38 +08:00
rustc_fs_util Couple of changes to make it easier to compile rustc for wasm 2024-09-26 19:51:14 +00:00
rustc_graphviz Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_hir rustc_hir: replace debug_fn with unstable fmt::from_fn 2025-01-24 14:45:55 +00:00
rustc_hir_analysis Rollup merge of #135951 - yotamofek:use-debug-helpers, r=SparrowLii 2025-01-25 23:27:00 -05:00
rustc_hir_pretty Split hir TyKind and ConstArgKind in two and update hir::Visitor 2025-01-23 06:01:36 +00:00
rustc_hir_typeck Rollup merge of #136032 - estebank:issue-136028, r=SparrowLii 2025-01-25 23:27:01 -05:00
rustc_incremental turn hir::ItemKind::Fn into a named-field variant 2025-01-04 11:35:31 +01:00
rustc_index Run clippy --fix for unnecessary_map_or lint 2025-01-19 19:15:00 +00:00
rustc_index_macros update rustc_index_macros feature handling 2024-12-19 20:32:12 +03:00
rustc_infer Remove Copy bound from enter_forall 2025-01-22 11:45:09 +00:00
rustc_interface Rollup merge of #135880 - bjorn3:misc_driver_refactors, r=oli-obk 2025-01-23 19:54:26 +01:00
rustc_lexer Add test to check unicode identifier version 2024-12-09 06:23:59 -08:00
rustc_lint Rollup merge of #133951 - bjorn3:wasm_c_abi_lint_hard_error, r=workingjubilee 2025-01-25 23:26:58 -05:00
rustc_lint_defs Rollup merge of #133951 - bjorn3:wasm_c_abi_lint_hard_error, r=workingjubilee 2025-01-25 23:26:58 -05:00
rustc_llvm Make our DIFlags match LLVMDIFlags in the LLVM-C API 2025-01-21 14:41:44 +11:00
rustc_log Avoid naming variables str 2025-01-07 14:30:02 +02:00
rustc_macros Avoid naming variables str 2025-01-07 14:30:02 +02:00
rustc_metadata Make the wasm_c_abi future compat warning a hard error 2025-01-23 10:22:23 +00:00
rustc_middle Auto merge of #135753 - compiler-errors:from-ty-const, r=oli-obk 2025-01-26 09:26:34 +00:00
rustc_mir_build Rollup merge of #136018 - estebank:long-moved-type, r=jieyouxu 2025-01-25 08:03:37 +01:00
rustc_mir_dataflow Run clippy --fix for unnecessary_map_or lint 2025-01-19 19:15:00 +00:00
rustc_mir_transform Auto merge of #135753 - compiler-errors:from-ty-const, r=oli-obk 2025-01-26 09:26:34 +00:00
rustc_monomorphize Make sure we actually use the right trivial lifetime substs when eagerly monomorphizing drop for structs 2025-01-15 04:20:25 +00:00
rustc_next_trait_solver Rollup merge of #135766 - lcnr:candidate-assembly-3, r=compiler-errors 2025-01-23 19:54:25 +01:00
rustc_parse use fmt::from_fn in more places, instead of using structs that impl formatting traits 2025-01-24 14:45:56 +00:00
rustc_parse_format Rollup merge of #135920 - hkBst:patch-16, r=SparrowLii 2025-01-23 19:54:28 +01:00
rustc_passes Rollup merge of #136032 - estebank:issue-136028, r=SparrowLii 2025-01-25 23:27:01 -05:00
rustc_pattern_analysis Get rid of mir::Const::from_ty_const 2025-01-20 04:26:44 +00:00
rustc_privacy Split hir TyKind and ConstArgKind in two and update hir::Visitor 2025-01-23 06:01:36 +00:00
rustc_query_impl don't return an Option from try_find_dep_kind 2025-01-07 21:57:00 +01:00
rustc_query_system Properly note when query stack is being cut off 2025-01-16 19:12:22 +00:00
rustc_resolve Auto merge of #133154 - estebank:issue-133137, r=wesleywiser 2025-01-25 11:41:21 +00:00
rustc_sanitizers Eliminate an unnecessary Symbol::to_string; use as_str 2025-01-07 14:24:47 +02:00
rustc_serialize Fix explicit_iter_loop in rustc_serialize 2024-10-16 15:44:16 +02:00
rustc_session Auto merge of #119286 - jyn514:linker-output, r=bjorn3 2025-01-25 17:16:33 +00:00
rustc_smir Auto merge of #135753 - compiler-errors:from-ty-const, r=oli-obk 2025-01-26 09:26:34 +00:00
rustc_span Rollup merge of #134300 - RalfJung:remove-dead-attrs, r=chenyukang 2025-01-25 23:15:22 +01:00
rustc_symbol_mangling Fix legacy symbol mangling of closures 2025-01-14 16:33:03 +00:00
rustc_target Auto merge of #136087 - jhpratt:rollup-tam1mzn, r=jhpratt 2025-01-26 12:10:05 +00:00
rustc_trait_selection Rollup merge of #135949 - estebank:shorten-ty, r=davidtwco 2025-01-24 23:25:45 +01:00
rustc_traits Remove query normalize from normalize type op 2025-01-23 05:56:22 +00:00
rustc_transmute add comment explaining why ty_and_layout_field is not used 2024-12-18 11:01:54 +01:00
rustc_ty_utils Split hir TyKind and ConstArgKind in two and update hir::Visitor 2025-01-23 06:01:36 +00:00
rustc_type_ir Add cache to FoldEscapingRegions 2025-01-26 18:27:58 +00:00
rustc_type_ir_macros do not relate Abi and Safety 2024-10-22 23:13:04 +02:00
stable_mir Add gpu-kernel calling convention 2025-01-16 00:26:55 +01:00