1# Copyright (c) 2021-2022 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: "fdiv2.64"
17    isa:
18      title: Two address floating-point binary operation on accumulator
19      description: >
20        Perform specified floating-point binary operation on accumulator and register and store result into accumulator.
21        The results of instructions correspond IEEE-754 arithmetic rules.
22      exceptions:
23        - x_none
24    commands:
25      - file-name: "op_vs_8_nan"
26        isa:
27          instructions:
28            - sig: fdiv2.64 v:in:f64
29              acc: inout:f64
30              format: [op_v_8]
31          description: Any operation with NaN results to NaN value.
32        tags: ['irtoc_ignore']
33        check-type: check-acc-nan-f64
34        code-template: |
35          #
36              fldai.64 %s
37              fmovi.64 v0, *s
38              fdiv2.64 v0
39        description: >
40          Check fdiv2.64 results in NaN when acc or v0 is NaN
41        template-cases:
42          - values:
43              # NaN
44              - "0x7ff8000000000000"
45          - values:
46              # NaN representation
47              - "0xFFFFFFFFFFFFFFFF"
48          - values:
49              # Positive zero
50              - "0"
51            bugid: ["966", "965"]
52            exclude: [hasval]
53          - values:
54              # Negative zero
55              - "0x8000000000000000"
56            bugid: ["966", "965"]
57            exclude: [hasval]
58          - values:
59              # 1d
60              - "1.0"
61            bugid: ["966", "965"]
62            exclude: [hasval]
63          - values:
64              - "-1"
65            exclude: [hasval]
66          - values:
67              # +Inf
68              - "0x7ff0000000000000"
69            exclude: [hasval]
70          - values:
71              # -Inf
72              - "0xfff0000000000000"
73            exclude: [hasval]
74          - values:
75            # +max
76            - "0x7fefffffffffffff"
77            exclude: [hasval]
78          - values:
79            # -max
80            - "0xffefffffffffffff"
81            exclude: [hasval]
82          - values:
83            # +min
84            - "0x0000000000000001"
85            exclude: [hasval]
86          - values:
87            # -min
88            - "0x8000000000000001"
89            exclude: [hasval]
90          - values:
91              # Some FP value, 3.14159265358979323846
92              - "0x400921fb54442d18"
93            exclude: [hasval]
94          - values:
95              # Some FP value
96              - "1234567890987654321"
97            exclude: [hasval]
98        cases:
99          - values:
100              # NaN
101              - "0x7ff8000000000000"
102          - values:
103              # NaN representation
104              - "0xFFFFFFFFFFFFFFFF"
105          - values:
106              # Positive zero
107              - "0"
108            bugid: ["966", "965"]
109            id: hasval
110          - values:
111              # Negative zero
112              - "0x8000000000000000"
113            bugid: ["966", "965"]
114            id: hasval
115          - values:
116              # 1d
117              - "1.0"
118            bugid: ["966", "965"]
119            id: hasval
120          - values:
121              - "-1"
122            id: hasval
123          - values:
124              # +Inf
125              - "0x7ff0000000000000"
126            id: hasval
127          - values:
128              # -Inf
129              - "0xfff0000000000000"
130            id: hasval
131          - values:
132            # +max
133            - "0x7fefffffffffffff"
134            id: hasval
135          - values:
136            # -max
137            - "0xffefffffffffffff"
138            id: hasval
139          - values:
140            # +min
141            - "0x0000000000000001"
142            id: hasval
143          - values:
144            # -min
145            - "0x8000000000000001"
146            id: hasval
147          - values:
148              # Some FP value, 3.14159265358979323846
149              - "0x400921fb54442d18"
150            id: hasval
151          - values:
152              # Some FP value
153              - "1234567890987654321"
154            id: hasval
155
156      - file-name: "op_vs_8_pinf"
157        isa:
158          instructions:
159            - sig: fdiv2.64 v:in:f64
160              acc: inout:f64
161              format: [op_v_8]
162          description: Division is infinity if any non zero value is divided by zero.
163        check-type: check-positive
164        tags: ['irtoc_ignore']
165        code-template: |
166            #
167                fldai.64 0x7ff0000000000000 # +Inf
168                fmovi.64 v0, %s
169            # Div of +Inf and value
170                fdiv2.64 v0
171                fmovi.64 v1, %s
172                fcmpg.64 v1
173        description: Check fdiv2.64 with positive Inf and various values (NaN, Inf, min, max, numbers).
174        cases:
175          - values:
176              - "0"
177              # Inf
178              - "0x7ff0000000000000"
179            bugid: ["966", "965"]
180          - values:
181              # -0.0d
182              - "0x8000000000000000"
183              # -Inf
184              - "0xFFF0000000000000"
185            bugid: ["966", "965"]
186          - values:
187              # 1d
188              - "1"
189              # Inf
190              - "0x7ff0000000000000"
191          - values:
192              - "-1"
193              # -Inf
194              - "0xFFF0000000000000"
195          - values:
196              # +max
197              - "0x7fefffffffffffff"
198              # Inf
199              - "0x7FF0000000000000"
200          - values:
201              # -max
202              - "0xffefffffffffffff"
203              # -Inf
204              - "0xFFF0000000000000"
205          - values:
206              # +min
207              - "0x0000000000000001"
208              # Inf
209              - "0x7FF0000000000000"
210          - values:
211              # -min
212              - "0x8000000000000001"
213              # -Inf
214              - "0xFFF0000000000000"
215          - values:
216              # Some FP value, 3.14159265358979323846
217              - "0x400921fb54442d18"
218              # Inf
219              - "0x7FF0000000000000"
220          - values:
221              - "1234567890987654321"
222              # Inf
223              - "0x7FF0000000000000"
224
225      - file-name: "op_vs_8_ninf"
226        isa:
227          instructions:
228            - sig: fdiv2.64 v:in:f64
229              acc: inout:f64
230              format: [op_v_8]
231          description: Division is infinity if any non zero value is divided by zero.
232        check-type: check-positive
233        tags: ['irtoc_ignore']
234        code-template: |
235            #
236                fldai.64 0xfff0000000000000 # -Inf
237                fmovi.64 v0, %s
238            # Div of -Inf and value
239                fdiv2.64 v0
240                fmovi.64 v1, %s
241                fcmpg.64 v1
242        description: Check fdiv2.64 with negative Inf and various values (NaN, Inf, min, max, numbers).
243        cases:
244            - values:
245                - "0"
246                # -Inf
247                - "0xfff0000000000000"
248              bugid: ["966", "965"]
249            - values:
250                # -0.0d
251                - "0x8000000000000000"
252                # +Inf
253                - "0x7FF0000000000000"
254              bugid: ["966", "965"]
255            - values:
256                # 1d
257                - "1"
258                # -Inf
259                - "0xfff0000000000000"
260            - values:
261                - "-1"
262                # +Inf
263                - "0x7FF0000000000000"
264            - values:
265                # +max
266                - "0x7fefffffffffffff"
267                # -Inf
268                - "0xfff0000000000000"
269            - values:
270                # -max
271                - "0xffefffffffffffff"
272                # +Inf
273                - "0x7FF0000000000000"
274            - values:
275                # +min
276                # - "0x0000000000000001"
277                - "1"
278                # -Inf
279                - "0xfff0000000000000"
280            - values:
281                # -min
282                - "0x8000000000000001"
283                # +Inf
284                - "0x7FF0000000000000"
285            - values:
286                # Some FP value, 3.14159265358979323846
287                - "0x400921fb54442d18"
288                # -Inf
289                - "0xfff0000000000000"
290
291            - values:
292                - "1234567890987654321"
293                # -Inf
294                - "0xfff0000000000000"
295
296      - file-name: "op_vs_8_inf_nan"
297        isa:
298          instructions:
299            - sig: fdiv2.64 v:in:f64
300              acc: inout:f64
301              format: [op_v_8]
302          description: >
303            Division is NaN if Infinity is divided by Infinity.
304        tags: ['irtoc_ignore']
305        check-type: check-acc-nan-f64
306        code-template: |
307            #
308                fldai.64 %s
309                fmovi.64 v0, *s
310            # Div of Inf by Inf
311                fdiv2.64 v0
312        description: >
313          Check fdiv2.64 of Inf by Inf is NaN.
314        template-cases:
315          - values: ["0x7ff0000000000000"]
316          - values: ["0xfff0000000000000"]
317        cases:
318          - values: ["0x7ff0000000000000"]
319          - values: ["0xfff0000000000000"]
320
321      - file-name: "op_vs_8_pzero"
322        isa:
323          instructions:
324            - sig: fdiv2.64 v:in:f64
325              acc: inout:f64
326              format: [op_v_8]
327        check-type: check-positive
328        tags: ['irtoc_ignore']
329        code-template: |
330            #
331                fldai.64 0.0 #
332                fmovi.64 v0, %s
333            # Div of +0.0 and value
334                fdiv2.64 v0
335                fmovi.64 v1, %s
336                fcmpg.64 v1
337        description: Check fdiv2.64 with +0 and various values (NaN, Inf, min, max, numbers).
338        cases:
339            - values:
340                # +Inf
341                - "0x7ff0000000000000"
342                - "0"
343            - values:
344                # -Inf
345                - "0xfff0000000000000"
346                # -0.0
347                - "0x8000000000000000"
348            - values:
349                # 1d
350                - "1"
351                - "0"
352            - values:
353                # -1d
354                - "-1"
355                - "-0.0"
356            - values:
357                # +max
358                - "0x7fefffffffffffff"
359                - "0"
360            - values:
361                # -max
362                - "0xffefffffffffffff"
363                # -0.0
364                - "0x8000000000000000"
365            - values:
366                # +min
367                - "0x0000000000000001"
368                - "0"
369            - values:
370                # -min
371                - "0x8000000000000001"
372                # -0.0
373                - "0x8000000000000000"
374            - values:
375                # Some FP value,
376                - "3.14159265358979323846"
377                - "0"
378
379      - file-name: "op_vs_8_nzero"
380        isa:
381          instructions:
382            - sig: fdiv2.64 v:in:f64
383              acc: inout:f64
384              format: [op_v_8]
385        check-type: check-positive
386        tags: ['irtoc_ignore']
387        code-template: |
388            #
389                fldai.64 -0.0 #
390                fmovi.64 v0, %s
391            # Div of -0.0 and value
392                fdiv2.64 v0
393                fmovi.64 v1, %s
394                fcmpg.64 v1
395        description: Check fdiv2.64 with -0 and various values (NaN, Inf, min, max, numbers).
396        cases:
397          - values:
398              # +Inf
399              - "0x7ff0000000000000"
400              # -0.0d
401              - "0x8000000000000000"
402          - values:
403              # -Inf
404              - "0xfff0000000000000"
405              - "0"
406          - values:
407              # 1d
408              - "1"
409              - "0"
410          - values:
411              - "-1"
412              - "0"
413          - values:
414              # +max
415              - "0x7fefffffffffffff"
416              - "0"
417          - values:
418              # -max
419              - "0xffefffffffffffff"
420              - "0"
421          - values:
422              # +min
423              - "0x0000000000000001"
424              # -0.0d
425              - "0x8000000000000000"
426          - values:
427              # -min
428              - "0x8000000000000001"
429              - "0"
430          - values:
431              - "3.14159265358979323846"
432              - "0"
433          - values:
434              # Some FP value,
435              - "-3.14159265358979323846"
436              - "0"
437      - file-name: "op_vs_8_pone"
438        isa:
439          instructions:
440            - sig: fdiv2.64 v:in:f64
441              acc: inout:f64
442              format: [op_v_8]
443          description: Division is infinity if any non zero value is divided by zero.
444        check-type: check-positive
445        tags: ['irtoc_ignore']
446        code-template: |
447            #
448                fldai.64 1.0 #
449                fmovi.64 v0, %s
450            # Div of 1.0 and value
451                fdiv2.64 v0
452                fmovi.64 v1, %s
453                fcmpg.64 v1
454        description: Check fdiv2.64 with +1 and various values (NaN, Inf, min, max, numbers).
455        cases:
456          - values:
457              # +0.0d
458              - "0"
459              # +Inf
460              - "0x7ff0000000000000"
461            bugid: ["966", "965"]
462          - values:
463              # -0.0d
464              - "0x8000000000000000"
465              # -Inf
466              - "0xfff0000000000000"
467            bugid: ["966", "965"]
468          - values:
469              - "1"
470              - "1"
471          - values:
472              - "-1"
473              - "-1"
474          - values:
475              # +Inf
476              - "0x7ff0000000000000"
477              - "0"
478          - values:
479              # -Inf
480              - "0xfff0000000000000"
481              # -0.0d
482              - "0x8000000000000000"
483          - values:
484              # +max
485              - "0x7fefffffffffffff"
486              - "0x0004000000000000"
487          - values:
488              # -max
489              - "0xffefffffffffffff"
490              - "0x8004000000000000"
491          - values:
492              # +min
493              - "0x0000000000000001"
494              # +Inf
495              - "0x7FF0000000000000"
496          - values:
497              # -min
498              - "0x8000000000000001"
499              # -Inf
500              - "0xFFF0000000000000"
501          - values:
502              - "3.14159265358979323846"
503              - "0x3FD45F306DC9C883"
504          - values:
505              - "-3.14159265358979323846"
506              - "0xBFD45F306DC9C883"
507
508          - values:
509              # Some FP value
510              - "1234567890.987654321"
511              - "0x3E0BD4D5DD3DC711"
512
513      - file-name: "op_vs_8_none"
514        isa:
515          instructions:
516            - sig: fdiv2.64 v:in:f64
517              acc: inout:f64
518              format: [op_v_8]
519          description: Division is infinity if any non zero value is divided by zero.
520        check-type: check-positive
521        tags: ['irtoc_ignore']
522        code-template: |
523            #
524                fldai.64 -1.0 #
525                fmovi.64 v0, %s
526            # Div of -1.0 and value
527                fdiv2.64 v0
528                fmovi.64 v1, %s
529                fcmpg.64 v1
530        description: Check fdiv2.64 with -1 and various values (NaN, Inf, min, max, numbers).
531        cases:
532          - values:
533              # +0.0d
534              - "0"
535              # -Inf
536              - "0xFFF0000000000000"
537            bugid: ["966", "965"]
538          - values:
539              # -0.0d
540              - "0x8000000000000000"
541              # +Inf
542              - "0x7FF0000000000000"
543            bugid: ["966", "965"]
544          - values:
545              # 1d
546              - "1"
547              - "-1"
548          - values:
549              - "-1"
550              - "1"
551            bugid: ["966", "965"]
552          - values:
553              # +Inf
554              - "0x7ff0000000000000"
555              - "0x8000000000000000"
556          - values:
557              # -Inf
558              - "0xFFF0000000000000"
559              - "0"
560          - values:
561              # +max
562              - "0x7fefffffffffffff"
563              - "0x8004000000000000"
564          - values:
565              # -max
566              - "0xffefffffffffffff"
567              - "0x0004000000000000"
568          - values:
569              # +min
570              - "0x0000000000000001"
571              # -Inf
572              - "0xFFF0000000000000"
573          - values:
574              # -min
575              - "0x8000000000000001"
576              # +Inf
577              - "0x7FF0000000000000"
578          - values:
579              # Some FP value, 3.14159265358979323846
580              - "0x400921fb54442d18"
581              - "0xBFD45F306DC9C883"
582          - values:
583              # Some FP value, -3.14159265358979323846
584              - "0xC00921FB54442D18"
585              - "0x3FD45F306DC9C883"
586          - values:
587              # Some FP value
588              - "1234567890.987654321"
589              - "0xBE0BD4D5DD3DC711"
590
591      - file-name: "op_vs_8"
592        isa:
593          instructions:
594            - sig: fdiv2.64 v:in:f64
595              acc: inout:f64
596              format: [op_v_8]
597        check-type: check-positive
598        tags: ['irtoc_ignore']
599        code-template: |
600            #
601                fldai.64 %s #
602                fmovi.64 v0, %s
603            # Div of -1.0 and value
604                fdiv2.64 v0
605                fmovi.64 v1, %s
606                fcmpg.64 v1
607        description: Check fdiv2.64 with various values.
608        cases:
609            - values:
610                - "1.0"
611                - "-1.0"
612                - "-1.0"
613            - values:
614                - "1.0"
615                - "1.0"
616                - "1.0"
617            - values:
618                - "-1.0"
619                - "1.0"
620                - "-1.0"
621            - values:
622                - "1.0e100"
623                - "1.0e100"
624                - "1.0"
625            - values:
626                - "1.0e100"
627                - "-1.0e100"
628                - "-1.0"
629            - values:
630                - "1.0e+100"
631                - "1.0e-100"
632                - "1.0e+200"
633            - values:
634                - "-1.0e100"
635                - "1.0e100"
636                - "-1.0"
637            - values:
638                - "-1.0e-100"
639                - "1.0e-100"
640                - "-1.0"
641            - values:
642                - "-1.0e+100"
643                - "-1.0e-100"
644                - "1.0e+200"
645            - values:
646                - "3.14159265358979323846"
647                - "-3.14159265358979323846"
648                - "-1.0"
649            - values:
650                - "3.14159265358979323846e100"
651                - "-3.14159265358979323846e100"
652                - "-1.0"
653#            - values:
654#              # TODO add test cases for maximal and minimal FP value in decimal scientific literal
655      - file-name: "op_vs_8_max"
656        isa:
657          instructions:
658            - sig: fdiv2.64 v:in:f64
659              acc: inout:f64
660              format: [op_v_8]
661        check-type: check-positive
662        tags: ['irtoc_ignore']
663        code-template: |
664            #
665                fldai.64 %s
666                fmovi.64 v0, %s
667            # Div of two values
668                fdiv2.64 v0
669                fmovi.64 v1, %s
670                fcmpg.64 v1
671        description: Check fdiv2.64 with various max values.
672        cases:
673          - values:
674              # +max
675              - "0x7fefffffffffffff"
676              # +max
677              - "0x7fefffffffffffff"
678              - "1"
679          - values:
680              # -max
681              - "0xffefffffffffffff"
682              # -max
683              - "0xffefffffffffffff"
684              - "1"
685          - values:
686              # +max
687              - "0x7fefffffffffffff"
688              # -max
689              - "0xffefffffffffffff"
690              - "-1"
691          - values:
692              # -max
693              - "0xffefffffffffffff"
694              # +max
695              - "0x7fefffffffffffff"
696              - "-1"
697
698          - values:
699              # +max
700              - "0x7fefffffffffffff"
701              # 1d
702              - "0x3ff0000000000000"
703              # +max
704              - "0x7fefffffffffffff"
705
706          - values:
707              # +max
708              - "0x7fefffffffffffff"
709              - "-1"
710             # -max
711              - "0xffefffffffffffff"
712          - values:
713              # -max
714              - "0xffefffffffffffff"
715              # 1d
716              - "1"
717              # -max
718              - "0xffefffffffffffff"
719          - values:
720              # -max
721              - "0xffefffffffffffff"
722              - "-1"
723              # +max
724              - "0x7fefffffffffffff"
725
726      - file-name: "op_vs_8_zeroes_nan"
727        bugid: ["966", "965"]
728        isa:
729          instructions:
730            - sig: fdiv2.64 v:in:f64
731              acc: inout:f64
732              format: [op_v_8]
733          description: Division is NaN if zero is divided by zero.
734        tags: ['irtoc_ignore']
735        check-type: check-acc-nan-f64
736        code-template: |
737            #
738                fldai.64 %s #
739                fmovi.64 v0, %s
740            # Div of zero by zero
741                fdiv2.64 v0
742        cases:
743            - values:
744                - "0.0"
745                - "0.0"
746            - values:
747                - "0.0"
748                - "-0.0"
749            - values:
750                - "-0.0"
751                - "0.0"
752            - values:
753                - "-0.0"
754                - "-0.0"
755
756      - file-name: "incorrect_reg"
757        isa:
758          instructions:
759            - sig: fdiv2.64 v:in:f64
760              acc: inout:f64
761              format: [op_v_8]
762        check-type: none
763        runner-options: [compile-failure]
764        description: Check fdiv2.64 with incorrect register numbers.
765        code-template: |
766          #
767              fdiv2.64 %s
768        cases:
769          - values: [v256]
770          - values: [v65535]
771          - values: [a0]
772          - values: [a255]
773          - values: ['null']
774          - values: [0]
775          - values: [1.1]
776          - values: ['2.2']
777
778      - file-name: "reg_number"
779        isa:
780          instructions:
781            - sig: fdiv2.64 v:in:f64
782              acc: inout:f64
783              format: [op_v_8]
784        check-type: none
785        runner-options: [compile-only]
786        description: Check fdiv2.64 with correct register numbers.
787        code-template: |
788          #
789              fdiv2.64 %s
790        cases:
791          - values: [v0]
792          - values: [v16]
793          - values: [v128]
794          - values: [v255]
795
796      - file-name: "calc"
797        isa:
798          instructions:
799            - sig: fdiv2.64 v:in:f64
800              acc: inout:f64
801              format: [op_v_8]
802        check-type: check-positive
803        code-template: |
804            #
805                fldai.64 %s #
806                fmovi.64 v0, %s
807                fdiv2.64 v0
808                fmovi.64 v1, %s
809                fcmpg.64 v1
810        description: Check fdiv2.64 with various values.
811        tags: ['tsan', 'irtoc_ignore']
812        cases:
813            - values:
814                - "0.21632944224064465"
815                - "-0.34061047940179023"
816                - "-0.6351226850699991"
817            - values:
818                - "0.36570116840892575"
819                - "0.07029972877481794"
820                - "5.202028155475951"
821            - values:
822                - "0.4505041756500131"
823                - "0.2904757124583136"
824                - "1.5509185667791943"
825            - values:
826                - "0.21489520519704786"
827                - "0.33478852559234973"
828                - "0.6418834242207925"
829            - values:
830                - "0.35531139652581856"
831                - "0.4460468463980294"
832                - "0.7965786540025369"
833            - values:
834                - "-0.24111761338348803"
835                - "-0.3790812878499866"
836                - "0.6360578090019183"
837            - values:
838                - "-0.2518421854745503"
839                - "-0.3539177970501055"
840                - "0.7115838411451686"
841            - values:
842                - "0.07142813163523898"
843                - "0.39868489769899773"
844                - "0.17915936130885587"
845            - values:
846                - "-0.04234142902115756"
847                - "-0.3715421834325995"
848                - "0.11396129674960209"
849            - values:
850                - "0.3975660961066302"
851                - "0.10346800519624122"
852                - "3.842406117259067"
853            - values:
854                - "-3.6826725689471526e-41"
855                - "3.6599032943264284e-35"
856                - "-1.0062212776649103e-6"
857            - values:
858                - "-4.939281186064999e37"
859                - "-3.393962002010915e-40"
860                - "1.455314226599616e77"
861            - values:
862                - "4.86875450414945e86"
863                - "-2.028918984906647e56"
864                - "-2.3996791100919525e30"
865            - values:
866                - "-8.953713349505588e24"
867                - "1.3234092805699793e-58"
868                - "-6.765641952918232e82"
869            - values:
870                - "4.7527290388188516e-33"
871                - "-1.8946284320518358e26"
872                - "-2.5085282994891844e-59"
873            - values:
874                - "-3.2937848542180716e-43"
875                - "-4.797773588737306e65"
876                - "6.865236121083697e-109"
877            - values:
878                - "1.498933928727475e-91"
879                - "-7.11421943222429e-85"
880                - "-2.1069548711668389e-7"
881            - values:
882                - "-2.7504919851837074e-93"
883                - "1.883749159785447e73"
884                - "-1.4601158391475962e-166"
885            - values:
886                - "5.656506993783795e-19"
887                - "2751435.148108612"
888                - "2.0558387493422056e-25"
889            - values:
890                - "4.1632336257511446e-24"
891                - "-5.849191531926912e-90"
892                - "-7.117622329559179e65"
893      - file-name: "type"
894        isa:
895            instructions:
896              - sig: fdiv2.64 v:in:f64
897                acc: inout:f64
898                format: [op_v_8]
899            verification:
900              - acc_type
901              - v1_type
902        tags: ['verifier']
903        runner-options: ['verifier-failure', 'verifier-config']
904        header-template: []
905        code-template: |
906          #
907          .record A {}
908          .record B {}
909          .record panda.String <external>
910          .record panda.Object <external>
911          .function i32 main() {
912              %s
913              *s
914              fdiv2.64 v0
915        check-type: exit-positive
916        description: Check 'fdiv2.64' with incorrect register and accumulator type.
917        template-cases:
918          - values:
919              - movi v0, 0
920          - values:
921              - movi.64 v0, 0
922          - values:
923              - fmovi v0, 0
924            bugid: ['7315']
925          - values:
926              - fmovi.64 v0, 0
927            exclude: [val]
928          - values:
929              - |
930                #
931                    lda.type B
932                    sta.obj v0
933          - values:
934              - |
935                #
936                    lda.type B[]
937                    sta.obj v0
938          - values:
939              - |
940                #
941                    lda.type panda.String
942                    sta.obj v0
943          - values:
944              - |
945                #
946                    lda.str "string"
947                    sta.obj v0
948          - values:
949              - |
950                #
951                    movi v0, 10
952                    newarr v0, v0, i32[]
953          - values:
954              - mov.null v0
955
956        cases:
957          - values:
958              - ldai 0
959          - values:
960              - ldai.64 0
961          - values:
962              - fldai 0
963            bugid: ['7315']
964          - values:
965              - fldai.64 0
966            id: val
967          - values:
968              - |
969                #
970                    lda.type A
971          - values:
972              - |
973                #
974                    lda.type A[]
975          - values:
976              - |
977                #
978                    lda.type panda.String
979          - values:
980              - |
981                #
982                    lda.str "string"
983          - values:
984              - |
985                #
986                    movi v1, 10
987                    newarr v1, v1, f64[]
988                    lda.obj v1
989          - values:
990              - lda.null
991
992      - file-name: uninitialized_regs
993        isa:
994          instructions:
995            - sig: fdiv2.64 v:in:f64
996              acc: inout:f64
997              format: [op_v_8]
998        description: Check 'fdiv2.64' with uninitialized register and accumulator.
999        tags: ['verifier']
1000        runner-options: ['verifier-failure', 'verifier-config']
1001        code-template: |
1002            #
1003                %s
1004                *s
1005                fdiv2.64 %s
1006        check-type: exit-positive
1007        template-cases:
1008          - values:
1009              - ''
1010              - v0
1011          - values:
1012              - fmovi.64 v0, 0
1013              - v0
1014            exclude: [init]
1015          - values:
1016              - ''
1017              - v7
1018          - values:
1019              - ''
1020              - v15
1021          - values:
1022              - fmovi.64 v15, 0
1023              - v15
1024            exclude: [init]
1025          - values:
1026              - ''
1027              - v128
1028          - values:
1029              - fmovi.64 v128, 0
1030              - v128
1031            exclude: [init]
1032          - values:
1033              - ''
1034              - v255
1035          - values:
1036              - fmovi.64 v255, 0
1037              - v255
1038            exclude: [init]
1039        cases:
1040          - values:
1041              - ''
1042          - values:
1043              - fldai.64 0
1044            id: init
1045