about summary refs log tree commit diff
diff options
context:
space:
mode:
authorThe8472 <git@infinite-source.de>2020-12-09 01:08:11 +0100
committerThe8472 <git@infinite-source.de>2021-03-21 20:54:06 +0100
commit17f4c2a487f52c02afe956f40d800a4a133c6c79 (patch)
treea511df7b6ec5439a1ce1c543e9302293031ea06c
parent6c67e5527023df098257c4258072bff52de95c8f (diff)
downloadrust-17f4c2a487f52c02afe956f40d800a4a133c6c79.tar.gz
rust-17f4c2a487f52c02afe956f40d800a4a133c6c79.zip
add codegen test
-rw-r--r--src/test/codegen/vec-in-place.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/test/codegen/vec-in-place.rs b/src/test/codegen/vec-in-place.rs
new file mode 100644
index 00000000000..51b570e8be6
--- /dev/null
+++ b/src/test/codegen/vec-in-place.rs
@@ -0,0 +1,13 @@
+// compile-flags: -O
+// min-llvm-version: 11.0
+#![crate_type = "lib"]
+
+// Ensure that trivial casts of vec elements are O(1)
+
+// CHECK-LABEL: @vec_iterator_cast
+#[no_mangle]
+pub fn vec_iterator_cast(vec: Vec<isize>) -> Vec<usize> {
+    // CHECK-NOT: loop
+    // CHECK-NOT: call
+    vec.into_iter().map(|e| e as usize).collect()
+}