diff --git a/tests/mir-opt/pre-codegen/array_eq.eq_ipv4.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/array_eq.eq_ipv4.PreCodegen.after.panic-abort.mir new file mode 100644 index 000000000000..85162b3a8dd2 --- /dev/null +++ b/tests/mir-opt/pre-codegen/array_eq.eq_ipv4.PreCodegen.after.panic-abort.mir @@ -0,0 +1,21 @@ +// MIR for `eq_ipv4` after PreCodegen + +fn eq_ipv4(_1: &[u8; 4], _2: &[u8; 4]) -> bool { + debug a => _1; + debug b => _2; + let mut _0: bool; + scope 1 (inlined std::cmp::impls::::eq) { + scope 2 (inlined array::equality::::eq) { + scope 3 (inlined >::spec_eq) { + } + } + } + + bb0: { + _0 = raw_eq::<[u8; 4]>(move _1, move _2) -> [return: bb1, unwind unreachable]; + } + + bb1: { + return; + } +} diff --git a/tests/mir-opt/pre-codegen/array_eq.eq_ipv4.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/array_eq.eq_ipv4.PreCodegen.after.panic-unwind.mir new file mode 100644 index 000000000000..85162b3a8dd2 --- /dev/null +++ b/tests/mir-opt/pre-codegen/array_eq.eq_ipv4.PreCodegen.after.panic-unwind.mir @@ -0,0 +1,21 @@ +// MIR for `eq_ipv4` after PreCodegen + +fn eq_ipv4(_1: &[u8; 4], _2: &[u8; 4]) -> bool { + debug a => _1; + debug b => _2; + let mut _0: bool; + scope 1 (inlined std::cmp::impls::::eq) { + scope 2 (inlined array::equality::::eq) { + scope 3 (inlined >::spec_eq) { + } + } + } + + bb0: { + _0 = raw_eq::<[u8; 4]>(move _1, move _2) -> [return: bb1, unwind unreachable]; + } + + bb1: { + return; + } +} diff --git a/tests/mir-opt/pre-codegen/array_eq.eq_ipv6.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/array_eq.eq_ipv6.PreCodegen.after.panic-abort.mir new file mode 100644 index 000000000000..2eef5e72755f --- /dev/null +++ b/tests/mir-opt/pre-codegen/array_eq.eq_ipv6.PreCodegen.after.panic-abort.mir @@ -0,0 +1,21 @@ +// MIR for `eq_ipv6` after PreCodegen + +fn eq_ipv6(_1: &[u16; 8], _2: &[u16; 8]) -> bool { + debug a => _1; + debug b => _2; + let mut _0: bool; + scope 1 (inlined std::cmp::impls::::eq) { + scope 2 (inlined array::equality::::eq) { + scope 3 (inlined >::spec_eq) { + } + } + } + + bb0: { + _0 = raw_eq::<[u16; 8]>(move _1, move _2) -> [return: bb1, unwind unreachable]; + } + + bb1: { + return; + } +} diff --git a/tests/mir-opt/pre-codegen/array_eq.eq_ipv6.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/array_eq.eq_ipv6.PreCodegen.after.panic-unwind.mir new file mode 100644 index 000000000000..2eef5e72755f --- /dev/null +++ b/tests/mir-opt/pre-codegen/array_eq.eq_ipv6.PreCodegen.after.panic-unwind.mir @@ -0,0 +1,21 @@ +// MIR for `eq_ipv6` after PreCodegen + +fn eq_ipv6(_1: &[u16; 8], _2: &[u16; 8]) -> bool { + debug a => _1; + debug b => _2; + let mut _0: bool; + scope 1 (inlined std::cmp::impls::::eq) { + scope 2 (inlined array::equality::::eq) { + scope 3 (inlined >::spec_eq) { + } + } + } + + bb0: { + _0 = raw_eq::<[u16; 8]>(move _1, move _2) -> [return: bb1, unwind unreachable]; + } + + bb1: { + return; + } +} diff --git a/tests/mir-opt/pre-codegen/array_eq.eq_odd_length.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/array_eq.eq_odd_length.PreCodegen.after.panic-abort.mir new file mode 100644 index 000000000000..06d7f222df14 --- /dev/null +++ b/tests/mir-opt/pre-codegen/array_eq.eq_odd_length.PreCodegen.after.panic-abort.mir @@ -0,0 +1,21 @@ +// MIR for `eq_odd_length` after PreCodegen + +fn eq_odd_length(_1: &[u8; 3], _2: &[u8; 3]) -> bool { + debug a => _1; + debug b => _2; + let mut _0: bool; + scope 1 (inlined std::cmp::impls::::eq) { + scope 2 (inlined array::equality::::eq) { + scope 3 (inlined >::spec_eq) { + } + } + } + + bb0: { + _0 = raw_eq::<[u8; 3]>(move _1, move _2) -> [return: bb1, unwind unreachable]; + } + + bb1: { + return; + } +} diff --git a/tests/mir-opt/pre-codegen/array_eq.eq_odd_length.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/array_eq.eq_odd_length.PreCodegen.after.panic-unwind.mir new file mode 100644 index 000000000000..06d7f222df14 --- /dev/null +++ b/tests/mir-opt/pre-codegen/array_eq.eq_odd_length.PreCodegen.after.panic-unwind.mir @@ -0,0 +1,21 @@ +// MIR for `eq_odd_length` after PreCodegen + +fn eq_odd_length(_1: &[u8; 3], _2: &[u8; 3]) -> bool { + debug a => _1; + debug b => _2; + let mut _0: bool; + scope 1 (inlined std::cmp::impls::::eq) { + scope 2 (inlined array::equality::::eq) { + scope 3 (inlined >::spec_eq) { + } + } + } + + bb0: { + _0 = raw_eq::<[u8; 3]>(move _1, move _2) -> [return: bb1, unwind unreachable]; + } + + bb1: { + return; + } +} diff --git a/tests/mir-opt/pre-codegen/array_eq.rs b/tests/mir-opt/pre-codegen/array_eq.rs new file mode 100644 index 000000000000..41ec79acf77b --- /dev/null +++ b/tests/mir-opt/pre-codegen/array_eq.rs @@ -0,0 +1,25 @@ +//@ compile-flags: -O -Zmir-opt-level=2 +// EMIT_MIR_FOR_EACH_PANIC_STRATEGY + +#![crate_type = "lib"] + +// EMIT_MIR array_eq.eq_odd_length.PreCodegen.after.mir +pub unsafe fn eq_odd_length(a: &[u8; 3], b: &[u8; 3]) -> bool { + // CHECK-LABEL: fn eq_odd_length(_1: &[u8; 3], _2: &[u8; 3]) -> bool + // CHECK: _0 = raw_eq::<[u8; 3]>(move _1, move _2) + a == b +} + +// EMIT_MIR array_eq.eq_ipv4.PreCodegen.after.mir +pub unsafe fn eq_ipv4(a: &[u8; 4], b: &[u8; 4]) -> bool { + // CHECK-LABEL: fn eq_ipv4(_1: &[u8; 4], _2: &[u8; 4]) -> bool + // CHECK: _0 = raw_eq::<[u8; 4]>(move _1, move _2) + a == b +} + +// EMIT_MIR array_eq.eq_ipv6.PreCodegen.after.mir +pub unsafe fn eq_ipv6(a: &[u16; 8], b: &[u16; 8]) -> bool { + // CHECK-LABEL: fn eq_ipv6(_1: &[u16; 8], _2: &[u16; 8]) -> bool + // CHECK: _0 = raw_eq::<[u16; 8]>(move _1, move _2) + a == b +}