xref: /llvm-project/llvm/test/Analysis/Lint/get-active-lane-mask.ll (revision ec9ccb1668f60ae29e2f6c9627142f5ebfe15080)
1; RUN: opt -passes=lint -disable-output < %s 2>&1 | FileCheck %s
2
3define <4 x i1> @t1(i32 %IV) {
4;
5; CHECK:      get_active_lane_mask: operand #2 must be greater than 0
6; CHECK-NEXT: %res = call <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32 %IV, i32 0)
7;
8  %res = call <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32 %IV, i32 0)
9  ret <4 x i1> %res
10}
11
12define <4 x i1> @t2(i32 %IV) {
13;
14; CHECK-NOT: get_active_lane_mask
15; CHECK-NOT: call <4 x i1> @llvm.get.active.lane.mask
16;
17  %res = call <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32 %IV, i32 1)
18  ret <4 x i1> %res
19}
20
21define <4 x i1> @t3(i32 %IV) {
22;
23; CHECK-NOT: get_active_lane_mask
24; CHECK-NOT: call <4 x i1> @llvm.get.active.lane.mask
25;
26  %res = call <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32 %IV, i32 -1)
27  ret <4 x i1> %res
28}
29
30define <4 x i1> @t4(i32 %IV, i32 %TC) {
31;
32; CHECK-NOT: get_active_lane_mask
33; CHECK-NOT: call <4 x i1> @llvm.get.active.lane.mask
34;
35  %res = call <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32 %IV, i32 %TC)
36  ret <4 x i1> %res
37}
38
39declare <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32, i32)
40