annotate llvm/test/CodeGen/AMDGPU/icmp.i16.ll @ 266:00f31e85ec16 default tip

Added tag current for changeset 31d058e83c98
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Oct 2023 10:13:55 +0900
parents 1f2b6ac9f198
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 ; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=VI %s
anatofuz
parents:
diff changeset
2 ; RUN: llc -march=amdgcn -verify-machineinstrs < %s| FileCheck -check-prefix=GCN -check-prefix=SI %s
anatofuz
parents:
diff changeset
3
anatofuz
parents:
diff changeset
4 ;;;==========================================================================;;;
anatofuz
parents:
diff changeset
5 ;; 16-bit integer comparisons
anatofuz
parents:
diff changeset
6 ;;;==========================================================================;;;
anatofuz
parents:
diff changeset
7
anatofuz
parents:
diff changeset
8 ; GCN-LABEL: {{^}}i16_eq:
anatofuz
parents:
diff changeset
9 ; VI: v_cmp_eq_u16_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
10 ; SI: v_cmp_eq_u32_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
11 define amdgpu_kernel void @i16_eq(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, ptr addrspace(1) %b.ptr) #0 {
150
anatofuz
parents:
diff changeset
12 entry:
anatofuz
parents:
diff changeset
13 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
14 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
15 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
16 %b.gep = getelementptr inbounds i16, ptr addrspace(1) %b.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
17 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
18 %a = load i16, ptr addrspace(1) %a.gep
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
19 %b = load i16, ptr addrspace(1) %b.gep
150
anatofuz
parents:
diff changeset
20 %tmp0 = icmp eq i16 %a, %b
anatofuz
parents:
diff changeset
21 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
22 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
23 ret void
anatofuz
parents:
diff changeset
24 }
anatofuz
parents:
diff changeset
25
anatofuz
parents:
diff changeset
26 ; GCN-LABEL: {{^}}i16_ne:
anatofuz
parents:
diff changeset
27 ; VI: v_cmp_ne_u16_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
28 ; SI: v_cmp_ne_u32_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
29 define amdgpu_kernel void @i16_ne(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, ptr addrspace(1) %b.ptr) #0 {
150
anatofuz
parents:
diff changeset
30 entry:
anatofuz
parents:
diff changeset
31 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
32 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
33 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
34 %b.gep = getelementptr inbounds i16, ptr addrspace(1) %b.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
35 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
36 %a = load i16, ptr addrspace(1) %a.gep
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
37 %b = load i16, ptr addrspace(1) %b.gep
150
anatofuz
parents:
diff changeset
38 %tmp0 = icmp ne i16 %a, %b
anatofuz
parents:
diff changeset
39 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
40 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
41 ret void
anatofuz
parents:
diff changeset
42 }
anatofuz
parents:
diff changeset
43
anatofuz
parents:
diff changeset
44 ; GCN-LABEL: {{^}}i16_ugt:
anatofuz
parents:
diff changeset
45 ; VI: v_cmp_gt_u16_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
46 ; SI: v_cmp_gt_u32_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
47 define amdgpu_kernel void @i16_ugt(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, ptr addrspace(1) %b.ptr) #0 {
150
anatofuz
parents:
diff changeset
48 entry:
anatofuz
parents:
diff changeset
49 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
50 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
51 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
52 %b.gep = getelementptr inbounds i16, ptr addrspace(1) %b.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
53 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
54 %a = load i16, ptr addrspace(1) %a.gep
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
55 %b = load i16, ptr addrspace(1) %b.gep
150
anatofuz
parents:
diff changeset
56 %tmp0 = icmp ugt i16 %a, %b
anatofuz
parents:
diff changeset
57 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
58 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
59 ret void
anatofuz
parents:
diff changeset
60 }
anatofuz
parents:
diff changeset
61
anatofuz
parents:
diff changeset
62 ; GCN-LABEL: {{^}}i16_uge:
anatofuz
parents:
diff changeset
63 ; VI: v_cmp_ge_u16_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
64 ; SI: v_cmp_ge_u32_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
65 define amdgpu_kernel void @i16_uge(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, ptr addrspace(1) %b.ptr) #0 {
150
anatofuz
parents:
diff changeset
66 entry:
anatofuz
parents:
diff changeset
67 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
68 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
69 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
70 %b.gep = getelementptr inbounds i16, ptr addrspace(1) %b.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
71 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
72 %a = load i16, ptr addrspace(1) %a.gep
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
73 %b = load i16, ptr addrspace(1) %b.gep
150
anatofuz
parents:
diff changeset
74 %tmp0 = icmp uge i16 %a, %b
anatofuz
parents:
diff changeset
75 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
76 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
77 ret void
anatofuz
parents:
diff changeset
78 }
anatofuz
parents:
diff changeset
79
anatofuz
parents:
diff changeset
80 ; GCN-LABEL: {{^}}i16_ult:
anatofuz
parents:
diff changeset
81 ; VI: v_cmp_lt_u16_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
82 ; SI: v_cmp_lt_u32_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
83 define amdgpu_kernel void @i16_ult(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, ptr addrspace(1) %b.ptr) #0 {
150
anatofuz
parents:
diff changeset
84 entry:
anatofuz
parents:
diff changeset
85 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
86 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
87 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
88 %b.gep = getelementptr inbounds i16, ptr addrspace(1) %b.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
89 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
90 %a = load i16, ptr addrspace(1) %a.gep
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
91 %b = load i16, ptr addrspace(1) %b.gep
150
anatofuz
parents:
diff changeset
92 %tmp0 = icmp ult i16 %a, %b
anatofuz
parents:
diff changeset
93 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
94 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
95 ret void
anatofuz
parents:
diff changeset
96 }
anatofuz
parents:
diff changeset
97
anatofuz
parents:
diff changeset
98 ; GCN-LABEL: {{^}}i16_ule:
anatofuz
parents:
diff changeset
99 ; VI: v_cmp_le_u16_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
100 ; SI: v_cmp_le_u32_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
101 define amdgpu_kernel void @i16_ule(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, ptr addrspace(1) %b.ptr) #0 {
150
anatofuz
parents:
diff changeset
102 entry:
anatofuz
parents:
diff changeset
103 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
104 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
105 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
106 %b.gep = getelementptr inbounds i16, ptr addrspace(1) %b.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
107 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
108 %a = load i16, ptr addrspace(1) %a.gep
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
109 %b = load i16, ptr addrspace(1) %b.gep
150
anatofuz
parents:
diff changeset
110 %tmp0 = icmp ule i16 %a, %b
anatofuz
parents:
diff changeset
111 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
112 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
113 ret void
anatofuz
parents:
diff changeset
114
anatofuz
parents:
diff changeset
115 }
anatofuz
parents:
diff changeset
116
anatofuz
parents:
diff changeset
117 ; GCN-LABEL: {{^}}i16_sgt:
anatofuz
parents:
diff changeset
118 ; VI: v_cmp_gt_i16_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
119 ; SI: v_cmp_gt_i32_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
120 define amdgpu_kernel void @i16_sgt(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, ptr addrspace(1) %b.ptr) #0 {
150
anatofuz
parents:
diff changeset
121 entry:
anatofuz
parents:
diff changeset
122 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
123 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
124 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
125 %b.gep = getelementptr inbounds i16, ptr addrspace(1) %b.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
126 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
127 %a = load i16, ptr addrspace(1) %a.gep
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
128 %b = load i16, ptr addrspace(1) %b.gep
150
anatofuz
parents:
diff changeset
129 %tmp0 = icmp sgt i16 %a, %b
anatofuz
parents:
diff changeset
130 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
131 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
132 ret void
anatofuz
parents:
diff changeset
133 }
anatofuz
parents:
diff changeset
134
anatofuz
parents:
diff changeset
135 ; GCN-LABEL: {{^}}i16_sge:
anatofuz
parents:
diff changeset
136 ; VI: v_cmp_ge_i16_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
137 ; SI: v_cmp_ge_i32_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
138 define amdgpu_kernel void @i16_sge(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, ptr addrspace(1) %b.ptr) #0 {
150
anatofuz
parents:
diff changeset
139 entry:
anatofuz
parents:
diff changeset
140 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
141 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
142 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
143 %b.gep = getelementptr inbounds i16, ptr addrspace(1) %b.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
144 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
145 %a = load i16, ptr addrspace(1) %a.gep
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
146 %b = load i16, ptr addrspace(1) %b.gep
150
anatofuz
parents:
diff changeset
147 %tmp0 = icmp sge i16 %a, %b
anatofuz
parents:
diff changeset
148 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
149 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
150 ret void
anatofuz
parents:
diff changeset
151 }
anatofuz
parents:
diff changeset
152
anatofuz
parents:
diff changeset
153 ; GCN-LABEL: {{^}}i16_slt:
anatofuz
parents:
diff changeset
154 ; VI: v_cmp_lt_i16_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
155 ; SI: v_cmp_lt_i32_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
156 define amdgpu_kernel void @i16_slt(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, ptr addrspace(1) %b.ptr) #0 {
150
anatofuz
parents:
diff changeset
157 entry:
anatofuz
parents:
diff changeset
158 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
159 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
160 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
161 %b.gep = getelementptr inbounds i16, ptr addrspace(1) %b.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
162 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
163 %a = load i16, ptr addrspace(1) %a.gep
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
164 %b = load i16, ptr addrspace(1) %b.gep
150
anatofuz
parents:
diff changeset
165 %tmp0 = icmp slt i16 %a, %b
anatofuz
parents:
diff changeset
166 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
167 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
168 ret void
anatofuz
parents:
diff changeset
169 }
anatofuz
parents:
diff changeset
170
anatofuz
parents:
diff changeset
171 ; GCN-LABEL: {{^}}i16_sle:
anatofuz
parents:
diff changeset
172 ; VI: v_cmp_le_i16_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
173 ; SI: v_cmp_le_i32_e32 vcc, v{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
174 define amdgpu_kernel void @i16_sle(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, ptr addrspace(1) %b.ptr) #0 {
150
anatofuz
parents:
diff changeset
175 entry:
anatofuz
parents:
diff changeset
176 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
177 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
178 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
179 %b.gep = getelementptr inbounds i16, ptr addrspace(1) %b.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
180 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
181 %a = load i16, ptr addrspace(1) %a.gep
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
182 %b = load i16, ptr addrspace(1) %b.gep
150
anatofuz
parents:
diff changeset
183 %tmp0 = icmp sle i16 %a, %b
anatofuz
parents:
diff changeset
184 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
185 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
186 ret void
anatofuz
parents:
diff changeset
187 }
anatofuz
parents:
diff changeset
188
anatofuz
parents:
diff changeset
189 ; These should be commuted to reduce code size
anatofuz
parents:
diff changeset
190 ; GCN-LABEL: {{^}}i16_eq_v_s:
anatofuz
parents:
diff changeset
191 ; VI: v_cmp_eq_u16_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
192 ; SI: v_cmp_eq_u32_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
193 define amdgpu_kernel void @i16_eq_v_s(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, i16 %b) #0 {
150
anatofuz
parents:
diff changeset
194 entry:
anatofuz
parents:
diff changeset
195 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
196 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
197 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
198 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
199 %a = load i16, ptr addrspace(1) %a.gep
150
anatofuz
parents:
diff changeset
200 %tmp0 = icmp eq i16 %a, %b
anatofuz
parents:
diff changeset
201 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
202 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
203 ret void
anatofuz
parents:
diff changeset
204 }
anatofuz
parents:
diff changeset
205
anatofuz
parents:
diff changeset
206 ; GCN-LABEL: {{^}}i16_ne_v_s:
anatofuz
parents:
diff changeset
207 ; VI: v_cmp_ne_u16_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
208 ; SI: v_cmp_ne_u32_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
209 define amdgpu_kernel void @i16_ne_v_s(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, i16 %b) #0 {
150
anatofuz
parents:
diff changeset
210 entry:
anatofuz
parents:
diff changeset
211 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
212 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
213 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
214 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
215 %a = load i16, ptr addrspace(1) %a.gep
150
anatofuz
parents:
diff changeset
216 %tmp0 = icmp ne i16 %a, %b
anatofuz
parents:
diff changeset
217 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
218 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
219 ret void
anatofuz
parents:
diff changeset
220 }
anatofuz
parents:
diff changeset
221
anatofuz
parents:
diff changeset
222 ; GCN-LABEL: {{^}}i16_ugt_v_s:
anatofuz
parents:
diff changeset
223 ; VI: v_cmp_lt_u16_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
224 ; SI: v_cmp_lt_u32_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
225 define amdgpu_kernel void @i16_ugt_v_s(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, i16 %b) #0 {
150
anatofuz
parents:
diff changeset
226 entry:
anatofuz
parents:
diff changeset
227 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
228 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
229 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
230 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
231 %a = load i16, ptr addrspace(1) %a.gep
150
anatofuz
parents:
diff changeset
232 %tmp0 = icmp ugt i16 %a, %b
anatofuz
parents:
diff changeset
233 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
234 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
235 ret void
anatofuz
parents:
diff changeset
236 }
anatofuz
parents:
diff changeset
237
anatofuz
parents:
diff changeset
238 ; GCN-LABEL: {{^}}i16_uge_v_s:
anatofuz
parents:
diff changeset
239 ; VI: v_cmp_le_u16_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
240 ; SI: v_cmp_le_u32_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
241 define amdgpu_kernel void @i16_uge_v_s(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, i16 %b) #0 {
150
anatofuz
parents:
diff changeset
242 entry:
anatofuz
parents:
diff changeset
243 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
244 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
245 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
246 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
247 %a = load i16, ptr addrspace(1) %a.gep
150
anatofuz
parents:
diff changeset
248 %tmp0 = icmp uge i16 %a, %b
anatofuz
parents:
diff changeset
249 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
250 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
251 ret void
anatofuz
parents:
diff changeset
252 }
anatofuz
parents:
diff changeset
253
anatofuz
parents:
diff changeset
254 ; GCN-LABEL: {{^}}i16_ult_v_s:
anatofuz
parents:
diff changeset
255 ; VI: v_cmp_gt_u16_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
256 ; SI: v_cmp_gt_u32_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
257 define amdgpu_kernel void @i16_ult_v_s(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, i16 %b) #0 {
150
anatofuz
parents:
diff changeset
258 entry:
anatofuz
parents:
diff changeset
259 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
260 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
261 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
262 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
263 %a = load i16, ptr addrspace(1) %a.gep
150
anatofuz
parents:
diff changeset
264 %tmp0 = icmp ult i16 %a, %b
anatofuz
parents:
diff changeset
265 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
266 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
267 ret void
anatofuz
parents:
diff changeset
268 }
anatofuz
parents:
diff changeset
269
anatofuz
parents:
diff changeset
270 ; GCN-LABEL: {{^}}i16_ule_v_s:
anatofuz
parents:
diff changeset
271 ; VI: v_cmp_ge_u16_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
272 ; SI: v_cmp_ge_u32_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
273 define amdgpu_kernel void @i16_ule_v_s(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, i16 %b) #0 {
150
anatofuz
parents:
diff changeset
274 entry:
anatofuz
parents:
diff changeset
275 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
276 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
277 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
278 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
279 %a = load i16, ptr addrspace(1) %a.gep
150
anatofuz
parents:
diff changeset
280 %tmp0 = icmp ule i16 %a, %b
anatofuz
parents:
diff changeset
281 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
282 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
283 ret void
anatofuz
parents:
diff changeset
284 }
anatofuz
parents:
diff changeset
285
anatofuz
parents:
diff changeset
286 ; GCN-LABEL: {{^}}i16_sgt_v_s:
anatofuz
parents:
diff changeset
287 ; VI: v_cmp_lt_i16_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
288 ; SI: v_cmp_lt_i32_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
289 define amdgpu_kernel void @i16_sgt_v_s(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, i16 %b) #0 {
150
anatofuz
parents:
diff changeset
290 entry:
anatofuz
parents:
diff changeset
291 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
292 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
293 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
294 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
295 %a = load i16, ptr addrspace(1) %a.gep
150
anatofuz
parents:
diff changeset
296 %tmp0 = icmp sgt i16 %a, %b
anatofuz
parents:
diff changeset
297 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
298 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
299 ret void
anatofuz
parents:
diff changeset
300 }
anatofuz
parents:
diff changeset
301
anatofuz
parents:
diff changeset
302 ; GCN-LABEL: {{^}}i16_sge_v_s:
anatofuz
parents:
diff changeset
303 ; VI: v_cmp_le_i16_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
304 ; SI: v_cmp_le_i32_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
305 define amdgpu_kernel void @i16_sge_v_s(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, i16 %b) #0 {
150
anatofuz
parents:
diff changeset
306 entry:
anatofuz
parents:
diff changeset
307 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
308 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
309 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
310 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
311 %a = load i16, ptr addrspace(1) %a.gep
150
anatofuz
parents:
diff changeset
312 %tmp0 = icmp sge i16 %a, %b
anatofuz
parents:
diff changeset
313 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
314 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
315 ret void
anatofuz
parents:
diff changeset
316 }
anatofuz
parents:
diff changeset
317
anatofuz
parents:
diff changeset
318 ; GCN-LABEL: {{^}}i16_slt_v_s:
anatofuz
parents:
diff changeset
319 ; VI: v_cmp_gt_i16_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
320 ; SI: v_cmp_gt_i32_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
321 define amdgpu_kernel void @i16_slt_v_s(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, i16 %b) #0 {
150
anatofuz
parents:
diff changeset
322 entry:
anatofuz
parents:
diff changeset
323 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
324 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
325 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
326 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
327 %a = load i16, ptr addrspace(1) %a.gep
150
anatofuz
parents:
diff changeset
328 %tmp0 = icmp slt i16 %a, %b
anatofuz
parents:
diff changeset
329 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
330 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
331 ret void
anatofuz
parents:
diff changeset
332 }
anatofuz
parents:
diff changeset
333
anatofuz
parents:
diff changeset
334 ; GCN-LABEL: {{^}}i16_sle_v_s:
anatofuz
parents:
diff changeset
335 ; VI: v_cmp_ge_i16_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
anatofuz
parents:
diff changeset
336 ; SI: v_cmp_ge_i32_e32 vcc, s{{[0-9]+}}, v{{[0-9]+}}
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
337 define amdgpu_kernel void @i16_sle_v_s(ptr addrspace(1) %out, ptr addrspace(1) %a.ptr, i16 %b) #0 {
150
anatofuz
parents:
diff changeset
338 entry:
anatofuz
parents:
diff changeset
339 %tid = call i32 @llvm.amdgcn.workitem.id.x()
anatofuz
parents:
diff changeset
340 %tid.ext = sext i32 %tid to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
341 %a.gep = getelementptr inbounds i16, ptr addrspace(1) %a.ptr, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
342 %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i64 %tid.ext
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
343 %a = load i16, ptr addrspace(1) %a.gep
150
anatofuz
parents:
diff changeset
344 %tmp0 = icmp sle i16 %a, %b
anatofuz
parents:
diff changeset
345 %tmp1 = sext i1 %tmp0 to i32
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
346 store i32 %tmp1, ptr addrspace(1) %out.gep
150
anatofuz
parents:
diff changeset
347 ret void
anatofuz
parents:
diff changeset
348 }
anatofuz
parents:
diff changeset
349
anatofuz
parents:
diff changeset
350 declare i32 @llvm.amdgcn.workitem.id.x() #1
anatofuz
parents:
diff changeset
351
anatofuz
parents:
diff changeset
352 attributes #0 = { nounwind }
anatofuz
parents:
diff changeset
353 attributes #1 = { nounwind readnone }