summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/AArch64/sve-intrinsics-counting-elems.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/AArch64/sve-intrinsics-counting-elems.ll')
-rw-r--r--llvm/test/CodeGen/AArch64/sve-intrinsics-counting-elems.ll72
1 files changed, 72 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AArch64/sve-intrinsics-counting-elems.ll b/llvm/test/CodeGen/AArch64/sve-intrinsics-counting-elems.ll
index a3fd4faf196..b37e3d8b8c8 100644
--- a/llvm/test/CodeGen/AArch64/sve-intrinsics-counting-elems.ll
+++ b/llvm/test/CodeGen/AArch64/sve-intrinsics-counting-elems.ll
@@ -12,6 +12,24 @@ define i64 @cntb() {
ret i64 %out
}
+define i64 @cntb_mul3() {
+; CHECK-LABEL: cntb_mul3:
+; CHECK: cntb x0, vl6, mul #3
+; CHECK-NEXT: ret
+ %cnt = call i64 @llvm.aarch64.sve.cntb(i32 6)
+ %out = mul i64 %cnt, 3
+ ret i64 %out
+}
+
+define i64 @cntb_mul4() {
+; CHECK-LABEL: cntb_mul4:
+; CHECK: cntb x0, vl8, mul #4
+; CHECK-NEXT: ret
+ %cnt = call i64 @llvm.aarch64.sve.cntb(i32 8)
+ %out = mul i64 %cnt, 4
+ ret i64 %out
+}
+
;
; CNTH
;
@@ -24,6 +42,24 @@ define i64 @cnth() {
ret i64 %out
}
+define i64 @cnth_mul5() {
+; CHECK-LABEL: cnth_mul5:
+; CHECK: cnth x0, vl7, mul #5
+; CHECK-NEXT: ret
+ %cnt = call i64 @llvm.aarch64.sve.cnth(i32 7)
+ %out = mul i64 %cnt, 5
+ ret i64 %out
+}
+
+define i64 @cnth_mul8() {
+; CHECK-LABEL: cnth_mul8:
+; CHECK: cnth x0, vl5, mul #8
+; CHECK-NEXT: ret
+ %cnt = call i64 @llvm.aarch64.sve.cnth(i32 5)
+ %out = mul i64 %cnt, 8
+ ret i64 %out
+}
+
;
; CNTW
;
@@ -36,6 +72,24 @@ define i64 @cntw() {
ret i64 %out
}
+define i64 @cntw_mul11() {
+; CHECK-LABEL: cntw_mul11:
+; CHECK: cntw x0, vl8, mul #11
+; CHECK-NEXT: ret
+ %cnt = call i64 @llvm.aarch64.sve.cntw(i32 8)
+ %out = mul i64 %cnt, 11
+ ret i64 %out
+}
+
+define i64 @cntw_mul2() {
+; CHECK-LABEL: cntw_mul2:
+; CHECK: cntw x0, vl6, mul #2
+; CHECK-NEXT: ret
+ %cnt = call i64 @llvm.aarch64.sve.cntw(i32 6)
+ %out = mul i64 %cnt, 2
+ ret i64 %out
+}
+
;
; CNTD
;
@@ -48,6 +102,24 @@ define i64 @cntd() {
ret i64 %out
}
+define i64 @cntd_mul15() {
+; CHECK-LABEL: cntd_mul15:
+; CHECK: cntd x0, vl16, mul #15
+; CHECK-NEXT: ret
+ %cnt = call i64 @llvm.aarch64.sve.cntd(i32 9)
+ %out = mul i64 %cnt, 15
+ ret i64 %out
+}
+
+define i64 @cntd_mul16() {
+; CHECK-LABEL: cntd_mul16:
+; CHECK: cntd x0, vl32, mul #16
+; CHECK-NEXT: ret
+ %cnt = call i64 @llvm.aarch64.sve.cntd(i32 10)
+ %out = mul i64 %cnt, 16
+ ret i64 %out
+}
+
;
; CNTP
;
OpenPOWER on IntegriCloud