about summary refs log tree commit diff
path: root/tests/mir-opt/gvn_ptr_eq_with_constant.main.GVN.diff
blob: f56af33ea603f93c59961885ceac1f4929f1118d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
- // MIR for `main` before GVN
+ // MIR for `main` after GVN
  
  fn main() -> () {
      let mut _0: ();
      let _1: bool;
      let mut _2: *mut u8;
      scope 1 (inlined dangling_mut::<u8>) {
          scope 2 (inlined NonNull::<u8>::dangling) {
              let mut _3: std::num::NonZero<usize>;
              scope 3 {
                  scope 5 (inlined std::ptr::Alignment::as_nonzero) {
                  }
                  scope 6 (inlined NonNull::<u8>::without_provenance) {
                      scope 7 {
                      }
                      scope 8 (inlined NonZero::<usize>::get) {
                      }
                      scope 9 (inlined std::ptr::without_provenance::<u8>) {
                          scope 10 (inlined without_provenance_mut::<u8>) {
                          }
                      }
                  }
              }
              scope 4 (inlined std::ptr::Alignment::of::<u8>) {
              }
          }
          scope 11 (inlined NonNull::<u8>::as_ptr) {
          }
      }
      scope 12 (inlined Foo::<u8>::cmp_ptr) {
          let mut _4: *const u8;
          let mut _5: *mut u8;
          let mut _6: *const u8;
          scope 13 (inlined std::ptr::eq::<u8>) {
          }
      }
  
      bb0: {
          StorageLive(_1);
          StorageLive(_2);
          StorageLive(_3);
-         _3 = const std::ptr::Alignment::of::<u8>::{constant#0} as std::num::NonZero<usize> (Transmute);
-         _2 = copy _3 as *mut u8 (Transmute);
+         _3 = const NonZero::<usize>(core::num::niche_types::NonZeroUsizeInner(1_usize));
+         _2 = const {0x1 as *mut u8};
          StorageDead(_3);
          StorageLive(_4);
          StorageLive(_5);
-         _5 = copy _2;
-         _4 = copy _2 as *const u8 (PtrToPtr);
+         _5 = const {0x1 as *mut u8};
+         _4 = const {0x1 as *const u8};
          StorageDead(_5);
          StorageLive(_6);
-         _6 = const Foo::<u8>::SENTINEL as *const u8 (PtrToPtr);
-         _1 = Eq(copy _4, copy _6);
+         _6 = const {0x1 as *const u8};
+         _1 = const true;
          StorageDead(_6);
          StorageDead(_4);
          StorageDead(_2);
          StorageDead(_1);
          _0 = const ();
          return;
      }
  }