44define i64 @expect_i64 (i64 %arg0 ) {
55 ; CHECK-LABEL: name: expect_i64
66 ; CHECK: bb.1 (%ir-block.0):
7- ; CHECK: liveins: $x0
8- ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
9- ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY [[COPY]](s64)
10- ; CHECK: $x0 = COPY [[COPY1]](s64)
11- ; CHECK: RET_ReallyLR implicit $x0
7+ ; CHECK-NEXT: liveins: $x0
8+ ; CHECK-NEXT: {{ $}}
9+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
10+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY [[COPY]](s64)
11+ ; CHECK-NEXT: $x0 = COPY [[COPY1]](s64)
12+ ; CHECK-NEXT: RET_ReallyLR implicit $x0
1213 %expval = call i64 @llvm.expect.i64 (i64 %arg0 , i64 1 )
1314 ret i64 %expval
1415}
1516
17+ define i64 @expect_with_probability_i64 (i64 %arg0 ) {
18+ ; CHECK-LABEL: name: expect_with_probability_i64
19+ ; CHECK: bb.1 (%ir-block.0):
20+ ; CHECK-NEXT: liveins: $x0
21+ ; CHECK-NEXT: {{ $}}
22+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
23+ ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1
24+ ; CHECK-NEXT: [[INT:%[0-9]+]]:_(s64) = G_INTRINSIC intrinsic(@llvm.expect.with.probability), [[COPY]](s64), [[C]](s64), double 5.000000e-01
25+ ; CHECK-NEXT: $x0 = COPY [[INT]](s64)
26+ ; CHECK-NEXT: RET_ReallyLR implicit $x0
27+ %expval = call i64 @llvm.expect.with.probability.i64 (i64 %arg0 , i64 1 , double 0 .5 )
28+ ret i64 %expval
29+ }
30+
1631define ptr @ptr_annotate (ptr %arg0 , ptr %arg1 , ptr %arg2 , i32 %arg3 ) {
1732 ; CHECK-LABEL: name: ptr_annotate
1833 ; CHECK: bb.1 (%ir-block.0):
19- ; CHECK: liveins: $w3, $x0, $x1, $x2
20- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
21- ; CHECK: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
22- ; CHECK: [[COPY2:%[0-9]+]]:_(p0) = COPY $x2
23- ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY $w3
24- ; CHECK: [[COPY4:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)
25- ; CHECK: $x0 = COPY [[COPY4]](p0)
26- ; CHECK: RET_ReallyLR implicit $x0
34+ ; CHECK-NEXT: liveins: $w3, $x0, $x1, $x2
35+ ; CHECK-NEXT: {{ $}}
36+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
37+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
38+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(p0) = COPY $x2
39+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $w3
40+ ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)
41+ ; CHECK-NEXT: $x0 = COPY [[COPY4]](p0)
42+ ; CHECK-NEXT: RET_ReallyLR implicit $x0
2743 %call = call ptr @llvm.ptr.annotation.p0 (ptr %arg0 , ptr %arg1 , ptr %arg2 , i32 %arg3 , ptr null )
2844 ret ptr %call
2945}
@@ -34,40 +50,44 @@ define ptr @ptr_annotate(ptr %arg0, ptr %arg1, ptr %arg2, i32 %arg3) {
3450define i32 @annotation (i32 %a ) {
3551 ; CHECK-LABEL: name: annotation
3652 ; CHECK: bb.1 (%ir-block.0):
37- ; CHECK: liveins: $w0
38- ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
39- ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)
40- ; CHECK: $w0 = COPY [[COPY1]](s32)
41- ; CHECK: RET_ReallyLR implicit $w0
53+ ; CHECK-NEXT: liveins: $w0
54+ ; CHECK-NEXT: {{ $}}
55+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
56+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)
57+ ; CHECK-NEXT: $w0 = COPY [[COPY1]](s32)
58+ ; CHECK-NEXT: RET_ReallyLR implicit $w0
4259 %call = call i32 @llvm.annotation.i32 (i32 %a , ptr @.str , ptr @.str1 , i32 2 )
4360 ret i32 %call
4461}
4562
4663define ptr @launder_invariant_group (ptr %p ) {
4764 ; CHECK-LABEL: name: launder_invariant_group
4865 ; CHECK: bb.1 (%ir-block.0):
49- ; CHECK: liveins: $x0
50- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
51- ; CHECK: [[COPY1:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)
52- ; CHECK: $x0 = COPY [[COPY1]](p0)
53- ; CHECK: RET_ReallyLR implicit $x0
66+ ; CHECK-NEXT: liveins: $x0
67+ ; CHECK-NEXT: {{ $}}
68+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
69+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)
70+ ; CHECK-NEXT: $x0 = COPY [[COPY1]](p0)
71+ ; CHECK-NEXT: RET_ReallyLR implicit $x0
5472 %q = call ptr @llvm.launder.invariant.group.p0 (ptr %p )
5573 ret ptr %q
5674}
5775
5876define ptr @strip_invariant_group (ptr %p ) {
5977 ; CHECK-LABEL: name: strip_invariant_group
6078 ; CHECK: bb.1 (%ir-block.0):
61- ; CHECK: liveins: $x0
62- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
63- ; CHECK: [[COPY1:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)
64- ; CHECK: $x0 = COPY [[COPY1]](p0)
65- ; CHECK: RET_ReallyLR implicit $x0
79+ ; CHECK-NEXT: liveins: $x0
80+ ; CHECK-NEXT: {{ $}}
81+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
82+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)
83+ ; CHECK-NEXT: $x0 = COPY [[COPY1]](p0)
84+ ; CHECK-NEXT: RET_ReallyLR implicit $x0
6685 %q = call ptr @llvm.strip.invariant.group.p0 (ptr %p )
6786 ret ptr %q
6887}
6988
7089declare i64 @llvm.expect.i64 (i64 , i64 ) #0
90+ declare i64 @llvm.expect.with.probability.i64 (i64 , i64 , double ) #0
7191declare ptr @llvm.ptr.annotation.p0 (ptr , ptr , ptr , i32 , ptr ) #1
7292declare i32 @llvm.annotation.i32 (i32 , ptr , ptr , i32 ) #1
7393declare ptr @llvm.launder.invariant.group.p0 (ptr ) #2
0 commit comments