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
8
//@ min-llvm-version: 19
5
9
6
10
#![ crate_type = "lib" ]
@@ -13,8 +17,11 @@ use std::ptr::NonNull;
13
17
#[ no_mangle]
14
18
pub fn option_nop_match_32 ( x : Option < u32 > ) -> Option < u32 > {
15
19
// CHECK: start:
20
+ // TWENTY-NEXT: %trunc = trunc nuw i32 %0 to i1
21
+ // TWENTY-NEXT: %.2 = select i1 %trunc, i32 %1, i32 undef
16
22
// CHECK-NEXT: [[REG1:%.*]] = insertvalue { i32, i32 } poison, i32 %0, 0
17
- // CHECK-NEXT: [[REG2:%.*]] = insertvalue { i32, i32 } [[REG1]], i32 %1, 1
23
+ // NINETEEN-NEXT: [[REG2:%.*]] = insertvalue { i32, i32 } [[REG1]], i32 %1, 1
24
+ // TWENTY-NEXT: [[REG2:%.*]] = insertvalue { i32, i32 } [[REG1]], i32 %.2, 1
18
25
// CHECK-NEXT: ret { i32, i32 } [[REG2]]
19
26
match x {
20
27
Some ( x) => Some ( x) ,
@@ -26,6 +33,8 @@ pub fn option_nop_match_32(x: Option<u32>) -> Option<u32> {
26
33
#[ no_mangle]
27
34
pub fn option_nop_traits_32 ( x : Option < u32 > ) -> Option < u32 > {
28
35
// CHECK: start:
36
+ // TWENTY-NEXT: %trunc = trunc nuw i32 %0 to i1
37
+ // TWENTY-NEXT: %.1 = select i1 %trunc, i32 %1, i32 undef
29
38
// CHECK-NEXT: insertvalue { i32, i32 }
30
39
// CHECK-NEXT: insertvalue { i32, i32 }
31
40
// CHECK-NEXT: ret { i32, i32 }
0 commit comments