@@ -18,3 +18,51 @@ define <vscale x 8 x i1> @foo_nxv8i1(i32 %a) {
18
18
%mask = call <vscale x 8 x i1 > @llvm.get.active.lane.mask.nxv8i1 (i32 %a , i32 0 )
19
19
ret <vscale x 8 x i1 > %mask
20
20
}
21
+
22
+ define <vscale x 16 x i1 > @foo_vscale_max_255 () vscale_range(1 ,16 ) {
23
+ ; CHECK-LABEL: define <vscale x 16 x i1> @foo_vscale_max_255(
24
+ ; CHECK-SAME: ) #[[ATTR0:[0-9]+]] {
25
+ ; CHECK-NEXT: [[MASK:%.*]] = call <vscale x 16 x i1> @llvm.get.active.lane.mask.nxv16i1.i32(i32 0, i32 255)
26
+ ; CHECK-NEXT: ret <vscale x 16 x i1> [[MASK]]
27
+ ;
28
+ %mask = call <vscale x 16 x i1 > @llvm.get.active.lane.mask.nxv16i1 (i32 0 , i32 255 )
29
+ ret <vscale x 16 x i1 > %mask
30
+ }
31
+
32
+ define <vscale x 16 x i1 > @foo_vscale_max_256 () vscale_range(1 ,16 ) {
33
+ ; CHECK-LABEL: define <vscale x 16 x i1> @foo_vscale_max_256(
34
+ ; CHECK-SAME: ) #[[ATTR0]] {
35
+ ; CHECK-NEXT: ret <vscale x 16 x i1> splat (i1 true)
36
+ ;
37
+ %mask = call <vscale x 16 x i1 > @llvm.get.active.lane.mask.nxv16i1 (i32 0 , i32 256 )
38
+ ret <vscale x 16 x i1 > %mask
39
+ }
40
+
41
+ define <vscale x 2 x i1 > @foo_vscale_max_nxv2i1_1_1_2 () vscale_range(1 ,1 ) {
42
+ ; CHECK-LABEL: define <vscale x 2 x i1> @foo_vscale_max_nxv2i1_1_1_2(
43
+ ; CHECK-SAME: ) #[[ATTR1:[0-9]+]] {
44
+ ; CHECK-NEXT: ret <vscale x 2 x i1> splat (i1 true)
45
+ ;
46
+ %mask = call <vscale x 2 x i1 > @llvm.get.active.lane.mask.nxv2i1 (i32 0 , i32 2 )
47
+ ret <vscale x 2 x i1 > %mask
48
+ }
49
+
50
+ define <vscale x 4 x i1 > @foo_vscale_max_nxv4i1_2_4_16 () vscale_range(2 ,4 ) {
51
+ ; CHECK-LABEL: define <vscale x 4 x i1> @foo_vscale_max_nxv4i1_2_4_16(
52
+ ; CHECK-SAME: ) #[[ATTR2:[0-9]+]] {
53
+ ; CHECK-NEXT: ret <vscale x 4 x i1> splat (i1 true)
54
+ ;
55
+ %mask = call <vscale x 4 x i1 > @llvm.get.active.lane.mask.nxv4i1 (i128 0 , i128 16 )
56
+ ret <vscale x 4 x i1 > %mask
57
+ }
58
+
59
+ define <vscale x 4 x i1 > @foo_vscale_max_nxv4i1_2_4_1_16 () vscale_range(2 ,4 ) {
60
+ ; CHECK-LABEL: define <vscale x 4 x i1> @foo_vscale_max_nxv4i1_2_4_1_16(
61
+ ; CHECK-SAME: ) #[[ATTR2]] {
62
+ ; CHECK-NEXT: [[MASK:%.*]] = call <vscale x 4 x i1> @llvm.get.active.lane.mask.nxv4i1.i128(i128 1, i128 16)
63
+ ; CHECK-NEXT: ret <vscale x 4 x i1> [[MASK]]
64
+ ;
65
+ %mask = call <vscale x 4 x i1 > @llvm.get.active.lane.mask.nxv4i1 (i128 1 , i128 16 )
66
+ ret <vscale x 4 x i1 > %mask
67
+ }
68
+
0 commit comments