[llvm] 512defe - [NFC][GISel][AArch64] Pre-commit baseline tests for translation of @llvm.expect.with.probability (#117842)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 26 19:59:00 PST 2024
Author: antangelo
Date: 2024-11-26T22:58:56-05:00
New Revision: 512defe603dd0c82fb49bc6a3e1e8481ac0f6f9e
URL: https://github.com/llvm/llvm-project/commit/512defe603dd0c82fb49bc6a3e1e8481ac0f6f9e
DIFF: https://github.com/llvm/llvm-project/commit/512defe603dd0c82fb49bc6a3e1e8481ac0f6f9e.diff
LOG: [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
Added:
Modified:
llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-no-op-intrinsics.ll
Removed:
################################################################################
diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-no-op-intrinsics.ll b/llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-no-op-intrinsics.ll
index 674ef9f1cffa7e..88828950353a7e 100644
--- a/llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-no-op-intrinsics.ll
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-no-op-intrinsics.ll
@@ -4,26 +4,42 @@
define i64 @expect_i64(i64 %arg0) {
; CHECK-LABEL: name: expect_i64
; CHECK: bb.1 (%ir-block.0):
- ; CHECK: liveins: $x0
- ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
- ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY [[COPY]](s64)
- ; CHECK: $x0 = COPY [[COPY1]](s64)
- ; CHECK: RET_ReallyLR implicit $x0
+ ; CHECK-NEXT: liveins: $x0
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY [[COPY]](s64)
+ ; CHECK-NEXT: $x0 = COPY [[COPY1]](s64)
+ ; CHECK-NEXT: RET_ReallyLR implicit $x0
%expval = call i64 @llvm.expect.i64(i64 %arg0, i64 1)
ret i64 %expval
}
+define i64 @expect_with_probability_i64(i64 %arg0) {
+ ; CHECK-LABEL: name: expect_with_probability_i64
+ ; CHECK: bb.1 (%ir-block.0):
+ ; CHECK-NEXT: liveins: $x0
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
+ ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1
+ ; CHECK-NEXT: [[INT:%[0-9]+]]:_(s64) = G_INTRINSIC intrinsic(@llvm.expect.with.probability), [[COPY]](s64), [[C]](s64), double 5.000000e-01
+ ; CHECK-NEXT: $x0 = COPY [[INT]](s64)
+ ; CHECK-NEXT: RET_ReallyLR implicit $x0
+ %expval = call i64 @llvm.expect.with.probability.i64(i64 %arg0, i64 1, double 0.5)
+ ret i64 %expval
+}
+
define ptr @ptr_annotate(ptr %arg0, ptr %arg1, ptr %arg2, i32 %arg3) {
; CHECK-LABEL: name: ptr_annotate
; CHECK: bb.1 (%ir-block.0):
- ; CHECK: liveins: $w3, $x0, $x1, $x2
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
- ; CHECK: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
- ; CHECK: [[COPY2:%[0-9]+]]:_(p0) = COPY $x2
- ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY $w3
- ; CHECK: [[COPY4:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)
- ; CHECK: $x0 = COPY [[COPY4]](p0)
- ; CHECK: RET_ReallyLR implicit $x0
+ ; CHECK-NEXT: liveins: $w3, $x0, $x1, $x2
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(p0) = COPY $x2
+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $w3
+ ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)
+ ; CHECK-NEXT: $x0 = COPY [[COPY4]](p0)
+ ; CHECK-NEXT: RET_ReallyLR implicit $x0
%call = call ptr @llvm.ptr.annotation.p0(ptr %arg0, ptr %arg1, ptr %arg2, i32 %arg3, ptr null)
ret ptr %call
}
@@ -34,11 +50,12 @@ define ptr @ptr_annotate(ptr %arg0, ptr %arg1, ptr %arg2, i32 %arg3) {
define i32 @annotation(i32 %a) {
; CHECK-LABEL: name: annotation
; CHECK: bb.1 (%ir-block.0):
- ; CHECK: liveins: $w0
- ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
- ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)
- ; CHECK: $w0 = COPY [[COPY1]](s32)
- ; CHECK: RET_ReallyLR implicit $w0
+ ; CHECK-NEXT: liveins: $w0
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)
+ ; CHECK-NEXT: $w0 = COPY [[COPY1]](s32)
+ ; CHECK-NEXT: RET_ReallyLR implicit $w0
%call = call i32 @llvm.annotation.i32(i32 %a, ptr @.str, ptr @.str1, i32 2)
ret i32 %call
}
@@ -46,11 +63,12 @@ define i32 @annotation(i32 %a) {
define ptr @launder_invariant_group(ptr %p) {
; CHECK-LABEL: name: launder_invariant_group
; CHECK: bb.1 (%ir-block.0):
- ; CHECK: liveins: $x0
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
- ; CHECK: [[COPY1:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)
- ; CHECK: $x0 = COPY [[COPY1]](p0)
- ; CHECK: RET_ReallyLR implicit $x0
+ ; CHECK-NEXT: liveins: $x0
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)
+ ; CHECK-NEXT: $x0 = COPY [[COPY1]](p0)
+ ; CHECK-NEXT: RET_ReallyLR implicit $x0
%q = call ptr @llvm.launder.invariant.group.p0(ptr %p)
ret ptr %q
}
@@ -58,16 +76,18 @@ define ptr @launder_invariant_group(ptr %p) {
define ptr @strip_invariant_group(ptr %p) {
; CHECK-LABEL: name: strip_invariant_group
; CHECK: bb.1 (%ir-block.0):
- ; CHECK: liveins: $x0
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
- ; CHECK: [[COPY1:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)
- ; CHECK: $x0 = COPY [[COPY1]](p0)
- ; CHECK: RET_ReallyLR implicit $x0
+ ; CHECK-NEXT: liveins: $x0
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)
+ ; CHECK-NEXT: $x0 = COPY [[COPY1]](p0)
+ ; CHECK-NEXT: RET_ReallyLR implicit $x0
%q = call ptr @llvm.strip.invariant.group.p0(ptr %p)
ret ptr %q
}
declare i64 @llvm.expect.i64(i64, i64) #0
+declare i64 @llvm.expect.with.probability.i64(i64, i64, double) #0
declare ptr @llvm.ptr.annotation.p0(ptr, ptr, ptr, i32, ptr) #1
declare i32 @llvm.annotation.i32(i32, ptr, ptr, i32) #1
declare ptr @llvm.launder.invariant.group.p0(ptr) #2
More information about the llvm-commits
mailing list