rust/tests
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
..
assembly Auto merge of #104693 - jhorstmann:use-high-bit-of-mask-for-select, r=workingjubilee 2025-01-26 22:45:21 +00:00
auxiliary tests/assembly/asm: Remove uses of rustc_attrs and lang_items features by using minicore 2024-12-18 02:59:07 +09:00
codegen Consistently use the most significant bit of vector masks 2025-01-26 16:44:23 +01:00
codegen-units remove support for the #[start] attribute 2025-01-21 06:59:15 -07:00
coverage coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
coverage-run-rustdoc coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
crashes add a regression test 2025-01-24 18:33:00 +01:00
debuginfo Revert "Remove the Arc rt::init allocation for thread info" 2025-01-14 13:37:25 +01:00
incremental add test for issue 135514 2025-01-15 08:26:23 +00:00
mir-opt Auto merge of #128657 - clubby789:optimize-none, r=fee1-dead,WaffleLapkin 2025-01-25 05:50:36 +00:00
pretty Update tests to use new proc-macro header 2024-11-27 07:18:25 -08:00
run-make Shorten linker output even more when --verbose is not present 2025-01-25 16:04:52 -05:00
rustdoc rustdoc: Finalize dyn compatibility renaming 2025-01-22 05:03:54 +01:00
rustdoc-gui Add GUI regression test for indent of trait items on mobile 2025-01-24 15:36:52 +01:00
rustdoc-js Rollup merge of #134277 - notriddle:notriddle/inline-into, r=GuillaumeGomez 2024-12-16 20:00:20 +01:00
rustdoc-js-std Treat other items as functions for the purpose of type-based search 2025-01-16 11:52:00 -06:00
rustdoc-json rustdoc-json: Rename Path::name to path, and give it path (again). 2025-01-22 19:29:48 +00:00
rustdoc-ui Auto merge of #133154 - estebank:issue-133137, r=wesleywiser 2025-01-25 11:41:21 +00:00
ui Add cache to FoldEscapingRegions 2025-01-26 18:27:58 +00:00
ui-fulldeps Remove RunCompiler 2025-01-23 09:38:58 +00:00
COMPILER_TESTS.md