- // MIR for `array_len_raw` before NormalizeArrayLen
+ // MIR for `array_len_raw` after NormalizeArrayLen
  
  fn array_len_raw(_1: [u8; N]) -> usize {
      debug arr => _1;
      let mut _0: usize;
      let _2: &[u8];
      let mut _3: &[u8; N];
      let _4: &[u8; N];
      let mut _6: &[u8];
      let _7: &[u8];
      scope 1 {
          debug arr => _2;
          let _5: *const [u8];
          scope 2 {
              debug arr => _5;
          }
      }
  
      bb0: {
          StorageLive(_2);
          StorageLive(_3);
          StorageLive(_4);
          _4 = &_1;
          _3 = &(*_4);
          _2 = move _3 as &[u8] (PointerCoercion(Unsize));
          StorageDead(_3);
          StorageDead(_4);
          StorageLive(_5);
          _5 = &raw const (*_2);
          StorageLive(_6);
          StorageLive(_7);
          _7 = &(*_5);
          _6 = &(*_7);
-         _0 = Len((*_6));
+         _0 = const N;
          goto -> bb1;
      }
  
      bb1: {
          StorageDead(_6);
          StorageDead(_5);
          StorageDead(_2);
          StorageDead(_7);
          return;
      }
  }
  
