Skip to content

Commit 247bbdd

Browse files
committed
Precommit tests
1 parent 133f8fa commit 247bbdd

File tree

1 file changed

+95
-0
lines changed

1 file changed

+95
-0
lines changed
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2+
; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve < %s | FileCheck %s
3+
4+
; Zeroing.
5+
6+
define dso_local <vscale x 16 x i8> @mov_z_b(<vscale x 16 x i1> %pg) {
7+
; CHECK-LABEL: mov_z_b:
8+
; CHECK: // %bb.0:
9+
; CHECK-NEXT: mov z0.b, #0 // =0x0
10+
; CHECK-NEXT: mov w8, #1 // =0x1
11+
; CHECK-NEXT: mov z0.b, p0/m, w8
12+
; CHECK-NEXT: ret
13+
%r = tail call <vscale x 16 x i8> @llvm.aarch64.sve.dup.nxv16i8(<vscale x 16 x i8> zeroinitializer, <vscale x 16 x i1> %pg, i8 1)
14+
ret <vscale x 16 x i8> %r
15+
}
16+
17+
define dso_local <vscale x 8 x i16> @mov_z_h(<vscale x 8 x i1> %pg) {
18+
; CHECK-LABEL: mov_z_h:
19+
; CHECK: // %bb.0:
20+
; CHECK-NEXT: mov z0.h, #0 // =0x0
21+
; CHECK-NEXT: mov w8, #1 // =0x1
22+
; CHECK-NEXT: mov z0.h, p0/m, w8
23+
; CHECK-NEXT: ret
24+
%r = tail call <vscale x 8 x i16> @llvm.aarch64.sve.dup.nxv8i16(<vscale x 8 x i16> zeroinitializer, <vscale x 8 x i1> %pg, i16 1)
25+
ret <vscale x 8 x i16> %r
26+
}
27+
28+
define dso_local <vscale x 4 x i32> @mov_z_s(<vscale x 4 x i1> %pg) {
29+
; CHECK-LABEL: mov_z_s:
30+
; CHECK: // %bb.0:
31+
; CHECK-NEXT: mov z0.s, #0 // =0x0
32+
; CHECK-NEXT: mov w8, #1 // =0x1
33+
; CHECK-NEXT: mov z0.s, p0/m, w8
34+
; CHECK-NEXT: ret
35+
%r = tail call <vscale x 4 x i32> @llvm.aarch64.sve.dup.nxv4i32(<vscale x 4 x i32> zeroinitializer, <vscale x 4 x i1> %pg, i32 1)
36+
ret <vscale x 4 x i32> %r
37+
}
38+
39+
define dso_local <vscale x 2 x i64> @mov_z_d(<vscale x 2 x i1> %pg) {
40+
; CHECK-LABEL: mov_z_d:
41+
; CHECK: // %bb.0:
42+
; CHECK-NEXT: mov z0.d, #0 // =0x0
43+
; CHECK-NEXT: mov w8, #1 // =0x1
44+
; CHECK-NEXT: mov z0.d, p0/m, x8
45+
; CHECK-NEXT: ret
46+
%r = tail call <vscale x 2 x i64> @llvm.aarch64.sve.dup.nxv2i64(<vscale x 2 x i64> zeroinitializer, <vscale x 2 x i1> %pg, i64 1)
47+
ret <vscale x 2 x i64> %r
48+
}
49+
50+
; Merging.
51+
52+
define dso_local <vscale x 16 x i8> @mov_m_b(<vscale x 16 x i8> %zd, <vscale x 16 x i1> %pg) {
53+
; CHECK-LABEL: mov_m_b:
54+
; CHECK: // %bb.0:
55+
; CHECK-NEXT: mov w8, #1 // =0x1
56+
; CHECK-NEXT: mov z0.b, p0/m, w8
57+
; CHECK-NEXT: ret
58+
%r = tail call <vscale x 16 x i8> @llvm.aarch64.sve.dup.nxv16i8(<vscale x 16 x i8> %zd, <vscale x 16 x i1> %pg, i8 1)
59+
ret <vscale x 16 x i8> %r
60+
}
61+
62+
define dso_local <vscale x 8 x i16> @mov_m_h(<vscale x 8 x i16> %zd, <vscale x 8 x i1> %pg) {
63+
; CHECK-LABEL: mov_m_h:
64+
; CHECK: // %bb.0:
65+
; CHECK-NEXT: mov w8, #1 // =0x1
66+
; CHECK-NEXT: mov z0.h, p0/m, w8
67+
; CHECK-NEXT: ret
68+
%r = tail call <vscale x 8 x i16> @llvm.aarch64.sve.dup.nxv8i16(<vscale x 8 x i16> %zd, <vscale x 8 x i1> %pg, i16 1)
69+
ret <vscale x 8 x i16> %r
70+
}
71+
72+
define dso_local <vscale x 4 x i32> @mov_m_s(<vscale x 4 x i32> %zd, <vscale x 4 x i1> %pg) {
73+
; CHECK-LABEL: mov_m_s:
74+
; CHECK: // %bb.0:
75+
; CHECK-NEXT: mov w8, #1 // =0x1
76+
; CHECK-NEXT: mov z0.s, p0/m, w8
77+
; CHECK-NEXT: ret
78+
%r = tail call <vscale x 4 x i32> @llvm.aarch64.sve.dup.nxv4i32(<vscale x 4 x i32> %zd, <vscale x 4 x i1> %pg, i32 1)
79+
ret <vscale x 4 x i32> %r
80+
}
81+
82+
define dso_local <vscale x 2 x i64> @mov_m_d(<vscale x 2 x i64> %zd, <vscale x 2 x i1> %pg) {
83+
; CHECK-LABEL: mov_m_d:
84+
; CHECK: // %bb.0:
85+
; CHECK-NEXT: mov w8, #1 // =0x1
86+
; CHECK-NEXT: mov z0.d, p0/m, x8
87+
; CHECK-NEXT: ret
88+
%r = tail call <vscale x 2 x i64> @llvm.aarch64.sve.dup.nxv2i64(<vscale x 2 x i64> %zd, <vscale x 2 x i1> %pg, i64 1)
89+
ret <vscale x 2 x i64> %r
90+
}
91+
92+
declare <vscale x 16 x i8> @llvm.aarch64.sve.dup.nxv16i8(<vscale x 16 x i8>, <vscale x 16 x i1>, i8)
93+
declare <vscale x 8 x i16> @llvm.aarch64.sve.dup.nxv8i16(<vscale x 8 x i16>, <vscale x 8 x i1>, i16)
94+
declare <vscale x 4 x i32> @llvm.aarch64.sve.dup.nxv4i32(<vscale x 4 x i32>, <vscale x 4 x i1>, i32)
95+
declare <vscale x 2 x i64> @llvm.aarch64.sve.dup.nxv2i64(<vscale x 2 x i64>, <vscale x 2 x i1>, i64)

0 commit comments

Comments
 (0)