diff options
| author | Jubilee <workingjubilee@gmail.com> | 2025-07-04 23:26:24 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-04 23:26:24 -0700 |
| commit | 33eb552ceb2939c873328aaeb9ce0f5c075a84a7 (patch) | |
| tree | ebde6709fb4169d37db5e4574b328891aa8ce789 /compiler/rustc_codegen_llvm/src/lib.rs | |
| parent | 5b509e6158af2536df3300befa884a3a97821e46 (diff) | |
| parent | 4e615272bf5fc1331b5389c35893c1744dfc46f0 (diff) | |
| download | rust-33eb552ceb2939c873328aaeb9ce0f5c075a84a7.tar.gz rust-33eb552ceb2939c873328aaeb9ce0f5c075a84a7.zip | |
Rollup merge of #143410 - scottmcm:redo-transmute-again, r=RalfJung,workingjubilee
Block SIMD in transmute_immediate; delete `OperandValueKind` Vectors have been causing me problems for years in this code, for example https://github.com/rust-lang/rust/pull/110021#discussion_r1160975086 and https://github.com/rust-lang/rust/pull/143194 See conversation in <https://rust-lang.zulipchat.com/#narrow/channel/131828-t-compiler/topic/Is.20transmuting.20a.20.60T.60.20to.20.60Tx1.60.20.28one-element.20SIMD.20vector.29.20UB.3F/near/526262799>. By blocking SIMD in `transmute_immediate` it can be simplified to just take the `Scalar`s involved -- the backend types can be gotten from those `Scalar`s, rather than needing to be passed. And there's an assert added to ICE it if it does get hit. Accordingly, this changes `rvalue_creates_operand` to not send SIMD transmutes through the operand path, but to always go through memory instead, like they did back before rust-lang/rust#108442. And thanks to those changes, I could also remove the `OperandValueKind` type that I added back then which `@RalfJung` rightly considers pretty sketchy. cc `@folkertdev` `@workingjubilee` from the zulip conversation too
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/lib.rs')
0 files changed, 0 insertions, 0 deletions
