about summary refs log tree commit diff
path: root/src/test/codegen/slice-iter-len-eq-zero.rs
diff options
context:
space:
mode:
authorScott McMurray <scottmcm@users.noreply.github.com>2019-06-15 20:54:04 -0700
committerScott McMurray <scottmcm@users.noreply.github.com>2019-06-15 21:15:25 -0700
commitaf0e35e6a6837aba121c873e6f91fff6df61d268 (patch)
treec8f619b66b24123e5a6063ce6d98c4f2918d79d6 /src/test/codegen/slice-iter-len-eq-zero.rs
parent9f8cd9da7b6380b5658163141c767a321f5f0f62 (diff)
downloadrust-af0e35e6a6837aba121c873e6f91fff6df61d268.tar.gz
rust-af0e35e6a6837aba121c873e6f91fff6df61d268.zip
Help LLVM better optimize slice::Iter(Mut)::len
Diffstat (limited to 'src/test/codegen/slice-iter-len-eq-zero.rs')
-rw-r--r--src/test/codegen/slice-iter-len-eq-zero.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/test/codegen/slice-iter-len-eq-zero.rs b/src/test/codegen/slice-iter-len-eq-zero.rs
new file mode 100644
index 00000000000..a5516833900
--- /dev/null
+++ b/src/test/codegen/slice-iter-len-eq-zero.rs
@@ -0,0 +1,14 @@
+// no-system-llvm
+// compile-flags: -O
+#![crate_type = "lib"]
+
+type Demo = [u8; 3];
+
+// CHECK-LABEL: @slice_iter_len_eq_zero
+#[no_mangle]
+pub fn slice_iter_len_eq_zero(y: std::slice::Iter<'_, Demo>) -> bool {
+    // CHECK-NOT: sub
+    // CHECK: %2 = icmp eq i8* %1, %0
+    // CHECK: ret i1 %2
+    y.len() == 0
+}