From fb5f05e0ef160db96030051a5cb53e2e7867bacc Mon Sep 17 00:00:00 2001 From: SadiinsoSnowfall Date: Tue, 23 Apr 2024 00:26:05 +0200 Subject: [PATCH] Added codegen test for issue 112169 --- .../issue-112169-long-iterator-unroll.rs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 tests/codegen/issues/issue-112169-long-iterator-unroll.rs diff --git a/tests/codegen/issues/issue-112169-long-iterator-unroll.rs b/tests/codegen/issues/issue-112169-long-iterator-unroll.rs new file mode 100644 index 0000000000000..54e2f0d928ea5 --- /dev/null +++ b/tests/codegen/issues/issue-112169-long-iterator-unroll.rs @@ -0,0 +1,24 @@ +//@ compile-flags: -O +//@ ignore-wasm FIXME: LLVM does not vectorize loops on WASM so this doesn't get optimized +#![crate_type = "lib"] + +// Test that simple iterator-based loops of length > 101 are fully optimized away. +// See + +// CHECK-LABEL: issue_112169() +#[no_mangle] +pub fn issue_112169() -> i32 { + // CHECK-NEXT: {{.*}}: + // CHECK-NEXT: ret i32 102 + let mut s = 0; + + for i in 0..102 { + if i == 0 { + s = i; + } + + s += 1; + } + + s +}