• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14definitions: []
15tests:
16  - file-name: "ashr2.64"
17    isa:
18      title: Two address binary operation on accumulator
19      description: >
20        Perform specified binary operation on accumulator and register and store result into accumulator
21      exceptions:
22        - x_none
23    commands:
24      - file-name: "op_vs_8_zero"
25        isa:
26          instructions:
27            - sig: ashr2.64 v:in:i64
28              acc: inout:i64
29              prefix: bit
30              format: [pref_op_v_8]
31        code-template: |
32          #
33              ldai.64 0
34              movi.64 v0, %s
35              mov.64 v1, v0
36              ashr2.64 v0
37              movi.64 v0, 0
38              cmp.64 v0
39        description: Check ashr2.64 with 0 and various values.
40        cases:
41          - values:
42              - "0"
43          - values:
44              - "1"
45          - values:
46              - "-1"
47            bugid: ['1387']
48            tags: ["clang_release_sanitizer_jit"]
49          - values:
50              - "0x7FFFFFFFFFFFFFFF"
51            bugid: ['1387']
52            tags: ["clang_release_sanitizer_jit"]
53          - values:
54              - "0x8000000000000000"
55            bugid: ['1387']
56            tags: ["clang_release_sanitizer_jit"]
57          - values:
58              - "-0x7FFFFFFFFFFFFFFF"
59            bugid: ['1387']
60            tags: ["clang_release_sanitizer_jit"]
61          - values:
62              - "-0x8000000000000000"
63            bugid: ['1387']
64            tags: ["clang_release_sanitizer_jit"]
65          - values:
66              - "0xFFFFFFFFFFFFFFFF"
67            bugid: ['1387']
68            tags: ["clang_release_sanitizer_jit"]
69          - values:
70              - "-0xFFFFFFFFFFFFFFFF"
71
72      - file-name: "op_vs_8_pone"
73        isa:
74          instructions:
75            - sig: ashr2.64 v:in:i64
76              acc: inout:i64
77              prefix: bit
78              format: [pref_op_v_8]
79        code-template: |
80          #
81              ldai.64 1
82              movi.64 v0, %s
83              ashr2.64 v0
84              movi.64 v0, %s
85              cmp.64 v0
86        description: Check ashr2.64 with +1 and various values.
87        cases:
88          - values:
89              - "0"
90              - "1"
91          - values:
92              - "1"
93              - "0"
94          - values:
95              - "-1"
96              - "0"
97            bugid: ['1387']
98            tags: ["clang_release_sanitizer_jit"]
99          - values:
100              - "0x7FFFFFFFFFFFFFFF"
101              - "0"
102            bugid: ['1387']
103            tags: ["clang_release_sanitizer_jit"]
104          - values:
105              - "0x8000000000000000"
106              - "1"
107            bugid: ['1387']
108            tags: ["clang_release_sanitizer_jit"]
109          - values:
110              - "-0x7FFFFFFFFFFFFFFF"
111              - "0"
112            bugid: ['1387']
113            tags: ["clang_release_sanitizer_jit"]
114          - values:
115              - "-0x8000000000000000"
116              - "1"
117            bugid: ['1387']
118            tags: ["clang_release_sanitizer_jit"]
119          - values:
120              - "0xFFFFFFFFFFFFFFFF"
121              - "0"
122            bugid: ['1387']
123            tags: ["clang_release_sanitizer_jit"]
124          - values:
125              - "-0xFFFFFFFFFFFFFFFF"
126              - "0"
127      - file-name: "op_vs_8_none"
128        isa:
129          instructions:
130            - sig: ashr2.64 v:in:i64
131              acc: inout:i64
132              prefix: bit
133              format: [pref_op_v_8]
134        code-template: |
135          #
136              ldai.64 -1
137              movi.64 v0, %s
138              ashr2.64 v0
139              movi.64 v0, 0xFFFFFFFFFFFFFFFF
140              cmp.64 v0
141        description: Check ashr2.64 with -1 and various values.
142        cases:
143          - values:
144              - "0"
145          - values:
146              - "1"
147          - values:
148              - "-1"
149            bugid: ['1387']
150            tags: ["clang_release_sanitizer_jit"]
151          - values:
152              - "0x7FFFFFFFFFFFFFFF"
153            bugid: ['1387']
154            tags: ["clang_release_sanitizer_jit"]
155          - values:
156              - "0x8000000000000000"
157            bugid: ['1387']
158            tags: ["clang_release_sanitizer_jit"]
159          - values:
160              - "-0x7FFFFFFFFFFFFFFF"
161            bugid: ['1387']
162            tags: ["clang_release_sanitizer_jit"]
163          - values:
164              - "-0x8000000000000000"
165            bugid: ['1387']
166            tags: ["clang_release_sanitizer_jit"]
167          - values:
168              - "0xFFFFFFFFFFFFFFFF"
169            bugid: ['1387']
170            tags: ["clang_release_sanitizer_jit"]
171          - values:
172              - "-0xFFFFFFFFFFFFFFFF"
173
174      - file-name: "op_vs_8_pmax"
175        isa:
176          instructions:
177            - sig: ashr2.64 v:in:i64
178              acc: inout:i64
179              prefix: bit
180              format: [pref_op_v_8]
181        code-template: |
182          #
183              ldai.64 0x7FFFFFFFFFFFFFFF
184              movi.64 v0, %s
185              ashr2.64 v0
186              movi.64 v0, %s
187              cmp.64 v0
188        description: Check ashr2.64 with +max and various values.
189        cases:
190          - values:
191              - "0"
192              - "0x7FFFFFFFFFFFFFFF"
193          - values:
194              - "1"
195              - "0x3FFFFFFFFFFFFFFF"
196          - values:
197              - "-1"
198              - "0"
199            bugid: ['1387']
200            tags: ["clang_release_sanitizer_jit"]
201          - values:
202              - "0x7FFFFFFFFFFFFFFF"
203              - "0"
204            bugid: ['1387']
205            tags: ["clang_release_sanitizer_jit"]
206          - values:
207              - "0x8000000000000000"
208              - "0x7FFFFFFFFFFFFFFF"
209            bugid: ['1387']
210            tags: ["clang_release_sanitizer_jit"]
211          - values:
212              - "-0x7FFFFFFFFFFFFFFF"
213              - "0x3FFFFFFFFFFFFFFF"
214            bugid: ['1387']
215            tags: ["clang_release_sanitizer_jit"]
216          - values:
217              - "-0x8000000000000000"
218              - "0x7FFFFFFFFFFFFFFF"
219            bugid: ['1387']
220            tags: ["clang_release_sanitizer_jit"]
221          - values:
222              - "0xFFFFFFFFFFFFFFFF"
223              - "0"
224            bugid: ['1387']
225            tags: ["clang_release_sanitizer_jit"]
226          - values:
227              - "-0xFFFFFFFFFFFFFFFF"
228              - "0x3FFFFFFFFFFFFFFF"
229
230      - file-name: "op_vs_8_nmax"
231        isa:
232          instructions:
233            - sig: ashr2.64 v:in:i64
234              acc: inout:i64
235              prefix: bit
236              format: [pref_op_v_8]
237        code-template: |
238          #
239              ldai.64 -0x8000000000000000
240              movi.64 v0, %s
241              ashr2.64 v0
242              movi.64 v0, %s
243              cmp.64 v0
244        description: Check ashr2.64 with -max and various values.
245        cases:
246          - values:
247              - "0"
248              - "0x8000000000000000"
249          - values:
250              - "1"
251              - "0xC000000000000000"
252          - values:
253              - "-1"
254              - "0xFFFFFFFFFFFFFFFF"
255            bugid: ['1387']
256            tags: ["clang_release_sanitizer_jit"]
257          - values:
258              - "0x7FFFFFFFFFFFFFFF"
259              - "0xFFFFFFFFFFFFFFFF"
260            bugid: ['1387']
261            tags: ["clang_release_sanitizer_jit"]
262          - values:
263              - "0x8000000000000000"
264              - "0x8000000000000000"
265            bugid: ['1387']
266            tags: ["clang_release_sanitizer_jit"]
267          - values:
268              - "-0x7FFFFFFFFFFFFFFF"
269              - "0xC000000000000000"
270            bugid: ['1387']
271            tags: ["clang_release_sanitizer_jit"]
272          - values:
273              - "-0x8000000000000000"
274              - "0x8000000000000000"
275            bugid: ['1387']
276            tags: ["clang_release_sanitizer_jit"]
277          - values:
278              - "0xFFFFFFFFFFFFFFFF"
279              - "0xFFFFFFFFFFFFFFFF"
280            bugid: ['1387']
281            tags: ["clang_release_sanitizer_jit"]
282          - values:
283              - "-0xFFFFFFFFFFFFFFFF"
284              - "0xC000000000000000"
285
286      - file-name: "vals"
287        bugid: ['1387']
288        tags: ["clang_release_sanitizer_jit", tsan]
289        isa:
290          instructions:
291            - sig: ashr2.64 v:in:i64
292              acc: inout:i64
293              prefix: bit
294              format: [pref_op_v_8]
295        code-template: |
296          #
297              ldai.64 %s
298              movi.64 v0, %s
299              ashr2.64 v0
300              movi.64 v0, %s
301              cmp.64 v0
302        description: Check ashr2.64 with various values.
303        cases:
304          - values:
305              - "0xFE6674C201B14627"
306              - "0x2601D2490A8864EA"
307              - "0xFFFFFFFFFFFF999D"
308          - values:
309              - "0x842E04478F67F2E3"
310              - "0x368CE351BEBEDC0B"
311              - "0xFFF085C088F1ECFE"
312          - values:
313              - "0x1B16734EA3D2AF62"
314              - "0x1FC29369311C09EF"
315              - "0x362C"
316          - values:
317              - "0x183164BF6007479A"
318              - "0x52B816408F69B085"
319              - "0xC18B25FB003A3C"
320          - values:
321              - "0x564211418F5FFAB3"
322              - "0xE67A09B21E79C43C"
323              - "0x5"
324          - values:
325              - "0xE31AE0FB7EF37660"
326              - "0xBFC173B45A158E5D"
327              - "0xFFFFFFFF18D707DB"
328          - values:
329              - "0xB16BE43C76A2D3B8"
330              - "0xE78C20F13E09B801"
331              - "0xD8B5F21E3B5169DC"
332          - values:
333              - "0x7584DE0D203F130C"
334              - "0xE6DA75A526C62DF8"
335              - "0x75"
336          - values:
337              - "0xA646E54FA8F51A68"
338              - "0xF363814FD00C529C"
339              - "0xFFFFFFFA646E54FA"
340          - values:
341              - "0xE96F352D8B13BB9A"
342              - "0x67833675616CF416"
343              - "0xFFFFFFA5BCD4B62C"
344
345      - file-name: "regs"
346        isa:
347          instructions:
348            - sig: ashr2.64 v:in:i64
349              acc: inout:i64
350              prefix: bit
351              format: [pref_op_v_8]
352        runner-options: ['compile-only']
353        code-template: |
354          #
355              ashr2.64 %s
356        check-type: none
357        description: Check ashr2.64 with various register numbers.
358        cases:
359          - values:
360              - "v255"
361          - values:
362              - "v256"
363            runner-options: ['compile-failure']
364
365      - file-name: "type"
366        bugid: ["964", "966"]
367        tags: ["verifier"]
368        isa:
369          instructions:
370            - sig: ashr2.64 v:in:i64
371              acc: inout:i64
372              prefix: bit
373              format: [pref_op_v_8]
374          verification:
375            - acc_type
376            - v1_type
377        runner-options: ['verifier-failure', 'verifier-debug-config']
378        code-template: |
379          #
380              %s
381              %s
382              ashr2.64 v0
383              ldai.64 0
384        check-type: no-check
385        description: Check ashr2.64 with incorrect accumulator and register type.
386        cases:
387          - values:
388              - "lda.null"
389              - "movi.64 v0, 0"
390          - values:
391              - "ldai.64 0 "
392              - "mov.null v0"
393          - values:
394              - "lda.null"
395              - "mov.null v0"
396