Mercurial > hg > CbC > CbC_llvm
comparison test/CodeGen/AMDGPU/udivrem64.ll @ 95:afa8332a0e37 LLVM3.8
LLVM 3.8
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Oct 2015 17:48:58 +0900 |
parents | test/CodeGen/R600/udivrem64.ll@60c9769439b8 |
children | 1172e4bd9c6f |
comparison
equal
deleted
inserted
replaced
84:f3e34b893a5f | 95:afa8332a0e37 |
---|---|
1 ;RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck --check-prefix=SI --check-prefix=GCN --check-prefix=FUNC %s | |
2 ;RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck --check-prefix=VI --check-prefix=GCN --check-prefix=FUNC %s | |
3 ;RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck --check-prefix=EG --check-prefix=FUNC %s | |
4 | |
5 ;FUNC-LABEL: {{^}}test_udiv: | |
6 ;EG: RECIP_UINT | |
7 ;EG: LSHL {{.*}}, 1, | |
8 ;EG: BFE_UINT | |
9 ;EG: BFE_UINT | |
10 ;EG: BFE_UINT | |
11 ;EG: BFE_UINT | |
12 ;EG: BFE_UINT | |
13 ;EG: BFE_UINT | |
14 ;EG: BFE_UINT | |
15 ;EG: BFE_UINT | |
16 ;EG: BFE_UINT | |
17 ;EG: BFE_UINT | |
18 ;EG: BFE_UINT | |
19 ;EG: BFE_UINT | |
20 ;EG: BFE_UINT | |
21 ;EG: BFE_UINT | |
22 ;EG: BFE_UINT | |
23 ;EG: BFE_UINT | |
24 ;EG: BFE_UINT | |
25 ;EG: BFE_UINT | |
26 ;EG: BFE_UINT | |
27 ;EG: BFE_UINT | |
28 ;EG: BFE_UINT | |
29 ;EG: BFE_UINT | |
30 ;EG: BFE_UINT | |
31 ;EG: BFE_UINT | |
32 ;EG: BFE_UINT | |
33 ;EG: BFE_UINT | |
34 ;EG: BFE_UINT | |
35 ;EG: BFE_UINT | |
36 ;EG: BFE_UINT | |
37 ;EG: BFE_UINT | |
38 | |
39 ;GCN: s_bfe_u32 | |
40 ;GCN: s_bfe_u32 | |
41 ;GCN: s_bfe_u32 | |
42 ;GCN: s_bfe_u32 | |
43 ;GCN: s_bfe_u32 | |
44 ;GCN: s_bfe_u32 | |
45 ;GCN: s_bfe_u32 | |
46 ;GCN: s_bfe_u32 | |
47 ;GCN: s_bfe_u32 | |
48 ;GCN: s_bfe_u32 | |
49 ;GCN: s_bfe_u32 | |
50 ;GCN: s_bfe_u32 | |
51 ;GCN: s_bfe_u32 | |
52 ;GCN: s_bfe_u32 | |
53 ;GCN: s_bfe_u32 | |
54 ;GCN: s_bfe_u32 | |
55 ;GCN: s_bfe_u32 | |
56 ;GCN: s_bfe_u32 | |
57 ;GCN: s_bfe_u32 | |
58 ;GCN: s_bfe_u32 | |
59 ;GCN: s_bfe_u32 | |
60 ;GCN: s_bfe_u32 | |
61 ;GCN: s_bfe_u32 | |
62 ;GCN: s_bfe_u32 | |
63 ;GCN: s_bfe_u32 | |
64 ;GCN: s_bfe_u32 | |
65 ;GCN: s_bfe_u32 | |
66 ;GCN: s_bfe_u32 | |
67 ;GCN: s_bfe_u32 | |
68 ;GCN: s_bfe_u32 | |
69 ;GCN-NOT: v_mad_f32 | |
70 ;SI-NOT: v_lshr_b64 | |
71 ;VI-NOT: v_lshrrev_b64 | |
72 ;GCN: s_endpgm | |
73 define void @test_udiv(i64 addrspace(1)* %out, i64 %x, i64 %y) { | |
74 %result = udiv i64 %x, %y | |
75 store i64 %result, i64 addrspace(1)* %out | |
76 ret void | |
77 } | |
78 | |
79 ;FUNC-LABEL: {{^}}test_urem: | |
80 ;EG: RECIP_UINT | |
81 ;EG: BFE_UINT | |
82 ;EG: BFE_UINT | |
83 ;EG: BFE_UINT | |
84 ;EG: BFE_UINT | |
85 ;EG: BFE_UINT | |
86 ;EG: BFE_UINT | |
87 ;EG: BFE_UINT | |
88 ;EG: BFE_UINT | |
89 ;EG: BFE_UINT | |
90 ;EG: BFE_UINT | |
91 ;EG: BFE_UINT | |
92 ;EG: BFE_UINT | |
93 ;EG: BFE_UINT | |
94 ;EG: BFE_UINT | |
95 ;EG: BFE_UINT | |
96 ;EG: BFE_UINT | |
97 ;EG: BFE_UINT | |
98 ;EG: BFE_UINT | |
99 ;EG: BFE_UINT | |
100 ;EG: BFE_UINT | |
101 ;EG: BFE_UINT | |
102 ;EG: BFE_UINT | |
103 ;EG: BFE_UINT | |
104 ;EG: BFE_UINT | |
105 ;EG: BFE_UINT | |
106 ;EG: BFE_UINT | |
107 ;EG: BFE_UINT | |
108 ;EG: BFE_UINT | |
109 ;EG: BFE_UINT | |
110 ;EG: BFE_UINT | |
111 ;EG: AND_INT {{.*}}, 1, | |
112 | |
113 ;GCN: s_bfe_u32 | |
114 ;GCN: s_bfe_u32 | |
115 ;GCN: s_bfe_u32 | |
116 ;GCN: s_bfe_u32 | |
117 ;GCN: s_bfe_u32 | |
118 ;GCN: s_bfe_u32 | |
119 ;GCN: s_bfe_u32 | |
120 ;GCN: s_bfe_u32 | |
121 ;GCN: s_bfe_u32 | |
122 ;GCN: s_bfe_u32 | |
123 ;GCN: s_bfe_u32 | |
124 ;GCN: s_bfe_u32 | |
125 ;GCN: s_bfe_u32 | |
126 ;GCN: s_bfe_u32 | |
127 ;GCN: s_bfe_u32 | |
128 ;GCN: s_bfe_u32 | |
129 ;GCN: s_bfe_u32 | |
130 ;GCN: s_bfe_u32 | |
131 ;GCN: s_bfe_u32 | |
132 ;GCN: s_bfe_u32 | |
133 ;GCN: s_bfe_u32 | |
134 ;GCN: s_bfe_u32 | |
135 ;GCN: s_bfe_u32 | |
136 ;GCN: s_bfe_u32 | |
137 ;GCN: s_bfe_u32 | |
138 ;GCN: s_bfe_u32 | |
139 ;GCN: s_bfe_u32 | |
140 ;GCN: s_bfe_u32 | |
141 ;GCN: s_bfe_u32 | |
142 ;GCN: s_bfe_u32 | |
143 ;GCN-NOT: v_mad_f32 | |
144 ;SI-NOT: v_lshr_b64 | |
145 ;VI-NOT: v_lshrrev_b64 | |
146 ;GCN: s_endpgm | |
147 define void @test_urem(i64 addrspace(1)* %out, i64 %x, i64 %y) { | |
148 %result = urem i64 %x, %y | |
149 store i64 %result, i64 addrspace(1)* %out | |
150 ret void | |
151 } | |
152 | |
153 ;FUNC-LABEL: {{^}}test_udiv3264: | |
154 ;EG: RECIP_UINT | |
155 ;EG-NOT: BFE_UINT | |
156 | |
157 ;GCN-NOT: s_bfe_u32 | |
158 ;GCN-NOT: v_mad_f32 | |
159 ;SI-NOT: v_lshr_b64 | |
160 ;VI-NOT: v_lshrrev_b64 | |
161 ;GCN: s_endpgm | |
162 define void @test_udiv3264(i64 addrspace(1)* %out, i64 %x, i64 %y) { | |
163 %1 = lshr i64 %x, 33 | |
164 %2 = lshr i64 %y, 33 | |
165 %result = udiv i64 %1, %2 | |
166 store i64 %result, i64 addrspace(1)* %out | |
167 ret void | |
168 } | |
169 | |
170 ;FUNC-LABEL: {{^}}test_urem3264: | |
171 ;EG: RECIP_UINT | |
172 ;EG-NOT: BFE_UINT | |
173 | |
174 ;GCN-NOT: s_bfe_u32 | |
175 ;GCN-NOT: v_mad_f32 | |
176 ;SI-NOT: v_lshr_b64 | |
177 ;VI-NOT: v_lshrrev_b64 | |
178 ;GCN: s_endpgm | |
179 define void @test_urem3264(i64 addrspace(1)* %out, i64 %x, i64 %y) { | |
180 %1 = lshr i64 %x, 33 | |
181 %2 = lshr i64 %y, 33 | |
182 %result = urem i64 %1, %2 | |
183 store i64 %result, i64 addrspace(1)* %out | |
184 ret void | |
185 } | |
186 | |
187 ;FUNC-LABEL: {{^}}test_udiv2464: | |
188 ;EG: UINT_TO_FLT | |
189 ;EG: UINT_TO_FLT | |
190 ;EG: FLT_TO_UINT | |
191 ;EG-NOT: RECIP_UINT | |
192 ;EG-NOT: BFE_UINT | |
193 | |
194 ;SI-NOT: v_lshr_b64 | |
195 ;VI-NOT: v_lshrrev_b64 | |
196 ;GCN: v_mad_f32 | |
197 ;GCN: s_endpgm | |
198 define void @test_udiv2464(i64 addrspace(1)* %out, i64 %x, i64 %y) { | |
199 %1 = lshr i64 %x, 40 | |
200 %2 = lshr i64 %y, 40 | |
201 %result = udiv i64 %1, %2 | |
202 store i64 %result, i64 addrspace(1)* %out | |
203 ret void | |
204 } | |
205 | |
206 ;FUNC-LABEL: {{^}}test_urem2464: | |
207 ;EG: UINT_TO_FLT | |
208 ;EG: UINT_TO_FLT | |
209 ;EG: FLT_TO_UINT | |
210 ;EG-NOT: RECIP_UINT | |
211 ;EG-NOT: BFE_UINT | |
212 | |
213 ;SI-NOT: v_lshr_b64 | |
214 ;VI-NOT: v_lshrrev_b64 | |
215 ;GCN: v_mad_f32 | |
216 ;GCN: s_endpgm | |
217 define void @test_urem2464(i64 addrspace(1)* %out, i64 %x, i64 %y) { | |
218 %1 = lshr i64 %x, 40 | |
219 %2 = lshr i64 %y, 40 | |
220 %result = urem i64 %1, %2 | |
221 store i64 %result, i64 addrspace(1)* %out | |
222 ret void | |
223 } |