|
1 | 1 | //@ compile-flags: -O -Z merge-functions=disabled --edition=2021 |
2 | 2 | //@ only-x86_64 |
3 | 3 | // FIXME: Remove the `min-llvm-version`. |
4 | | -//@ revisions: NINETEEN TWENTY |
5 | | -//@[NINETEEN] min-llvm-version: 19 |
6 | | -//@[NINETEEN] ignore-llvm-version: 20-99 |
7 | | -//@[TWENTY] min-llvm-version: 20 |
| 4 | +//@ min-llvm-version: 19 |
8 | 5 |
|
9 | 6 | #![crate_type = "lib"] |
10 | 7 | #![feature(try_blocks)] |
11 | 8 |
|
12 | 9 | use std::ops::ControlFlow::{self, Break, Continue}; |
13 | 10 | use std::ptr::NonNull; |
14 | 11 |
|
| 12 | +// FIXME: The `trunc` and `select` instructions can be eliminated. |
15 | 13 | // CHECK-LABEL: @option_nop_match_32 |
16 | 14 | #[no_mangle] |
17 | 15 | pub fn option_nop_match_32(x: Option<u32>) -> Option<u32> { |
18 | 16 | // CHECK: start: |
19 | | - // NINETEEN-NEXT: [[TRUNC:%.*]] = trunc nuw i32 %0 to i1 |
20 | | - // NINETEEN-NEXT: [[FIRST:%.*]] = select i1 [[TRUNC]], i32 %0 |
21 | | - // NINETEEN-NEXT: insertvalue { i32, i32 } poison, i32 [[FIRST]], 0 |
22 | | - // TWENTY-NEXT: insertvalue { i32, i32 } poison, i32 %0, 0 |
| 17 | + // CHECK-NEXT: [[TRUNC:%.*]] = trunc nuw i32 %0 to i1 |
| 18 | + // CHECK-NEXT: [[FIRST:%.*]] = select i1 [[TRUNC]], i32 %0 |
| 19 | + // CHECK-NEXT: insertvalue { i32, i32 } poison, i32 [[FIRST]] |
23 | 20 | // CHECK-NEXT: insertvalue { i32, i32 } |
24 | 21 | // CHECK-NEXT: ret { i32, i32 } |
25 | 22 | match x { |
|
0 commit comments