rust/compiler/rustc_codegen_llvm/src
Chris Denton d15c603173
Rollup merge of #137953 - RalfJung:simd-intrinsic-masks, r=WaffleLapkin
simd intrinsics with mask: accept unsigned integer masks, and fix some of the errors

It's not clear at all why the mask would have to be signed, it is anyway interpreted bitwise. The backend should just make sure that works no matter the surface-level type; our LLVM backend already does this correctly. The note of "the mask may be widened, which only has the correct behavior for signed integers" explains... nothing? Why can't the code do the widening correctly? If necessary, just cast to the signed type first...

Also while we are at it, fix the errors. For simd_masked_load/store, the errors talked about the "third argument" but they meant the first argument (the mask is the first argument there). They also used the wrong type for `expected_element`.

I have extremely low confidence in the GCC part of this PR.

See [discussion on Zulip](https://rust-lang.zulipchat.com/#narrow/channel/257879-project-portable-simd/topic/On.20the.20sign.20of.20masks)
2025-04-20 13:02:48 +00:00
..
back Prepend temp files with a string per invocation of rustc 2025-04-07 20:48:40 +00:00
builder working dupv and dupvonly for fwd mode 2025-04-16 17:13:31 -04:00
coverageinfo coverage: Build the CGU's global file table as late as possible 2025-04-07 17:11:49 +10:00
debuginfo Rollup merge of #138599 - adwinwhite:recursive-overflow, r=wesleywiser 2025-04-18 05:17:53 +02:00
llvm Rollup merge of #137880 - EnzymeAD:autodiff-batching, r=oli-obk 2025-04-05 13:18:13 +11:00
abi.rs Update the minimum external LLVM to 19 2025-04-05 11:44:38 -07:00
allocator.rs Remove implicit #[no_mangle] for #[rustc_std_internal_symbol] 2025-03-17 14:08:09 +00:00
asm.rs Rollup merge of #137549 - oli-obk:llvm-ffi, r=davidtwco 2025-03-07 19:15:34 +01:00
attributes.rs Update the minimum external LLVM to 19 2025-04-05 11:44:38 -07:00
base.rs Add new_regular and new_allocator to ModuleCodegen 2025-02-23 21:23:38 +08:00
builder.rs working dupv and dupvonly for fwd mode 2025-04-16 17:13:31 -04:00
callee.rs Merge two operations that were always performed together 2025-02-20 11:24:00 +00:00
common.rs Reuse address-space computation from global alloc 2025-04-11 09:28:47 +00:00
consts.rs Rollup merge of #137880 - EnzymeAD:autodiff-batching, r=oli-obk 2025-04-05 13:18:13 +11:00
context.rs Update the minimum external LLVM to 19 2025-04-05 11:44:38 -07:00
declare.rs Make allocator shim creation mostly use safe code 2025-02-24 15:11:29 +00:00
errors.rs KCFI: Add KCFI arity indicator support 2025-04-05 04:05:04 +00:00
intrinsic.rs Rollup merge of #137953 - RalfJung:simd-intrinsic-masks, r=WaffleLapkin 2025-04-20 13:02:48 +00:00
lib.rs Reduce visibility of most items in rustc_codegen_llvm 2025-03-25 16:36:47 +11:00
llvm_util.rs Update the minimum external LLVM to 19 2025-04-05 11:44:38 -07:00
mono_item.rs Rename is_like_osx to is_like_darwin 2025-03-25 21:53:52 +01:00
type_.rs Generalize BaseTypeCodegenMethods 2025-02-24 15:11:29 +00:00
type_of.rs rename BackendRepr::Vector → SimdVector 2025-02-28 17:17:45 +01:00
va_arg.rs Rename is_like_osx to is_like_darwin 2025-03-25 21:53:52 +01:00
value.rs Add warn(unreachable_pub) to rustc_codegen_llvm. 2024-08-16 08:46:57 +10:00