5 // verify that LLVM recognizes a loop involving 0..=n and will const-fold it.
7 //------------------------------------------------------------------------------
8 // Example from original issue #45222
10 fn foo2(n: u64) -> u64 {
13 for j in (0..=n).rev() {
20 // CHECK-LABEL: @check_foo2
22 pub fn check_foo2() -> u64 {
23 // CHECK: ret i64 500005000000000
27 //------------------------------------------------------------------------------
28 // Simplified example of #45222
30 fn triangle_inc(n: u64) -> u64 {
38 // CHECK-LABEL: @check_triangle_inc
40 pub fn check_triangle_inc() -> u64 {
41 // CHECK: ret i64 5000050000
45 //------------------------------------------------------------------------------
48 fn foo3r(n: u64) -> u64 {
51 (0 ..= n).rev().for_each(|j| {
58 // CHECK-LABEL: @check_foo3r
60 pub fn check_foo3r() -> u64 {
61 // CHECK: ret i64 500050000000