os-rust/tests
bors e9e1bbc7a8 Auto merge of #111568 - scottmcm:undo-opt, r=WaffleLapkin
Stop turning transmutes into discriminant reads in mir-opt

Partially reverts #109612, as after #109993 these aren't actually equivalent any more, and I'm no longer confident this was ever an improvement in the first place.

Having this "simplification" meant that similar-looking code actually did somewhat different things.  For example,
```rust
pub unsafe fn demo1(x: std::cmp::Ordering) -> u8 {
    std::mem::transmute(x)
}
pub unsafe fn demo2(x: std::cmp::Ordering) -> i8 {
    std::mem::transmute(x)
}
```
in nightly today is generating <https://rust.godbolt.org/z/dPK58zW18>
```llvm
define noundef i8 `@_ZN7example5demo117h341ef313673d2ee6E(i8` noundef %x) unnamed_addr #0 {
  %0 = icmp uge i8 %x, -1
  %1 = icmp ule i8 %x, 1
  %2 = or i1 %0, %1
  call void `@llvm.assume(i1` %2)
  ret i8 %x
}

define noundef i8 `@_ZN7example5demo217h5ad29f361a3f5700E(i8` noundef %0) unnamed_addr #0 {
  %x = alloca i8, align 1
  store i8 %0, ptr %x, align 1
  %1 = load i8, ptr %x, align 1, !range !2, !noundef !3
  ret i8 %1
}
```

Which feels too different when the original code is essentially identical.

---

Aside: that example is different *after* optimizations too:
```llvm
define noundef i8 `@_ZN7example5demo117h341ef313673d2ee6E(i8` noundef returned %x) unnamed_addr #0 {
  %0 = add i8 %x, 1
  %1 = icmp ult i8 %0, 3
  tail call void `@llvm.assume(i1` %1)
  ret i8 %x
}

define noundef i8 `@_ZN7example5demo217h5ad29f361a3f5700E(i8` noundef returned %0) unnamed_addr #1 {
  ret i8 %0
}
```
so turning the `Transmute` into a `Discriminant` was arguably just making things worse, so leaving it alone instead -- and thus having less code in rustc -- seems clearly better.
2023-05-17 18:53:26 +00:00
..
assembly Tune the is_ascii implementation used for short slices 2023-05-06 22:56:43 -07:00
auxiliary
codegen Auto merge of #111556 - cjgillot:copy-prop-nrvo, r=oli-obk 2023-05-16 22:27:08 +00:00
codegen-units Turn off inlining for codegen-unit tests 2023-04-07 15:46:45 -04:00
debuginfo Add multiple borrow test. 2023-05-13 10:32:32 +00:00
incremental Add needs-unwind annotations to tests that need stack unwinding 2023-05-02 12:07:55 +00:00
mir-opt Auto merge of #111568 - scottmcm:undo-opt, r=WaffleLapkin 2023-05-17 18:53:26 +00:00
pretty Rollup merge of #111042 - Zalathar:no-coverage, r=wesleywiser 2023-05-01 17:10:24 +02:00
run-make Rollup merge of #111469 - Dushistov:fix-coverage-data-race, r=wesleywiser 2023-05-13 11:05:34 +05:30
run-make-fulldeps Move expansion of query macros in rustc_middle to rustc_middle::query 2023-05-15 08:49:13 +02:00
run-pass-valgrind
rustdoc Add regression test for #111415 2023-05-16 14:35:46 +02:00
rustdoc-gui Convert more GUI tests colors to their original format 2023-05-14 00:16:16 +02:00
rustdoc-js Rollup merge of #110780 - notriddle:notriddle/slice-index, r=GuillaumeGomez 2023-05-06 09:09:31 +09:00
rustdoc-js-std rustdoc-search: add support for nested generics 2023-04-14 14:55:45 -07:00
rustdoc-json rustdoc-json: Add tests for visibility of impls 2023-05-15 17:48:48 +00:00
rustdoc-ui Fix backtrace normalization in ice-bug-report-url.rs 2023-05-11 13:59:38 +02:00
ui Rollup merge of #111588 - MU001999:diag/improve-e0782, r=fee1-dead 2023-05-17 19:11:55 +05:30
ui-fulldeps Rollup merge of #110747 - oli-obk:smirty, r=spastorino 2023-05-10 06:12:13 +02:00
COMPILER_TESTS.md