@@ -29,38 +29,38 @@ pub struct Aggregate8(u8);
29
29
// CHECK-LABEL: @check_bigger_size(
30
30
#[ no_mangle]
31
31
pub unsafe fn check_bigger_size ( x : u16 ) -> u32 {
32
- // CHECK: call void @llvm.assume( i1 false)
32
+ // CHECK: store i1 true, ptr poison, align 1
33
33
transmute_unchecked ( x)
34
34
}
35
35
36
36
// CHECK-LABEL: @check_smaller_size(
37
37
#[ no_mangle]
38
38
pub unsafe fn check_smaller_size ( x : u32 ) -> u16 {
39
- // CHECK: call void @llvm.assume( i1 false)
39
+ // CHECK: store i1 true, ptr poison, align 1
40
40
transmute_unchecked ( x)
41
41
}
42
42
43
43
// CHECK-LABEL: @check_smaller_array(
44
44
#[ no_mangle]
45
45
pub unsafe fn check_smaller_array ( x : [ u32 ; 7 ] ) -> [ u32 ; 3 ] {
46
- // CHECK: call void @llvm.assume( i1 false)
46
+ // CHECK: store i1 true, ptr poison, align 1
47
47
transmute_unchecked ( x)
48
48
}
49
49
50
50
// CHECK-LABEL: @check_bigger_array(
51
51
#[ no_mangle]
52
52
pub unsafe fn check_bigger_array ( x : [ u32 ; 3 ] ) -> [ u32 ; 7 ] {
53
- // CHECK: call void @llvm.assume( i1 false)
53
+ // CHECK: store i1 true, ptr poison, align 1
54
54
transmute_unchecked ( x)
55
55
}
56
56
57
57
// CHECK-LABEL: @check_to_empty_array(
58
58
#[ no_mangle]
59
59
#[ custom_mir( dialect = "runtime" , phase = "optimized" ) ]
60
60
pub unsafe fn check_to_empty_array ( x : [ u32 ; 5 ] ) -> [ u32 ; 0 ] {
61
- // CHECK-NOT: trap
62
- // CHECK: call void @llvm.trap
63
- // CHECK-NOT: trap
61
+ // CHECK: start
62
+ // CHECK-NEXT: store i1 true, ptr poison, align 1
63
+ // CHECK-NEXT: ret void
64
64
mir ! {
65
65
{
66
66
RET = CastTransmute ( x) ;
@@ -73,9 +73,9 @@ pub unsafe fn check_to_empty_array(x: [u32; 5]) -> [u32; 0] {
73
73
#[ no_mangle]
74
74
#[ custom_mir( dialect = "runtime" , phase = "optimized" ) ]
75
75
pub unsafe fn check_from_empty_array ( x : [ u32 ; 0 ] ) -> [ u32 ; 5 ] {
76
- // CHECK-NOT: call
77
- // CHECK: call void @llvm.assume( i1 false)
78
- // CHECK-NOT: call
76
+ // CHECK: start
77
+ // CHECK-NEXT: store i1 true, ptr poison, align 1
78
+ // CHECK-NEXT: ret void
79
79
mir ! {
80
80
{
81
81
RET = CastTransmute ( x) ;
@@ -88,9 +88,9 @@ pub unsafe fn check_from_empty_array(x: [u32; 0]) -> [u32; 5] {
88
88
#[ no_mangle]
89
89
#[ custom_mir( dialect = "runtime" , phase = "optimized" ) ]
90
90
pub unsafe fn check_to_uninhabited ( x : u16 ) {
91
- // CHECK-NOT: trap
92
- // CHECK: call void @llvm.trap
93
- // CHECK-NOT: trap
91
+ // CHECK: start
92
+ // CHECK-NEXT: store i1 true, ptr poison, align 1
93
+ // CHECK-NEXT: ret void
94
94
mir ! {
95
95
let temp: BigNever ;
96
96
{
@@ -104,7 +104,9 @@ pub unsafe fn check_to_uninhabited(x: u16) {
104
104
#[ no_mangle]
105
105
#[ custom_mir( dialect = "runtime" , phase = "optimized" ) ]
106
106
pub unsafe fn check_from_uninhabited ( x : BigNever ) -> u16 {
107
- // CHECK: ret i16 poison
107
+ // CHECK: start
108
+ // CHECK-NEXT: store i1 true, ptr poison, align 1
109
+ // CHECK-NEXT: ret i16 poison
108
110
mir ! {
109
111
{
110
112
RET = CastTransmute ( x) ;
@@ -401,9 +403,9 @@ pub unsafe fn check_issue_109992(x: ()) -> [(); 1] {
401
403
pub unsafe fn check_unit_to_never ( x : ( ) ) {
402
404
// This uses custom MIR to avoid MIR optimizations having removed ZST ops.
403
405
404
- // CHECK-NOT: trap
405
- // CHECK: call void @llvm.trap
406
- // CHECK-NOT: trap
406
+ // CHECK: start
407
+ // CHECK-NEXT: store i1 true, ptr poison, align 1
408
+ // CHECK-NEXT: ret void
407
409
mir ! {
408
410
let temp: ZstNever ;
409
411
{
@@ -420,6 +422,7 @@ pub unsafe fn check_unit_from_never(x: ZstNever) -> () {
420
422
// This uses custom MIR to avoid MIR optimizations having removed ZST ops.
421
423
422
424
// CHECK: start
425
+ // CHECK-NEXT: store i1 true, ptr poison, align 1
423
426
// CHECK-NEXT: ret void
424
427
mir ! {
425
428
{
0 commit comments