Skip to content

Commit 512defe

Browse files
authored
[NFC][GISel][AArch64] Pre-commit baseline tests for translation of @llvm.expect.with.probability (#117842)
Pre-commit of tests for generic GlobalISel translation of `@llvm.expect.with.probability` for when optimizations are not enabled
1 parent 99de065 commit 512defe

File tree

1 file changed

+48
-28
lines changed

1 file changed

+48
-28
lines changed

llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-no-op-intrinsics.ll

Lines changed: 48 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,42 @@
44
define 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+
1631
define 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) {
3450
define 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

4663
define 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

5876
define 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

7089
declare i64 @llvm.expect.i64(i64, i64) #0
90+
declare i64 @llvm.expect.with.probability.i64(i64, i64, double) #0
7191
declare ptr @llvm.ptr.annotation.p0(ptr, ptr, ptr, i32, ptr) #1
7292
declare i32 @llvm.annotation.i32(i32, ptr, ptr, i32) #1
7393
declare ptr @llvm.launder.invariant.group.p0(ptr) #2

0 commit comments

Comments
 (0)